[go: up one dir, main page]

KR20010066932A - 소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터시스템 및 컴퓨터 프로그램 제품 - Google Patents

소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터시스템 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20010066932A
KR20010066932A KR1020000040922A KR20000040922A KR20010066932A KR 20010066932 A KR20010066932 A KR 20010066932A KR 1020000040922 A KR1020000040922 A KR 1020000040922A KR 20000040922 A KR20000040922 A KR 20000040922A KR 20010066932 A KR20010066932 A KR 20010066932A
Authority
KR
South Korea
Prior art keywords
text data
java
software
text
data
Prior art date
Application number
KR1020000040922A
Other languages
English (en)
Other versions
KR100431169B1 (ko
Inventor
야마모토게이이찌
유킨흥
쿰히르데이비드브루스
야테스스탠포드로이스
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR20010066932A publication Critical patent/KR20010066932A/ko
Application granted granted Critical
Publication of KR100431169B1 publication Critical patent/KR100431169B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 번역될 텍스트에 대한 문맥 정보를 언어 번역자에게 제공하기 위한 시스템, 방법 및 프로그램에 관한 것으로, 상기 번역자는 기준 언어로된 그래픽 사용자 인터페이스를 제공받는다. 이후 스크린상의 각 텍스트 라벨을 적응적(interactively)으로 번역할 수 있으며, 상기 번역은 적절한 문맥내의 텍스트상에서 이루어지기 때문에, 번역확인테스트의 시간과 비용을 줄이거나 제거할 수 있다. 상기 텍스트의 문맥제공은 자바 JComponents를 포함하고 각 멤버 컴포넌트에 대한 부가적인 속성을 첨가하는 "퍼사드(facade)" 클래스를 생성함으로서 달성된다. 상기 부가적인 속성은 각 JComponents에 대한 자바 자원 번들 이름 및 키를 포함한다.

Description

소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터 시스템 및 컴퓨터 프로그램 제품{A METHOD FOR EDITING TEXTUAL DATA FOR A SOFTWARE PROGRAM, COMPUTER SYSTEM AND PROGRAM PRODUCT THEREOF}
본 발명은 본 발명의 출원인에게 양도되어, 출원중인 출원번호 09/ ,"소프트웨어 번역을 위한 자기관찰 에디터 시스템, 프로그램 및 방법", 09/ ,"퍼사드(facade) 클래스를 이용한 소프트웨어 번역을 위한 자기관찰 에디터 시스템, 프로그램 및 방법", 09/ ,"문맥 번역을 수행하기 위한 시스템, 프로그램 및 방법", 및 출원 09/ ,"래퍼(wrapper) 클래스를 이용한 소프트웨어 번역을 위한 시스템, 프로그램 및 방법"과 공통의 텍스트와 도면을 함께 사용하고, 또한, 이들은 본 서류의 관련자료로서 통합되어 있다.
본 발명은 국제적 사용을 위한 소프트웨어를 개발하기 위한 툴(tools)에 관한 것으로, 특히 다국어(multi-language) 소프트웨어 개발에 관한 것이다. 더 구체적으로는 본 발명은 컴퓨터 소프트웨어 언어를 번역하기 위한 개선된 시스템 및 방법에 관한 것이다.
소프트웨어 국제화(Software Internationalization)
컴퓨터가 보다 널리 보급됨에 따라, 소프트웨어 개발자가 그들 제품을 소프트웨어 개발자의 모국어를 구사할 수 없는 사람들에게 판매할 수 있는 것이 바람직하게 되어 가고 있다. 특히, 영어로 개발된 소프트웨어가 미국 및 그 나머지 세계의 사람들에게 이용될 수 있는 것도 바람직하다. 따라서, 영어로 개발된 많은 소프트웨어 어플리케이션은 나중에 비영어권에서의 사용을 위해 번역된다.
소프트웨어 패키지를 다른(하나이상의) 언어로 번역하는 처리과정은 많은 시간이 소요되고 고가이다. 각각의 텍스트 메시지, 메뉴, 및 버튼은 사용자가 프로그램을 조작할 수 있도록 번역되어야 한다. 이러한 번역을 행하는 가장 직접적인 방법은 모든 텍스트 스트링, 즉 사용자에게 디스플레이되는, 모든 문자 스트링에 대한 전체 프로그램 소스코드를 검색하고 이들 각각을 새로운 언어로 번역하는 것이다.
이러한 접근방식은 몇 가지 문제점을 가진다. 하나의 문제는 이러한 방법의 이용은 소프트웨어가 의도된 각각의 언어에 대해 번역되어 컴파일되어야 함을 의미하는 것이다. 물론, 이 방법은 자체로 고가의 처리과정이고 소스코드내에서의 어떤 부분이 변경되면 그 코드의 각 언어버젼도 편집되고 재컴파일되어야 한다.
도 2는 자바 어플리케이션내 하드코드된 라벨의 예시도이다. 이 도면에서, 그래픽 사용자 인터페이스(GUI) "Button"(210,230)을 포함하는 창(200)이 보여져있다. 이들 Button은 하드-코드된 자바 "JButton" 호출을 이용하여 만들어진다. 예를들면, 코드라인(220)은 스트링 논리 "Ok"를 갖는 JButton을 호출하여 텍스트 라벨 "Ok"를 갖는 버튼(210)을 생성한다. 유사하게, 코드라인(240)은 스트링 논리 "Cancel"를 갖는 JButton을 호출하여, 텍스트 라벨 "Cancel"을 갖는 버튼(230)을 생성된다. 도 2에서와 같이, 하드-코드된 스트링을 이용하는 소프트웨어 어플리케이션을 번역하기 위해, 그 코드의 각 라인은 해독되어야 하고 각 디스플레이된 스트링은 개별적으로 각 목표 언어로 번역되어야 한다.
이러한 문제에 대한 하나의 해결책은 분리된 국부화 파일들을 사용하는 것이고, 여기서 디스플레이될 텍스트 스트링은 실행가능한 코드 자체로부터 분리되어 저장된다. 상기 소프트웨어가 실행될때, 모든 주어진 디스플레이 스크린에 대한 텍스트는 상기 국부화 파일들로부터 간단히 읽혀지며, 어떤 언어든지 상기 파일내에 저장되어 있다. 이런 방법으로, 국부화 파일내의 텍스트는 실행가능 소프트웨어를 방해하지 않고 번역될 수 있으며, 상기 실행가능 소프트웨어는 번역된 텍스트(물론, 디스플레이될 텍스트가 변하면, 상기 국부화 파일내에서 해당하는 모든 엔트리가 또한 변경되어야 한다는 것을 제외함)를 방해하지 않고 변경 또는 대체될 수 있다. 상기 국부화 파일들은 컴파일된 메시지 카탈로그, 자바 자원 번들(bundle), HTML 파일등을 포함하는 여러 가지 포맷들로 될 수 있다.
상기 국부화 파일들을 이용하면, 다중 번역을 행하는 쉬운 방법이 제공되지만, 번역자가 문맥(context)의 참조없이 분리된 파일에 따로 떨어져 있는 텍스트상에서 번역을 해야한다는 부가적인 문제가 발생한다. 왜냐하면, 상기 번역은 번역자가 텍스트가 나타나는 문맥을 참조하여 번역을 수행할 수 있을 경우에는 나타나지 않은 오류를 포함할 수 있기 때문이다.
그러나, 상기 번역이 처리되고, 이때 동작되는 프로그램의 각 스크린은 상기 번역된 텍스트가 적절히 디스플레이되고 상기 디스플레이된 문맥에서 텍스트를 적절히 번역하도록 교정되어야 한다. 그러므로, 어떠한 디스플레이, 문법, 또는 다른 번역 오류를 번역된 프로그램의 각 스크린을 교정하도록 번역될 언어를 구사할 수 있는 사람을 고용하는 것이 업계에서의 관행이다. 이 두 번째 경우를 번역확인테스트(TVT)라고 부른다.
도 3은 종래 방법에 따른 번역 및 테스트 주기의 테이블을 보이고 있다. 국가A에 위치한 회사A가 국가B를 위하여 어플리케이션을 만든다(310). 그 다음, 회사A는 상기 어플리케이션을 포장하여 국가B에 위치한 회사B에 보낸다(320). 이때 회사B는 상기 어플리케이션을 실행하여 어떤 번역 혹은 국제화 오류를 테스트한다(330). 이후 회사B는 TVT 테스트를 행할 것이고, 어떤 번역오류를 찾아서, 필요한 재번역을 행한다(340). 이후 회사B는 회사A에게 교정물을 보내며, 그리고 이 과정은 더 이상의 오류가 발견되지 않을 때까지 반복된다.
종래 처리과정에 따르면, 국가B에서 오류가 수정되고 번역에서의 변경이 이루어질 때마다, 상기 제품은 다시 테스트하기 전에 국가A에서 다시 만들어져 포장되어야 한다. 이 때문에, 상기 TVT 처리과정은 필연적으로 고가이고 시간 소비적인 과정이다. 그러므로 번역자에게 부가적인 정보, 특히 문맥정보를 제공하는 수단을 제공하는 것이 바람직하며, 이로 인하여 초기 번역은 가능한 정확하게 된다. 그렇게 함으로서, TVT 테스트에 요구되는 가격과 시간은 감소되거나 제거될 수 있다.
자바(JAVA)
자바는 두 가지, 즉 프로그래밍 언어와 플랫폼이 있다. 하나의 관점에서, 자바는 고급 프로그래밍 언어이며, 그리고 각 자바 프로그램은 많은 플랫폼에 접근가능 하도록 만들기 위해, 컴파일되고 해독된다는 점에서 이례적이다. 자바는 또한 다른 하드웨어기반 플랫폼의 선두(top)에서 실행하는 소프트웨어 전용 플랫폼이다. 상기 자바 플랫폼은 2개의 컴포넌트, 즉 자바 가상 머신(자바 VM), 및 자바 어플리케이션 프로그래밍 인터페이스(자바 API)를 갖는다.
상기 자바 VM은 자바 플랫폼을 위한 기준이고 다양한 하드웨어 기반 플랫폼상에서 수반된다. 상기 자바 API는 GUI 부품들과 같이, 많은 유용한 능력을 제공하는 기제작된 소프트웨어 컴포넌트의 큰 모음이다. 상기 자바 API는 관련된 컴포넌트들의 라이브러리(패키지)로 분류된다.
자바빈(Javabeans)은 컴포넌트 기술을 자바 플랫폼에 가져온다. 자바빈 API는 재이용가능한 플랫폼-독립적 컴포넌트를 지원한다. 자바빈-종속적 어플리케이션 빌더 툴을 이용하면, 컴포넌트는 애플렛, 어플리케이션, 혹은 복합형 컴포넌트로 결합될 수 있다. 자바빈 컴포넌트는 빈(Beans)으로 알려져 있다.
따라서, 본 발명의 목적은 국제적 이용을 위한 소프트웨어를 개발하기 위한개량된 툴을 제공하는 것이다.
본 발명의 다른 목적은 다중 언어 소프트웨어 개발을 위한 개량된 툴을 제공하는 것이다.
본 발명의 또 다른 목적은 컴퓨터 소프트웨어에서 언어번역을 수행하기 위한 개량된 시스템 및 방법을 제공하는 것이다.
이하, 본 발명의 부가적인 목적과, 특징, 및 이점을 상세히 설명하면 다음과 같다.
보다 효율적인 번역 처리과정은 번역될 텍스트에 대한 문맥 정보(contextual information)를 언어 번역자에게 제공하기 위한 시스템 및 방법을 제공함에 의해 이루어진다. 상기 번역자는 기준 언어로된 GUI를 제공받고, 이후 스크린상에서 각 텍스트 라벨을 상호 적응적(interactively)으로 번역할 수 있다. 상기 번역이 적절한 문맥내의 텍스트상에서 수행되기 때문에, 번역확인테스트(TVT)를 하기 위한 시간과 비용은 감소되거나 또는 제거된다. 상기 어플리케이션에서 텍스트를 편집하는 능력은 소프트웨어 어플리케이션 자체에 편집기능을 부가함으로서 달성된다. 상기 어플리케이션안에서 각 텍스트 라벨은 자바 JComponents를 포함하고 각 멤버 컴포넌트에 부가적 속성을 더하는 "퍼사드(facade)"클래스의 컴포넌트로서 국부화 파일내에 저장된다. 상기 부가적 속성은 자바 자원 번들 이름과 각 JComponents에 대한 키(key)를 포함한다. 상기 편집기가 활성화되면, 상기 번역자는 텍스트를 직접 편집할 수 있고, 상기 문맥 정보는 다음의 이용을 위하여 저장된다.
도 1은 본 발명의 바람직한 실시예에 따라 구현된 데이터 처리 시스템을 보이고 있다.
도 2는 하드-코딩된 텍스트를 갖는 GUI 디스플레이의 예시도이다.
도 3은 종래 방법에 따른 번역 및 테스트 처리과정을 보이고 있다.
도 4는 본 발명의 바람직한 실시예에 따른 번역 및 테스트 처리과정을 보이는 블록도이다.
도 5는 본 발명의 바람직한 실시예에 따른 자바 자원 파일을 이용하는 GUI 디스플레이의 예시도이다.
도 6은 본 발명의 바람직한 실시예에 따른 소프트웨어 어플리케이션을 위한 자기관찰 툴(tool)의 블록도이다.
도 7은 본 발명의 바람직한 실시예에 다른 자바 래퍼 클래스(Java wrapper class)의 블록도이다.
도 8은 본 발명의 바람직한 실시예에 따른 자바 래퍼 클래스의 상세 블록도이다.
도 9는 본 발명의 바람직한 실시예에 따른 자바 퍼사드 클래스의 블록도를 보이고 있다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 데이터 처리 시스템 101,102 : 프로세서
103,104 : L2 캐쉬 106 : 시스템 버스
108 : 시스템 메모리 112 : I/O 버스
114 : 비휘발성 기억장치 116 : 키보드/포인팅 디바이스
118 : 그래픽 어댑터 120 : 디스플레이
121 : ISA 브리지 122 : 일차 호스트 브리지(PHB)
124 : PCI 슬롯 200 : 창(window)
210,230 : 그래픽 사용자 인터페이스(GUI) "버튼"
220,240 : 코드-라인 500 : 창
510,530 : GUI 버튼 520,540 : 자바 JButton 호출
550 : 자바 자원 파일 610 : 자기관찰 편집기
620 : 어플리케이션 프로그래밍 인터페이스(API)
630 : 편집기 GUI 640 : 파일 I/O 시스템
650 : 목표 어플리케이션 660 : UI 오브젝트
710 : JButton 712 : TButton
720 : JLabel 722 : TLabel
730 : JCheckBox 732 : TCheckBox
740 : JMenu 742 : TMenu
810 : JButton 클래스 820 : TButton 클래스
840 : 자원 번들 이름(res) 850 : 키
900 : 퍼사드 클래스 910,920,930,940 : JFC 컴포넌트
950 : putClientProperty() 960 : getClientProperty()
이와같이 구성된 본 발명에 따른 동작을 첨부도면에 의거하여 하기에 상세히 설명한다.
도 1에는 본 발명의 바람직한 실시예가 구현되어 있는 데이터 처리 시스템의 블록도가 묘사되어 있다. 데이터 처리 시스템(100)은, 예를들어, NewYork, Armonk의 인터내셔널 비즈니스 머신 회사로부터 구입가능한 컴퓨터중 하나가 될 수 있다. 데이터 처리 시스템(100)은 프로세서(101,102)를 포함하고, 예시적인 실시예에서 이 프로세서(101,102)는 각각 레벨 2(L2) 캐쉬(103,104)에 접속되고, 이 L2 캐쉬(103,104)는 시스템 버스(106)에 접속된다.
또한 시스템 버스(106)에는 시스템 메모리(108)와 일차 호스트 브리지(Primary Host Bridge ;PHB)(122)가 접속되어 있다. PHB(122)는 I/O버스(112)를 시스템 버스(106)에 결합시켜서, 하나의 버스에서 다른 버스로의 데이터 전송을 연결 및/또는 변환시킨다. 예시적인 실시예에서, 데이터 처리 시스템(100)은 I/O 버스(112)에 접속된 그래픽 어댑터(118)를 포함하여, 디스플레이(120)를 위해 사용자 인터페이스 정보를 수신한다. 하드 디스크 드라이브와 같은 비휘발성 기억장치(114), 기존의 마우스, 트랙볼의 키보드/포인팅 디바이스(116)와 같은 주변장치는 ISA 브리지(121)를 경유하여 I/O 버스(112)에 결합된다. PHB(122)는 또한 I/O버스(112)를 경유하여 PCI 슬롯(124)에 접속된다.
도 1에 보인 예시적인 실시예는 단지 본 발명의 설명을 위해 제공되며, 당업자라면 그 기능과 형태에서 다양한 변경이 가능하다는 것을 알 수 있을 것이다. 예를들면, 데이터 처리 시스템(100)은 또한 컴팩트 디스크 롬(CD-ROM) 또는 디지털 비디오 디스크(DVD) 드라이브, 사운드카드와 오디오 스피커, 그리고 다양한 선택적인 컴포넌트를 포함할 수 있다. 이와같은 모든 변경은 본 발명의 기술적 사상의 범위내에 포함된다. 데이터 처리 시스템(100) 및 하기 예시적인 도면은 예시적인 설명을 위하여 제공되며 구조적인 제한을 내포하도록 의도된 것은 아니다. 사실, 본 발명의 방법과 시스템은 소프트웨어 어플리케이션상에서 실행될 수 있는, 어떠한 프로그래머블 컴퓨터 시스템, 또는 네트워크 시스템에서의 실현되기 위해 용이하게 변경될 수 있다.
소프트웨어 어플리케이션에 대한 전형적인 번역은 2개의 단계로 이루어진다. 첫 번째 단계에서는 어플리케이션의 인간 텍스트 요소(human text element)를 위한 인간 언어 텍스트(human language text)는 텍스트 파일에 포착되어, 번역자에게 전달되어 번역된다. 이 번역자는 어플리케이션에 대한 아무런 정보를 가지고 있지 않기 때문에 번역될 텍스트의 실제이용에 대한 문맥정보를 가지고 있지 않다. 따라서, 번역 처리과정은 설계상 오류를 일으키기 쉬운 구조이다. 이들 오류를 해결하기 위해, 또한 번역된 텍스트를 유효하게 하기 위해서, 두 번째 단계인 번역확인테스트(Translation Verification Testing)가 수행된다.
상기 바람직한 실시예에서는 번역 처리과정에 대한 2개의 단계를 통합함으로서, 번역 처리과정을 단순하게 만든다. 이는 번역될 항목(item)에 대한 직접적인 문맥정보를 번역자에게 제공함으로서 달성된다. 결과적으로, 고가이면서 시간소비적인 TVT 단계는 감소되거나 제거될 수 있다.
바람직한 실시예에 따르면, 번역자에 의해 인터페이스 컴포넌트의 직접 편집이 가능하고, 텍스트 파일에 상기 번역의 결과물이 저장되는 자기관찰 편집기(introspective editor)가 제공된다. 바람직한 실시예에서는 상기 자기관찰 편집기는 자바 자원 번들이다. 이러한 구성에 의해서, 번역자에게 필요한 문맥을 제공하여 정확한 번역을 수행하도록 한다.
도 4를 참조하면, 본 발명의 바람직한 실시예에 따른 개량된 번역 및 테스트 처리과정의 블록도가 보여져 있다. 국가A에 위치한 회사A는 국가B를 위하여 어플리케이션을 만든다(410). 그 다음, 회사A는 상기 어플리케이션을 포장하여 국가B에 위치한 회사B에 보낸다(420). 이때 회사B는 상기 어플리케이션을 실행하여 어떤 번역 혹은 국제화 오류를 테스트할 것이다(430). 이후 회사B는 TVT 테스트를 행할 것이고, 어떤 번역오류를 발견하여, 필요한 재번역을 행한다(440). 상기 도 3에 기재된 경우와 달리, 본 발명의 실시예에서는 번역이 문맥에서 수행되고 국부적으로 저장되기 때문에, 회사B는 회사A에게 상기 제품을 뒤돌려 보내어 다시 만들지 않고서도, 번역을 즉시 다시 테스트할 수 있다(430). 따라서, 본 발명의 번역 및 테스트 단계는 종래의 단계보다 훨씬 더 효율적으로 수행되는 것이다.
물론, 회사B에서의 테스트 단계에서는 번역 단계에서 수정되지 않은 프로그래밍 문제와 같은 다른 오류들을 찾아내는 것도 가능하다. 이러한 경우에 있어서는, 종래의 처리과정과 같이, 상기 어플리케이션은 회사A에 보내져서 수정된다.
여기 기재된 몇가지 실시예에 따르면, 상기 번역자는 번역하는 소프트웨어 어플리케이션을 실제적으로 수행하고 있고, 또한 개시된 실시예에서는 스크린에서텍스트를 직접 선택하여 실시간으로 편집하는 수단을 번역자에게 제공한다. 상기 번역자는 최종 사용자가 실제 보게될 어플리케이션과 동일한 어플리케이션을 보기 때문에, 번역은 훨씬 더 정확해질 것이다.
사용시, 바람직한 실시예에 따른 자기관찰 편집기는 번역될 텍스트를 수반하는 "팝업(pop-up)" 편집기 창으로서 제공된다. 예를들면, 번역될 텍스트가 창-기반 GUI상의 "버튼"위에서 발견되면, 이때 상기 국부화 파일은 텍스트[단지 AEF]와 더블어 버튼에 관한 기본 문맥정보를 저장할 것이다. 상기 텍스트가 번역될 때, 문맥정보가 읽혀지며, 원본 텍스트를 갖는 버튼은 스크린에 디스플레이 된다. 번역자가 상기 버튼을 선택하면, 편집기 팝업 창이 디스플레이 되며, 그리고 번역자는 그 버튼에 대한 번역된 텍스트를 입력할 것이다. 상기 편집기가 닫히고, 상기 번역된 텍스트는 새로운 파일로 되거나 또는 원본 파일내의 원본 텍스트에 겹쳐쓰기에 의해 국부화 파일에 저장될 것이다. 따라서, 완전한 번역은 상기 버튼이 마지막 어플리케이션에 나타나게 될 문맥에서 수행된다.
바람직한 실시예에서, "ctrl-alt-shift" 키 조합은 디스플레이된 텍스트가 번역될 것임을 의미하도록 사용된다. 마우스 또는 다른 포인팅 디바이스를 가지고 "ctrl-alt-shift" 및 "right-clicking"를 디스플레이안의 텍스트 라벨상에 제공함으로서, GUI 창이 디스플레이 되면, 상기 번역자는 상기 텍스트 라벨이 번역될 것임을 나타낸다. 편집기 창이 열리면, 상기 번역자가 이 편집기 창안에 새로운 텍스트를 직접 입력할 수 있다. 상기 번역이 종료되면, 새로운 텍스트는 다음 사용을 위해 저장된다.
소프트웨어 어플리케이션의 사용자 인터페이스에서 텍스트 요소를 직접 편집함으로서, 그리고 번역자에게 문맥을 제공함으로서, 본 발명의 방법은 번역 과정의 TVT 단계를 제거할 수 있으며, 이에 따라 시간과 오류를 줄일 수 있게 된다.
본 발명의 실시예에서, 편집기는 "setText" 및 "getText"에 의해서 제어를 보면서 편집할 수 있는 자바 프로그래밍 언어의 자기관찰 프라퍼티(property)를 이용하기 때문에, 상기 편집기는 "자기관찰" 편집기로 언급되어 있다. 한편, Java??, JavaScript??, JavaBean??, 및 Java 관련 툴들이 여기에 기재되며, 다른 자료는 Sun Microsystems 및 http://java.sun.com(이 출원의 출원일을 기준으로)에서 입수될 수 있다.
각 자바빈 컴포넌트는 프라퍼티(property), 방법 및 이벤트를 포함하는 자체 특징을 가진다. 이 특징들은 자기관찰로 알려진 처리과정에 의한 다른 빈에 의해서 검사될 수 있다. 빈은 다음 2가지 방법으로 자기관찰을 지원한다.
2 빈 특징을 명명할 때, 디지인 패턴으로 알려진, 특별한 규칙을
고수함으로서, Java.Bean.Introspector 클래스는 이러한 디자인
패턴의 빈을 검사하여 빈 특징으로 찾아낸다. 상기 자기관찰자
클래스는 핵심 리플렉션 API에 의존한다.
3 프라퍼티(property), 방법 및 이벤트 정보에게 관련된 빈 정보
클래스를 명백하게 제공함으로서, 빈 정보 클래스는 빈 정보
인터페이스를 구현한다. 빈 정보 클래스는 어플리케이션 빌더 툴에
노출될 빈 특징을 명백하게 목록에 올린다.
프라퍼티(property)는 설계시에 변경될 수 있는 빈의 외양과 행위특성이다. 빌더 툴은 빈상에서 자기관찰하여 그 프라퍼티(property)를 발견하고, 조작을 위한 그들 프라퍼티(property)를 노출시킨다.
빈은 설계시에 주문에 맞춰 제작할 수 있도록 프라퍼티(property)을 노출시킨다. 주문에 맞춰 제작하는 것은 프라퍼티(property) 편집기를 이용하거나, 또는 더욱 복잡한 빈을 이용하여 주문 제작하는 것, 즉 2가지 방법으로 지원된다. 빈은 다른 빈과의 통신을 위해 이벤트를 사용한다. 이벤트를 수신 받기를 원하는 빈(청취자 빈)은 이벤트를 시작하는 빈(소스 빈)과의 관계를 기록한다. 빌더 툴은 빈을 검사하여 빈이 시작(전송)할 수 있고 처리(수신)할 수 있는 이벤트를 결정한다.
퍼시스턴스(persistence)는 빈이 그들의 상태를 모아서 저장할 수 있도록 한다. 일단 빈의 프라퍼티(property)가 변경됐으면, 빈의 상태를 모아서 나중에 그 빈을 저장하며, 프라퍼티(property)는 실제 변경하지 않고 그대로 둔다. 자바빈은 자바 오브젝트 직렬화를 이용하여 퍼시스턴스(persistence)를 지원한다.
빈의 방법은 자바 방법과 다르지 않으며, 다른 빈 또는 스크립트 환경으로부터 호출될 수 있다.
비록 빈은 빌더 툴에 의하여 이해될 수 있도록 설계되지만, 이벤트, 프라퍼티(property) 및 퍼시스턴스(persistence)를 위한 지원을 포함하여, 모든 키 APIs는 인간 프로그래머도 쉽게 판독하고 이해할 수 있도록 설계된다.
자기관찰 클래스는 목표 자바 빈에 의해 지원되는 프라퍼티(property), 이벤트 및 방법에 대해 학습가능 하도록 툴에 대한 표준방법을 제공한다. 3가지 종류의 정보 각각에 대해서, 상기 자기관찰자는 명시적 혹은 암시적 정보에 대해 검색하기 위해 빈의 클래스 및 슈퍼클래스를 별도로 분석하고 목표 빈을 포괄적으로 기재한 빈정보 오브젝트를 만들기 위해 그 정보를 이용한다.
번역을 위한 자기관찰 편집기
본 발명의 실시예에서는 클래스 필드값을 이용하여 소프트웨어 텍스트를 번역하기 위한 수단을 제공한다. 소프트웨어 디스플레이내 각 텍스트 라벨은 클래스 오브젝트로서 저장된다.
본 발명의 실시예에 있어서, 예를들어, GUI 버튼상에 디스플레이될 실제 텍스트는 하드-코드되지 않지만, 자바 자원 번들 국부화 파일내에 저장된다. 도 5를 참조하면, 자바 자원 번들을 이용하여 디스플레이되는 버튼의 예가 보여져 있다. 이 도면에 있어서, GUI 버튼(510,530)을 포함하는 창(500)이 보여져 있다. 이 창은 도 2의 창(200)에 해당된다. 그러나, 여기서 버튼(510)은 자원 번들에 해당하는 자바 JButton 호출(520)을 이용하여 생성된다.
이러한 실시예에서, 명령 "JButton(res.getString("Ok"))(520)"은 GUI버튼을 생성하고, "Ok"버튼에 해당되는 텍스트에 대한 자원 파일 검색을 행함으로서 GUI버튼에 라벨을 붙이다. 자바 자원 파일은 전체 550으로 도시되어 있으며, 그리고 영어 기준 파일은 560으로 보여져 있다. 파일(560)에서, 엔트리(580)는 "OK" 버튼에 해당하는 텍스트가 "Ok"임을 지시한다. 그러므로, 명령(520)은 텍스트 "Ok"를 가진 GUI 버튼을 생성한다. 이 실시예에서, 명확화를 위해, 버튼이름은 대문자로 기재되어 있으며, 그리고 버튼 텍스트 라벨은 혼합문자로 보여져 있다.
유사하게, 상기 명령 "JButton(res.getString("CANCEL"))(540)"은 GUI버튼을 생성하고, "Cancel"버튼에 해당하는 텍스트에 대한 자원 파일 검색을 행함으로서 상기 GUI버튼에 라벨을 붙인다. 파일(560)에서 엔트리(570)는 "Cancel"버튼에 해당하는 텍스트가 "Cancel"임을 지시한다. 그러므로, 명령(520)은 텍스트 "Cancel"를 갖는 GUI버튼(530)을 생성한다. 물론, 상기 자원 파일(560)에서 실제 해당 텍스트는 임의의 것, 즉 상기 엔트리(570)가 읽을 수 있는 {"Cancel","Stop"} 어느 것이 될 수 있으며, 여기서 명령(540)이 실행될 때마다 생성되는 "Stop"라벨이 붙은 버튼을 발생시킨다. 물론, 이 접근방식은 GUI버튼에 한정되지 않지만, 국부화 자원 파일로부터 임의의 디스플레이 가능한 텍스트를 검색하는데 이용될 수 있다.
상기 자원 파일이 자바 오브젝트로서 디스플레이될 텍스트를 저장하기 때문에, 상기 자바 환경의 자기관찰 프라퍼티(property)는 번역자가 직접 팝업 편집기를 이용하여 어플리케이션 텍스트를 직접 편집할 수 있도록 하는데 사용된다.
상기 팝업 편집기가 활성화되면, getText 호출(getText call)이 목표 오브젝트에 대해 이루어지며, 이 목표 오브젝트는 현재 텍스트를 상기 편집기에 보낸다. 이 텍스트는 번역자에게 디스플레이 되며, 이 번역자는 텍스트를 편집한다. 번역/편집이 완료된후, 새로운 텍스트가 setText 호출(setText call)을 이용하여 오브젝트내에 저장된다.
최종적으로, 새로운 텍스트를 가진 오브젝트는 자바 자원 번들 파일내로 다시 저장된다. 이후, 상기 소프트웨어 어플리케이션은 수정된 오브젝트를 이용하여 실행될 수 있으며, 이때 수정된 오브젝트는 디스플레이상에 번역된 텍스트를 보여준다.
도 6을 참조하면, 이 실시예에 있어서, 상기 자기관찰 편집기(610)는 번역될 어플리케이션(650)과는 구별되는 소프트웨어 프로그램이다. 상기 편집기(610)는 자기관찰 어플리케이션 프로그래밍 인터페이스(API)(620), 편집기 GUI(630), 및 파일 I/O 시스템(640)에 대한 코드를 포함한다. 상기 목표 어플리케이션(650)은 UI 오브젝트(660)를 저장하고, 이 UI 오브젝트(660)는 자바 자원 파일내에서 번역될 텍스트 스트링을 포함한다.
상기 번역자는 본 발명의 실시예에서, 목표 어플리케이션(650)과 자기관찰 편집기(610)를 동시에 실행한다. 상기 팝업 편집기가 사용되면, 상기 자기관찰 편집기는 목표 어플리케이션(650)으로부터의 오브젝트를 검색하여 저장한다.
자바 래퍼 API(Java Wrapper API)
또다른 구현장치는 전술한 바와같이 동일한 문맥번역 결과를 수행하지만, 자바 UI 클래스의 "래퍼" 크래스("wrapper" classes)를 이용한다. 자바 래퍼 클래스는 프로그래머가 새로운 컴포넌트내로 자바 컴포넌트를 "래프(wrap)"해주며, 이 새로운 컴포넌트는 원본 컴포넌트에 하나 이상의 새로운 또는 확장된 속성을 부가한모든 속성을 가진다.
본 발명의 실시예에서는 JButton과 같은 자바 스윙 컴포넌트를 확장시켜 자원 번들 이름 속성 및 키 이름 속성을 인스턴스 오브젝트(instance object)에 저장한다. 상기 확장된 컴포넌트는 이들 속성 및 생성/설정방법을 갖는 구성을 구현한다. 그들 속성은 팝업 다이알로그에서 그들 컴포넌트상에 디스플레이될 수 있고 사용자는 실행시간에 라벨을 편집할 수 있다. 상기 팝업 다이얼로그에서 이루어진 변경은 직접 어플리케이션 UI 컴포넌트에 반영되어 다이알로그 파일내에 저장된다.
큰 어플리케이션에 있어서, 동일한 텍스트("Save"와 같은)는 몇가지 자원 파일내에 정의될 수 있으며, 다른 다이알로그는 동일한 라벨에 대한 다른 자원 파일을 이용할 수 있다.
만약 번역자가 예를들어, 라벨 "Save"가 어떤 주어진 다이알로그내에서 "Store"와 같은 또 다른 단어로 대체되어야 하지만, 다른 다이얼로그에서는 "Save"로 남아 있어야 된다는 것을 발견했다면, 상기 번역자는 어떤 자원 파일이 그 라벨을 디스플레이 하는데 사용되었는지 알아야 한다. 번역자는 통상적으로 프로그램 소스가 아닌 자원 파일을 억세스하며, 여기서 상기 GUI 컴포넌트와 자원 파일의 관계성이 제공된다. 상기 번역자는 어떤 자원 파일이 사용되었는지 추측하여야 하는데, 이는 매우 비효율적이고, 시간 소비적이며 오류가 발생하기 쉬운 스텝이다.
본 발명의 실시예에서는 어떤 자원 파일 및 어떤 키가 특정 GUI 라벨에 사용되는지를 상기 번역자가 알 수 있도록 하는 수단을 제공한다. 이를 달성하기 위해, 자원 파일 이름 및 키 이름은 자바 래퍼 클래스를 이용하여, 라벨 자체뿐 아니라GUI 컴포넌트의 인스턴스(instance)에도 부가되어야 한다. 일단 이러한 정보가 상기 GUI 컴포넌트에 저장되면, 상기 툴은 상기 번역자가 편집할 수 있도록 자원 이름 및 키를 디스플레이할 수 있으며, 또는 툴은 이 툴에 의해 제공된 편집기 인터페이스를 이용하여 번역자를 위한 자원 파일까지도 편집할 수 있다.
상기 래퍼는 자바 클래스를 2가지 방법으로 확장한다. 하나는 자원 파일 이름 및 키를 저장하기 위해 2개의 스트링 속성을 부가하는 것이고, 나머지 하나는 그들 속성을 설정/생성(set/get)하기 위한 구성 및 방법을 제공하는 것이다. 래퍼의 구성 및 방법은 모 클래스(parent classes)의 구성 및 방법과 매우 유사하다.
"setText/getText"는 항상 텍스트 엔트리인 텍스트 기반 컴포넌트의 라벨을 설정하여 생성하는데 이용된다. 비록 상기 프로그램이 setText(getKey(...))를 기입하더라도, 라벨은 단지 결정된 텍스트이며, 자원 파일 이름 및 키를 포함하지는 않는다.
자바 래퍼 클래스를 이용하는 이 실시예는, getText/setText 방법에만 의존하는 전술한 실시예와 대비하여 다음의 2가지 이점을 가진다.
1 상기 래퍼가 자원 파일 이름 및 키를 저장할 수 있다.
이에 반면에 setText는 단지 라벨만을 저장한다.
1 상기 래퍼의 구성은 라벨뿐만 아니라 자원 파일 이름 및 키를 설정
한다. 래퍼없이, 개발자는 라벨을 가진 GUI 컴포넌트를 설명할 때
마다 구성을 설정하기 위한 다른 방법을 호출하도록 요청받는데,
이 단계는 개발단계에서 빈번히 누락된다.
도 7을 참조하면, 이 실시예는 JButton(710), JLabel(720), JCheckBox(730) 및 JMenu(740)과 같은 자바 파운데이션 클래스(Java Foundation Class)의 텍스트 컴포넌트를 확장하여, 해당하는 컴포넌트 TButton(712), TLabel(722), TCheckBox(732), 및 TMenu(742)를 생성하며, 물론, 다른 JFC 컴포넌트는 유사하게 확장될 수 있다. 새로운 컴포넌트는 각 컴포넌트에 대해, 자원 번들 이름(res) 및 키를 위한 get/set 방법을 첨가한다.
도 8을 참조하면, "JButton" 클래스에 대한 컴포넌트 확장의 더 상세한 도면이 보여져 있다. 이 도면에서, 자바 래퍼 API를 이용하여, JButton 클래스(810)가 TButton(820)으로 확장된다. 상기 TButton 클래스는 원본 JButton 클래스처럼 동일한 "라벨" 속성을 가지지만, 자원 번들 이름(res)(840) 및 키(850)에 대한 속성을 첨가한다. 이들은 번역자가 직접 각 TButton의 라벨 속성을 가져와서 그 키에 따라 편집하도록 한다.
이 접근방식을 이용하여, 상기 번역자는 그들 컴포넌트상의 팝업 메뉴를 가져올 수 있고 실행시간에 라벨을 직접 편집/번역할 수 있다. 라벨에 대한 변경은 클래스 및 키에 따라, 로그 파일내에 저장되며, 또한 GUI 디스플레이상에서 즉시 변경된다. 이후, 상기 소프트웨어 어플리케이션이 이 클래스 및 키를 만나면, 상기 편집/번역된 텍스트는 디스플레이 된다.
본 발명의 실시예에서는 상기한 자기관찰 툴과는 달리, 번역될 소프트웨어 어플리케이션의 일부분인 래퍼 클래스를 사용한다는 것이 주목된다. 만일 번역될소프트웨어 어플리케이션이 상기 확장된 래퍼 클래스를 지원하지 않으면, 이 접근방식은 효율적이지 못하다.
퍼사드(Facade)
상기 바람직한 실시예는 "퍼사드" 클래스를 생성함으로서 퍼-컴포넌트(per-component) 번역 정보를 JComponents에 첨부하기 위해 제공된다. 이 실시예에서, 상기 억세스 방법 및 편집기 사용자 인터페이스 로직은 각 래퍼 클래스내에 그것들을 포함하는 대신에 단일 "퍼사드" 클래스내로 집중된다.
상기 어플리케이션은 이 퍼사드 클래스를 통해 자바 UI 컴포넌트의 자원 번들 이름 및 키를 설정한다. 그들 속성은 그들 컴포넌트상의 팝업 다이얼로그내에 디스플레이될 수 있고 사용자는 실행시간에 라벨을 편집할 수 있다. 상기 팝업 다이얼로그내에서 이루어지는 변경은 어플리케이션 UI 컴포넌트에 직접 반영되어 로그 파일내에 저장된다.
이 방법은 상기한 래퍼링 접근방식과 같이 동일한 문제점을 해결한다. 래퍼링 접근방식에 대비하여 이 접근방식의 이점은 다음과 같다.
(1) 래퍼링 접근방식의 서브클래싱은 유지 오버헤드
(maintenance overhead)를 가진다(새롭게 갱신된 JComponents는
획득된 컴포넌트의 세트로의 변경을 요구한다).
(2) 래퍼링은 개발 오버헤드(development overhead)를 초래시키는데,
이는 단지 유용한 서브클래스의 세트로부터 선택하기 위해, 또는
그들 자신을 구현하기 위해 설계자가 요구하기 때문이다.
(3) 래퍼링은 또한 실행시간 오버헤드를 초래시키는데, 이는 상기 편집기
속성은 각 컴포넌트내에 생성되어야 하기 때문이며, 그리고
(4) 상기 래퍼링 실시예에서 사용된 setName()는 상기 컴포넌트의 "name"
속성에 모든 결합 번역 속성을 결합시키는 것을 포함한다.
이에 반면에 상기 프라퍼티 (property)-기반 접근방식은 각 번역
속성에 직접 억세스를 제공하며, 더욱 쉽게 확장가능하며
(예, 툴팁(tooltip)텍스트 번역 속성), 다른 사용을 위해 이용가능한
컴포넌트의 "name" 속성을 남겨둔다.
이 실시예는 클래스 "NLSUtility"를 제공하며, 이는 JFC 텍스트 컴포넌트(JButton,JLabel,JCheckBox, JRadioButton)에 퍼사드로서 작용하고, 자원 번들 이름 및 키에 대한 생성/설정 방법을 구현한다. 그들 속성은 억세스 키를 갖는 클라이언트 프라퍼티(property) 하쉬 테이블(hash table)내에 저장된다. 사용자는 팝업 메뉴를 그들 컴포넌트상에 생성시킬 수 있고, 실행시간에 라벨을 편집할 수 있다. 라벨에 대한 변경은 로그 파일내에 저장된다.
도 9는 이 퍼사드 클래스 실시예에 따른 블록도를 보이고 있다. 여기서, 퍼사드 클래스(900)는 JFC 컴포넌트(910,920,930,940)(또한, 다른 미도시된 컴포넌트들)에 대해 프론트 엔드(front end)로서 작용하고, 이들 각각을 클라이언트 프라퍼티(property) 속성과 통합한다. 이때 상기 퍼사드 클래스는putClientProperty()(950)과 getClientProperty()(960)을 이용함으로서, 기초가 되는 JFC 파운데이션 클래스의 프라퍼티(property) 속성을 직접 읽어 편집하도록 이용될 수 있다. 상기 퍼사드 클래스를 이용함으로서, 상기한 래퍼링 실시예에서와 동일한 결과가 달성되지만, 상기 편집기 기능의 오버헤드는 각 개별 컴포넌트내 대신, 퍼사드 클래스내에 생성된다.
한편, 본 발명은 완전히 기능적 데이터 처리 시스템 및/또는 네트워크와 관련되어 설명되어 있으며, 본 기술내용에 있어서 숙련된 자라면 본 발명의 메카니즘이 다양한 형태의 컴퓨터 사용 매체에 의해 배포되어질 수 있는 것이며, 본 발명은 배포를 위해 사용되는 신호저장매체의 타입에 관계없이 동일하게 적용된다는 것에 주목하는 것이 중요하다. 컴퓨터 사용 매체의 예로는 ROMs 또는 EEPROMs과 같은 비휘발성 하드 코드형 매체와, 플로피 디스크, 하드 디스크 및 CD-ROM과 같은 기록가능형 매체, 및 디지털 및 아날로그 통신링크와 같은 전송타입 매체를 포함한다.
한편 본 발명을 몇 가지 실시예를 참조하여 자세히 기재되어 있으며, 본 발명의 기술적인 사상의 범위를 벗어나지 않고서 형태나 세부사항에서의 다양한 변경이 이루어질 수 있다는 것을 당업자라면 쉽게 알 수 있다. 또한, 특정 데이터 구조, 기능, 및 언어가 개시되었지만, 상기 개시 기술은 본 발명의 범위를 벗어나지 않고서 다른 프로그래밍 환경으로 변경될 수 있다.
상술한 바와같은 본 발명에 따르면, 국제적 이용을 위해 소프트웨어를 개발하고, 다중 언어 소프트웨어 개발을 위한 개량된 툴을 제공하며, 컴퓨터 소프트웨어에서 언어번역을 수행할 수 있는 특별한 효과가 있다.
보다 효율적인 번역 처리과정은 번역될 텍스트에 관련된 문맥 정보를 언어 번역자에게 제공하기 위한 시스템 및 방법을 제공함에 의해 이루어진다. 상기 번역자는 기준 언어로된 GUI를 제공받고, 이후 스크린상에서 각 텍스트 라벨을 상호 적응적으로 번역할 수 있다. 상기 번역이 적절한 문맥내의 텍스트상에서 수행되기 때문에, 번역확인테스트에 대한 시간과 비용은 감소되거나 제거된다. 상기 어플리케이션에서 텍스트를 편집하는 능력은 소프트웨어 어플리케이션 자체에 편집기능을 부가함으로서 달성된다. 상기 어플리케이션안에서 각 텍스트 라벨은 자바 JComponents를 포함하고 각 멤버 컴포넌트에 부가적 속성을 더하는 "퍼사드"클래스의 컴포넌트로서 국부화 파일내에 저장된다. 상기 부가적 속성은 자바 자원 번들이름과 각 JComponents에 대한 키(key)를 포함한다. 상기 편집기가 활성화되면, 상기 번역자는 텍스트를 직접 편집할 수 있고, 상기 문맥 정보는 나중의 이용을 위한 번역을 저장하는데 이용된다.
이상의 설명은 본 발명의 일실시예에 대한 설명에 불과하며, 본 발명은 그 구성의 범위내에서 다양한 변경 및 개조가 가능하다.

Claims (21)

  1. 소프트웨어 프로그램의 텍스트 데이터 편집방법에 있어서,
    제 1 텍스트 데이터에 관련된 소스 데이터를 포함하는 소프트웨어 오브젝트-여기서, 상기 소프트웨어 오브젝트는 자바 오브젝트의 한 클래스 멤버이고, 상기 클래스는 추가적인 소스 데이터 속성을 갖는 자바 컴포넌트 오브젝트인 멤버를 포함함-를 호출함으로서 상기 제 1 텍스트 데이터를 디스플레이하는 단계,
    사용자의 입력에 응답하여 상기 소스 데이터를 확인하기 위해 상기 소프트웨어 오브젝트를 검사하는 단계,
    상기 제 1 텍스트 데이터에 대응하는 제 2 텍스트 데이터를 사용자 입력으로부터 수신하는 단계,
    상기 제 2 텍스트 데이터를 상기 소스 데이터에 따라 기계-판독가능 형태로 저장하는 단계, 및
    상기 제 1 텍스트 데이터 대신에 상기 제 2 텍스트 데이터를 컴퓨터 디스플레이상에 디스플레이하는 단계를 포함하는
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  2. 제1항에 있어서,
    상기 기계-판독가능 형태는
    컴퓨터 저장 매체상의 국부화 파일(localization file)인
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  3. 제1항에 있어서,
    상기 제 2 텍스트 데이터는
    제 1 텍스트 데이터가 번역된 것인
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  4. 제1항에 있어서,
    상기 소프트웨어 오브젝트는
    래퍼-클래스 자바 컴포넌트(wrapper-class Java component)인
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  5. 제1항에 있어서,
    상기 소스 데이터는
    자바 자원 번들(Java resource bundle)의 참조(reference)를 포함하는
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  6. 제1항에 있어서,
    상기 소스 데이터는
    상기 제 1 텍스트 데이터와 관련된 키(key)를 포함하는
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  7. 제1항에 있어서,
    상기 검사단계에서의 사용자 입력은
    마우스 클릭인
    소프트웨어 프로그램의 텍스트 데이터 편집방법.
  8. 적어도 하나의 프로세서, 접근가능 메모리, 및 접근가능한 디스플레이를 갖는 컴퓨터 시스템에 있어서,
    제 1 텍스트 데이터에 관련된 소스 데이터를 포함하는 소프트웨어 오브젝트-여기서, 상기 소프트웨어 오브젝트는 자바 오브젝트의 한 클래스 멤버이고, 상기 클래스는 추가적인 소스 데이터 속성을 갖는 자바 컴포넌트 오브젝트인 멤버를 포함함-를 호출함으로서 상기 제 1 텍스트 데이터를 디스플레이하는 수단,
    사용자의 입력에 응답하여 상기 소스 데이터를 확인하기 위해 상기 소프트웨어 오브젝트를 검사하는 수단,
    상기 제 1 텍스트 데이터에 대응하는 제 2 텍스트 데이터를 사용자 입력으로부터 수신하는 수단,
    상기 제 2 텍스트 데이터를 상기 소스 데이터에 따라 기계-판독가능 형태로 저장하는 수단, 및
    상기 제 1 텍스트 데이터 대신에 상기 제 2 텍스트 데이터를 컴퓨터 디스플레이상에 디스플레이하는 수단을 포함하는
    컴퓨터 시스템.
  9. 제8항에 있어서,
    상기 기계-판독가능 형태는
    컴퓨터 저장 매체상의 국부화 파일인
    컴퓨터 시스템.
  10. 제8항에 있어서,
    상기 제 2 텍스트 데이터는
    제 1 텍스트 데이터가 번역된 것인
    컴퓨터 시스템.
  11. 제8항에 있어서,
    상기 소프트웨어 오브젝트는
    래퍼-클래스 자바 컴포넌트인 컴퓨터 시스템.
  12. 제8항에 있어서,
    상기 소스 데이터는
    자바 자원 번들의 참조를 포함하는
    컴퓨터 시스템.
  13. 제1항에 있어서,
    상기 소스 데이터는
    상기 제 1 텍스트 데이터와 관련된 키를 포함하는
    컴퓨터 시스템.
  14. 제1항에 있어서,
    상기 검사단계에서의 사용자 입력은
    마우스 클릭인
    컴퓨터 시스템.
  15. 컴퓨터 이용가능 매체상에 컴퓨터 판독가능 프로그램코드를 포함하는 컴퓨터 프로그램 제품에 있어서,
    제 1 텍스트 데이터에 관련된 소스 데이터를 포함하는 소프트웨어 오브젝트-여기서, 상기 소프트웨어 오브젝트는 자바 오브젝트의 한 클래스 멤버이고, 상기 클래스는 추가적인 소스 데이터 속성을 갖는 자바 컴포넌트 오브젝트인 멤버를 포함함-를 호출함으로서 상기 제 1 텍스트 데이터를 디스플레이하는 구조,
    사용자의 입력에 응답하여 소스 데이터를 확인하기 위해 상기 소프트웨어 오브젝트를 검사하는 구조,
    상기 제 1 텍스트 데이터에 대응하는 제 2 텍스트 데이터를 사용자 입력으로부터 수신하는 구조,
    상기 제 2 텍스트 데이터를 상기 소스 데이터에 따라 기계-판독가능 형태로 저장하는 구조, 및
    상기 제 1 텍스트 데이터 대신에 상기 제 2 텍스트 데이터를 컴퓨터 디스플레이상에 디스플레이하는 구조를 포함하는
    컴퓨터 프로그램 제품.
  16. 제15항에 있어서,
    상기 기계-판독가능 형태는
    컴퓨터 저장 매체상의 국부화 파일(localization file)인
    컴퓨터 프로그램 제품.
  17. 제15항에 있어서,
    상기 제 2 텍스트 데이터는
    제 1 텍스트 데이터가 번역된 것인
    컴퓨터 프로그램 제품.
  18. 제15항에 있어서,
    상기 소프트웨어 오브젝트는
    래퍼-클래스 자바 컴포넌트(wrapper-class Java component)인
    컴퓨터 프로그램 제품.
  19. 제15항에 있어서,
    상기 소스 데이터는
    자바 자원 번들(Java resource bundle)의 참조(reference)를 포함하는
    컴퓨터 프로그램 제품.
  20. 제15항에 있어서,
    상기 소스 데이터는
    상기 제 1 텍스트 데이터와 관련된 키(key)를 포함하는
    컴퓨터 프로그램 제품.
  21. 제15항에 있어서,
    상기 검사단계에서의 사용자 입력은
    마우스 클릭인
    컴퓨터 프로그램 제품.
KR10-2000-0040922A 1999-07-28 2000-07-18 소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터시스템 및 컴퓨터 프로그램 제품 KR100431169B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/362,616 US6567973B1 (en) 1999-07-28 1999-07-28 Introspective editor system, program, and method for software translation using a facade class
US09/362,616 1999-07-28

Publications (2)

Publication Number Publication Date
KR20010066932A true KR20010066932A (ko) 2001-07-11
KR100431169B1 KR100431169B1 (ko) 2004-05-12

Family

ID=23426809

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0040922A KR100431169B1 (ko) 1999-07-28 2000-07-18 소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터시스템 및 컴퓨터 프로그램 제품

Country Status (4)

Country Link
US (1) US6567973B1 (ko)
KR (1) KR100431169B1 (ko)
CN (1) CN1120416C (ko)
TW (1) TW517209B (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735759B1 (en) * 1999-07-28 2004-05-11 International Business Machines Corporation Editing system for translating displayed user language using a wrapper class
WO2002031651A1 (en) * 2000-10-11 2002-04-18 Bea Systems, Inc. Method for developing business components
CA2325684A1 (en) * 2000-11-10 2002-05-10 Harm Sluiman Automation and isolation of software component testing
US6782529B2 (en) * 2001-03-29 2004-08-24 International Business Machines Corporation Method, apparatus and computer program product for editing in a translation verification test procedure
US6904563B2 (en) * 2001-04-05 2005-06-07 International Business Machines Corporation Editing platforms for remote user interface translation
US6920630B2 (en) * 2001-11-30 2005-07-19 International Business Machines Corporation Graphical user interface for managing resource bundles for internationalization
US8689125B2 (en) * 2003-10-23 2014-04-01 Google Inc. System and method for automatic information compatibility detection and pasting intervention
US7496230B2 (en) * 2003-06-05 2009-02-24 International Business Machines Corporation System and method for automatic natural language translation of embedded text regions in images during information transfer
US7475390B2 (en) * 2004-01-12 2009-01-06 International Business Machines Corporation System and method for automatic natural language translation during information transfer
US20050010391A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Chinese character / Pin Yin / English translator
US20050010392A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Traditional Chinese / simplified Chinese character translator
US20050027547A1 (en) * 2003-07-31 2005-02-03 International Business Machines Corporation Chinese / Pin Yin / english dictionary
US8137105B2 (en) 2003-07-31 2012-03-20 International Business Machines Corporation Chinese/English vocabulary learning tool
CA2544017A1 (en) * 2003-10-29 2005-05-12 Michael W. Trainum System and method for managing documents
US7814101B2 (en) * 2003-10-30 2010-10-12 Microsoft Corporation Term database extension for label system
US7478336B2 (en) * 2003-11-06 2009-01-13 International Business Machines Corporation Intermediate viewer for transferring information elements via a transfer buffer to a plurality of sets of destinations
US7340685B2 (en) * 2004-01-12 2008-03-04 International Business Machines Corporation Automatic reference note generator
US7346853B2 (en) * 2004-01-12 2008-03-18 International Business Machines Corporation Online learning monitor
US20050234700A1 (en) * 2004-04-15 2005-10-20 International Business Machines Corporation Autonomic method, system and program product for translating content
WO2006009287A1 (ja) * 2004-07-20 2006-01-26 Star Game's Corporation 自動変換用プログラムおよびプログラム変換サーバ
GB0421297D0 (en) * 2004-09-24 2004-10-27 Univ Abertay Dundee Computer games localisation
US9471332B2 (en) * 2004-10-19 2016-10-18 International Business Machines Corporation Selecting graphical component types at runtime
US8200476B2 (en) * 2004-11-04 2012-06-12 Avaya Inc. Message file editing process
US7536640B2 (en) * 2005-01-28 2009-05-19 Oracle International Corporation Advanced translation context via web pages embedded with resource information
US7676357B2 (en) * 2005-02-17 2010-03-09 International Business Machines Corporation Enhanced Chinese character/Pin Yin/English translator
US7516062B2 (en) * 2005-04-19 2009-04-07 International Business Machines Corporation Language converter with enhanced search capability
CN100447743C (zh) * 2005-06-24 2008-12-31 国际商业机器公司 在无需修改源代码的情况下本地化java gui应用的系统和方法
US7543189B2 (en) * 2005-06-29 2009-06-02 International Business Machines Corporation Automated multilingual software testing method and apparatus
WO2007076629A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Type checking for object-oriented programming languages
EP1868083A1 (en) 2006-06-13 2007-12-19 Microsoft Corporation Use of context information in localisation
EP1870804A1 (en) * 2006-06-22 2007-12-26 Microsoft Corporation Dynamic software localization
US20080065664A1 (en) * 2006-06-27 2008-03-13 Kehn Daniel B Computer-implemented method, tool, and program product for more efficiently utilizing java resource bundles
US20080282161A1 (en) * 2007-05-10 2008-11-13 Dillenberger Donna N Masking changes to a computer application
JP5186154B2 (ja) * 2007-08-21 2013-04-17 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムが表示するメッセージの修正を支援する技術
US8650553B2 (en) * 2007-10-25 2014-02-11 Disney Enterprises, Inc. System and method for localizing assets using automatic generation of alerts
US8307349B2 (en) * 2008-01-31 2012-11-06 International Business Machines Corporation Methods, systems, and computer program products for internationalizing user interface control layouts
US8595710B2 (en) * 2008-03-03 2013-11-26 Microsoft Corporation Repositories and related services for managing localization of resources
US9158519B2 (en) * 2008-05-21 2015-10-13 Optumsoft, Inc. Dynamic collection attribute-based computer programming language methods
US9384011B2 (en) 2010-06-30 2016-07-05 International Business Machines Corporation Workspace creation and management for a computing desktop
US20130006603A1 (en) * 2011-06-30 2013-01-03 Verizon Patent And Licensing, Inc. Graphical user interface localization systems and methods
CN102279847B (zh) * 2011-08-17 2013-06-19 瑞斯康达科技发展股份有限公司 软件系统国际化方法和装置
CN103309646B (zh) * 2012-03-07 2017-11-14 腾讯科技(深圳)有限公司 一种软件本地化的方法和装置
US9170826B2 (en) * 2012-12-17 2015-10-27 Sap Se Common multi-language text management in a business-oriented software framework
EP2984579A4 (en) * 2013-04-11 2017-01-18 Hewlett-Packard Enterprise Development LP Automated contextual-based software localization
CN103955457A (zh) * 2014-05-20 2014-07-30 陈北宗 一种机器辅助文献翻译程序
US10248537B2 (en) 2015-04-28 2019-04-02 Microsoft Technology Licensing, Llc Translation bug prediction classifier
US9767011B2 (en) 2015-12-01 2017-09-19 International Business Machines Corporation Globalization testing management using a set of globalization testing operations
US9740601B2 (en) * 2015-12-01 2017-08-22 International Business Machines Corporation Globalization testing management service configuration
US10248406B2 (en) 2016-11-17 2019-04-02 International Business Machines Corporation Locale object management
WO2019041084A1 (en) * 2017-08-28 2019-03-07 Entit Software Llc TRANSLATION OF TEXT IN USER INTERFACES BASED ON CONTEXTS OF USER INTERFACES
CN112068921A (zh) * 2020-09-23 2020-12-11 北京亿信华辰软件有限责任公司武汉分公司 一种软件国际化资源定位方法
US11651257B2 (en) * 2020-10-29 2023-05-16 Accenture Global Solutions Limited Software CoBot engineering, execution, and monitoring
CN113961300A (zh) * 2021-12-16 2022-01-21 杭州行至云起科技有限公司 一种iOS APP字符串资源文件翻译方法及系统
CN116522960B (zh) * 2023-05-08 2023-10-20 深圳市凝趣科技有限公司 一种支持多平台的多语种交互式实时翻译终端及方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201042A (en) * 1986-04-30 1993-04-06 Hewlett-Packard Company Software process and tools for development of local language translations of text portions of computer source code
US5251130A (en) * 1991-04-18 1993-10-05 International Business Machines Corporation Method and apparatus for facilitating contextual language translation within an interactive software application
US5416903A (en) * 1991-08-19 1995-05-16 International Business Machines Corporation System and method for supporting multilingual translations of a windowed user interface
US5243519A (en) 1992-02-18 1993-09-07 International Business Machines Corporation Method and system for language translation within an interactive software application
CA2128828C (en) * 1993-08-24 2001-01-02 David Michael Silver Multilingual standard resources
US5583761A (en) 1993-10-13 1996-12-10 Kt International, Inc. Method for automatic displaying program presentations in different languages
EP0668558B1 (en) * 1994-01-14 2002-04-17 Sun Microsystems, Inc. Method and apparatus for automating the localization of a computer program
JPH0869469A (ja) * 1994-08-31 1996-03-12 Kobe Nippon Denki Software Kk 機械翻訳の方法
US5678039A (en) 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
US5652884A (en) 1994-11-14 1997-07-29 Object Technology Licensing Corp. Method and apparatus for dynamic update of an existing object in an object editor
US5805899A (en) * 1995-07-06 1998-09-08 Sun Microsystems, Inc. Method and apparatus for internal versioning of objects using a mapfile
JPH0991290A (ja) * 1995-09-25 1997-04-04 Toshiba Corp 機械翻訳装置及び再翻訳処理方法
US5734597A (en) * 1995-11-24 1998-03-31 International Business Machines Corporation Graphical user interface interaction between time and date controls
US5974372A (en) * 1996-02-12 1999-10-26 Dst Systems, Inc. Graphical user interface (GUI) language translator
US5907326A (en) * 1997-03-10 1999-05-25 International Business Machines Corporation System and method for updating cultural profiles with dragging and dropping locale objects
US6003050A (en) * 1997-04-02 1999-12-14 Microsoft Corporation Method for integrating a virtual machine with input method editors
US5953526A (en) 1997-11-10 1999-09-14 Internatinal Business Machines Corp. Object oriented programming system with displayable natural language documentation through dual translation of program source code
US6161082A (en) * 1997-11-18 2000-12-12 At&T Corp Network based language translation system
US6092036A (en) * 1998-06-02 2000-07-18 Davox Corporation Multi-lingual data processing system and system and method for translating text used in computer software utilizing an embedded translator
US6272508B1 (en) * 1998-10-13 2001-08-07 Avaya Technology Corp. Guide builder for documentation management in computer applications
US6425123B1 (en) * 1999-06-29 2002-07-23 International Business Machines Corporation System, method, and program for testing translatability of software by using english multi-byte transliteration creating double-wide characters
US6311151B1 (en) * 1999-07-28 2001-10-30 International Business Machines Corporation System, program, and method for performing contextual software translations
US6275790B1 (en) * 1999-07-28 2001-08-14 International Business Machines Corporation Introspective editor system, program, and method for software translation

Also Published As

Publication number Publication date
TW517209B (en) 2003-01-11
CN1120416C (zh) 2003-09-03
CN1282914A (zh) 2001-02-07
US6567973B1 (en) 2003-05-20
KR100431169B1 (ko) 2004-05-12

Similar Documents

Publication Publication Date Title
KR100431169B1 (ko) 소프트웨어 프로그램의 텍스트 데이터 편집방법, 컴퓨터시스템 및 컴퓨터 프로그램 제품
US6735759B1 (en) Editing system for translating displayed user language using a wrapper class
US6275790B1 (en) Introspective editor system, program, and method for software translation
US6311151B1 (en) System, program, and method for performing contextual software translations
CA2307299C (en) Mock translation method, system, and program to test software translatability
US6425123B1 (en) System, method, and program for testing translatability of software by using english multi-byte transliteration creating double-wide characters
US8700998B2 (en) Foreign language translation tool
US6453462B1 (en) Mock translation system, method, and program using multi-byte placeholder characters to test translatability of software that will display multi-byte languages
EP0668558B1 (en) Method and apparatus for automating the localization of a computer program
US6904563B2 (en) Editing platforms for remote user interface translation
US6724401B1 (en) Computer-based documentation and instruction
US6185729B1 (en) Multibyte locale for single byte languages
US5881289A (en) Remote compiling of source code for cross development
US20150269140A1 (en) Dynamic software localization
EP1333374A1 (en) Dynamic generation of language localized and self-verified Java classes using XML descriptions and static initializers
US11200076B2 (en) Providing user interface language options
US20060167831A1 (en) Method to automate resource management in computer applications
Griffiths et al. NET Windows forms in a nutshell
Pars et al. ASP. NET AJAX Client Libraries
Grönberg Käyttöliittymän kotoistus käyttöliittymäkomponentteja suunnitteluvaiheessa dynaamisesti laajentamalla
Grönberg of thesis: User Interface Localization with Design-Time Support by Dy
Skulski The ModulaTor

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20000718

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20030527

Patent event code: PE09021S01D

AMND Amendment
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20031021

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20030527

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 20040120

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20031021

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20040420

Appeal identifier: 2004101000248

Request date: 20040120

AMND Amendment
PB0901 Examination by re-examination before a trial

Comment text: Amendment to Specification, etc.

Patent event date: 20040219

Patent event code: PB09011R02I

Comment text: Request for Trial against Decision on Refusal

Patent event date: 20040120

Patent event code: PB09011R01I

Comment text: Amendment to Specification, etc.

Patent event date: 20030728

Patent event code: PB09011R02I

B701 Decision to grant
PB0701 Decision of registration after re-examination before a trial

Patent event date: 20040420

Comment text: Decision to Grant Registration

Patent event code: PB07012S01D

Patent event date: 20040227

Comment text: Transfer of Trial File for Re-examination before a Trial

Patent event code: PB07011S01I

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20040430

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20040503

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20070402

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20080401

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20090401

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20100405

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20100405

Start annual number: 7

End annual number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee