KR101311074B1 - 문화 특징적인 데이터를 생성, 저장, 관리 및 소비하기 위한 방법 및 시스템 - Google Patents

문화 특징적인 데이터를 생성, 저장, 관리 및 소비하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101311074B1
KR101311074B1 KR1020060021888A KR20060021888A KR101311074B1 KR 101311074 B1 KR101311074 B1 KR 101311074B1 KR 1020060021888 A KR1020060021888 A KR 1020060021888A KR 20060021888 A KR20060021888 A KR 20060021888A KR 101311074 B1 KR101311074 B1 KR 101311074B1
Authority
KR
South Korea
Prior art keywords
data
localized
localization
component
matcher
Prior art date
Application number
KR1020060021888A
Other languages
English (en)
Other versions
KR20060096945A (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 KR20060096945A publication Critical patent/KR20060096945A/ko
Application granted granted Critical
Publication of KR101311074B1 publication Critical patent/KR101311074B1/ko

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Abstract

본 발명은 데이터를 처리하기 위한 시스템을 제공한다.
로컬화 플랫폼, 로컬화

Description

문화 특징적인 데이터를 생성, 저장, 관리 및 소비하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR CREATING, STORING, MANAGING AND CONSUMING CULTURE SPECIFIC DATA}
도 1은 본 발명이 사용될 수 있는 환경의 한 예시적인 실시예를 도시하는 도면.
도 2는 본 발명의 양상을 전개하는 런타임 환경의 상세한 블록도.
도 3은 번역이 불가한 도 2에 도시된 플랫폼(또는 시스템)의 전반적인 동작을 도시하는 흐름도.
도 4는 도 2에 도시된 매칭 컴포넌트의 동작을 도시하는 흐름도.
도 5는 애플리케이션 또는 다른 컨텐트의 개발 동안 사용된, 도 2에 도시된 로컬화 플랫폼(또는 시스템)의 상세한 블록도.
도 6은 본 발명의 한 실시예에 따라 후속 로컬화를 돕는 기술을 구현하는 제품이 어떻게 개발될 수 있는지를 도시하는 흐름도.
<도면의 주요부분에 대한 부호의 설명>
202 : 애플리케이션 (또는 컨텐트)
204 : 입력 소스
205 : 데이터 수집 컴포넌트
206 : 자원 관리자
210 : TM 매처
본 발명은 데이터 처리에 관한 것이다.
로컬화(localization)는 전혀 다른 시장에서의 차이를 설명하기 위해 제품 또는 서비스를 수정하는 프로세스이다. 로컬화의 가장 일반적인 예는 애플리케이션이 소스 언어로 작성되고 이것이 이 원래의 언어와는 다른 타겟 언어를 사용하는 시장에 도입될 때 일어난다. 예를 들어, 애플리케이션이 영어로 작성되어 중국에 도입되는 경우, 각종 영어 문자열 및 UI 구성요소(메뉴, 아이콘 등), 소프트웨어 컴포넌트 및 애플리케이션의 사용자 어시스턴스(user assistance)가 중국어로 번역됨으로써 로컬화될 것이다. (폰트 유형, 크기, 컨트롤 위치 등을 포함하여) UI 레이아웃 및 스타일은 또한 타겟 언어에 맞춰 변경될 것이다. 물론, 로컬화의 개념은 단지 언어를 수정하는 것보다는 넓다. 동일한 언어를 사용하는 시장이 다른 이유로 인해 구별될 수 있다. 예를 들어, 소프트웨어 애플리케이션이 다른 나이의 그룹에 대해 "로컬화"될 수 있다. 이것은 성인용, 그리고 어린이용 또는 틴에이저용의 한 세트의 언어 및 외양(appearance)을 지닐 수 있다. 따라서, 로컬화는 전혀 다른 시장에서의 각종 차이를 수용할 수 있다.
상술한 바와 같이, 로컬화가 단지 문자열을 번역하는 것 이상의 것을 수반함에도 불구하고, 사용자가 문서의 판독을 용이하게 하기 위해서는, 해당 시나리오에 대한 설명에 집중할 것이다. 유사한 방식으로, 대부분의 실례들이 소프트웨어 로컬화 분야에서 나오지만 본 발명은 소프트웨어 로컬화에 제한되지 않는다. 마찬가지로, 본 발명의 대부분을 제품의 로컬화에 집중하여 설명하고 있지만, 본 발명은 이에만 제한되지 않고 서비스에 적용가능하므로, "제품"이란 용어는 본 발명의 설명을 위해 "서비스"를 포함하는 것으로 한다. 과거에는, 로컬화를 제공하는 시스템-레벨의 시도는 없었지만, 대신, 개개의 문제를 해결하기 위해 개개의 컴포넌트를 이용하여 로컬화가 수행되어 왔다. 예를 들어, 로컬라이저(localizer)는 로컬화 속도, 정확도 및 일관성을 향상시키기 위해 소정의 기계 번역 기술로 증대될 수 있다. 그러나, 다른 로컬라이저는 이전의 번역을 재사용함으로써 재활용도를 높이기 위해 번역 메모리(translation memory)만을 사용하여 도구가 없을 때보다 더 빠른 속도로 더 일관된 결과를 제공할 수 있다.
또한, 이것은 종래에는 오프라인 방식으로 모두 행해진다. 다시 말해, 작성자는 전체 애플리케이션 또는 컴포넌트의 큰 부분을 생성하고, 그 컴포넌트 또는 애플리케이션에 로컬화를 위한 로컬라이저를 제공한다. 로컬라이저가 원래의 작성자와 상호작용하는 것이 최소이거나 아니면 상호작용이 없는 것이 일반적인 프로세스이다. 이로 인해 그 로컬화를 쉽게 하는 원래의 컨텐트의 변경을 도입하는 것이 어렵게 된다. 사실, 많은 경우, 제품 전체가 개발된 훨씬 후에야 그리고 다른 언어를 사용하거나 다른 방식으로 구별되는 다른 시장에 그 제품을 확장할 것이라는 전략적 마케팅 결정이 내려진 후에야 로컬화가 수행된다. 이러한 모든 경우에서, 통상적으로, 애플리케이션을 염두에 두고 개발하거나 또는 로컬화를 최적화하기 위 한 사전 작업(up front work)이 행해지는 경우는 거의 없다. 마찬가지로, 로컬화가 쉬운 제품 또는 서비스를 작성하는 것이 로컬화가 쉽지 않은 것을 작성하는 것보다 어렵지 않음에도 불구하고, 개발/작성 단계에서, 비교적 로컬화하기 쉬운 애플리케이션 또는 기타 제품/서비스를 개발하기 위한 지원이 거의 없다.
따라서, 제품, 서비스 및 애플리케이션은 전통적으로 다른 언어로 번역되거나 또는 복잡하고, 수작업이며 손이 많이 가는 프로세스를 통해 로컬화되어 왔다. 이러한 소프트웨어 제품의 로컬화 및 제품 관련 컨텐트의 번역에 대한 비용은 새로운 시장에 진입하기 위해 반드시 극복해야만 하는 중요한 장애물임을 나타낸다. 이것은 중소형 독립 소프트웨어 벤더 또는 컨텐트 작성자에게 특히 그러하다.
로컬화 문제는 또한 소프트웨어가 개발되는 특정 장소에 따라 비율이 정해진다. 대형 시장을 갖는 장소에서 소프트웨어를 작성하는 개발자의 경우, 다른 (그리고 좀 더 작은) 시장에 대해 소프트웨어를 로컬화하는 것은 별로 필요하지 않다. 그러나, 개발자 작성자가 상대적으로 작은 시장을 갖는 장소에 있을 때 (그리고 상대적으로 소규모 시장을 갖는 언어를 사용할 때), 제품의 전체 생존 능력은 그 제품을 더 큰 시장에서 사용되는 언어로 로컬화하는 능력에 좌우될 수 있다. 이것은 제조업자가 로컬화에 지나치게 많은 양의 자원을 소요하도록 한다. 이것은 종종 개발을 위해 사용가능한 자원을 손상시킨다.
종래의 로컬화 노력과 관련된 또 다른 문제점은 각종 기타 로컬화 소스의 성과를 이끌어 낼 좋은 방법이 없다는 것이다. 예를 들어, 각종 벤더들은 각종 시장에 대해 자신의 제품을 로컬화한다. 다른 벤더에 의해 개발된 유사한 애플리케이 션이 동일하거나 아주 유사한 문자열 또는 소프트웨어를 동일한 시장에 대해 로컬화하고 있을 수 있다. 그러나, 이 두 벤더가 서로의 노력을 이끌어내거나 또는 이를 공유할 수 있는 적절한 방법이 현재로는 없다. 그러므로, 제품을 로컬화하는 데에 많은 노력이 중복된다.
더욱이 상이한 유형의 자원 관리자, 자원 포맷 및 데이터 저장소를 갖는 많은 상이한 (예를 들어 Win32, CLR 및 Web 스크립팅과 같은) 프로그래밍 모델이 있다. 이들은 로컬화를 다루기 위해 상이한 파서 및 도구 집합을 필요로 하며, 그 결과 복잡하고 비용이 많이 드는 프로세스와 로컬화 품질에 있어 불일치를 초래한다.
본 발명은 데이터 처리를 위한 시스템을 제공한다.
본 발명은 통합된 로컬화 플랫폼 또는 완전히 통합되지는 않았지만 운영 체제와 밀접하게 동작하는 컴포넌트를 갖는 로컬화 플랫폼을 갖춘 운영 체제를 제공한다. 본 발명의 로컬화 플랫폼은 운영 체제에 의해 요청되는 서비스로서 또한 제공될 수 있다. 본 발명은 이 로컬화 플랫폼을 활용하여 컨텐트 및 소프트웨어를 로컬화한다. 본 발명은 또한 제품 또는 서비스의 개발 동안 사용될 수 있고, 제품 또는 서비스를 더 빠르고 효율적으로 로컬화할 수 있도록 하는 실행(practice)을 구현한다. 본 발명은 주로 로컬화 프로세스 동안의 번역에 관해 주로 설명되지만, 본 발명은 이에 제한되지 않고, 로컬화는 또한 전혀 다른 시장에 대한 각종 기타 편의를 포함한다. 본 발명을 더 상세하게 설명하기에 앞서, 본 발명이 사용될 수 있는 환경의 한 실시예가 설명될 것이다.
도 1은 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 예제를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 단지 적합한 컴퓨팅 환경의 한가지 일례이며, 본 발명의 사용 범위 또는 기능에 관해 어떠한 제한을 제안하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에서 도시된 임의의 하나의 컴포넌트 또는 컴포넌트들의 조합에 관해 임의의 종속성 또는 요구사항을 가지는 것으로 해석되어서는 안 된다.
본 발명은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명과 함께 사용하기에 적합하고 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 소비자 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전화 시스템, 상기 시스템이나 장치 등의 임의의 것을 포함하는 분산 컴퓨팅 환경이 있지만 이에 제한되는 것은 아니다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 문맥으로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하고 또는 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실행되도 록 설계된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
도 1과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110)의 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트는 처리 장치(120), 시스템 메모리(130) 및 시스템 메모리를 포함하는 각종 시스템 컴포넌트를 처리 장치(120)에 결합하는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예제로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 이동불가식 매체를 포함한다. 예제로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위해 모든 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 이동 불가식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에서 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호내의 정보가 암호화되도록 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 예제로서, 통신 매체는 유선 네트워크 또는 다이렉트 유선 접속과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리의 형태로 컴퓨터 저장 매체를 포함한다. 시동 시 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)에 즉시 액세스 가능하고 및/또는 현재 처리 장치(120)에 의해 동작되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예제로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로 그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예제로서, 도 1은 이동불가식, 비휘발성 자기 매체로의 기록 또는 그로부터의 판독을 위한 하드 디스크 드라이브(141), 이동식, 비휘발성 자기 디스크(152)로의 기록 또는 그로부터의 판독을 위한 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(156)로의 기록 또는 그로부터의 판독을 위한 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체(solid state) RAM, 고체 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 이동불가식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(110)의 다른 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이 컴포넌트 들이 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 주어졌다는 것은 적어도 이들이 서로 다른 사본(copy)이라는 것을 도시한다.
사용자는 키보드(162), 마이크(163) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상 술된 구성요소의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 연결로는 LAN(171) 및 WAN(173)이 있지만, 다른 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 회사 전체에 걸친 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173) 상에서의 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 그 예제로서, 도 1은 원격 컴퓨터(180)에 상주하고 있는 원격 애플리케이션 프로그램(185)을 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이의 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것을 이해할 것이다.
도 2는 도 1에 도시되어 있는 운영 체제(134)에 통합되어 있는 로컬화 플랫폼(또는 시스템)을 도시한다. 로컬화 플랫폼(200)은 많은 상이한 메모리 저장소를 갖추어 도시되어 있고, 이들 메모리 저장소가 도 1에 도시되어 있는 각종 저장 장치 중 임의의 것으로, 또는 상이한 저장 장치로 구현될 수 있다는 것을 이해할 것이다. 시스템(200)은 로컬화가 될 애플리케이션(202)과, 데이터 수집 컴포넌트 (205)를 통해 시스템(200)의 데이터 저장소로 각종 번역을 입력하는 각종 입력 소스(204)와 함께 상호작용가능하게 구성되어 도시되어 있다.
시스템(200) 자체는 자원 관리자(206), 레이아웃 엔진(208), 번역 메모리 매처(translation memory(TM) matcher)(210), 다운로드 관리자(212), 번역 메모리(TM) 데이터 서비스(214), 기계 번역(machine translation(MT)) 시스템(216), 필터(218), 인증서 시스템(220) 및 복수의 상이한 데이터 저장소를 포함한다. 도 2에 도시된 데이터 저장소는 애플리케이션 규칙 데이터 저장소(222), 로컬 데이터 저장소(224), 개인 데이터 저장소(226), 용어 기반 데이터 저장소(228) 및 용어 기반 번역 데이터 저장소(230), 온톨로지(ontology) 저장소(232), 번역 메모리(234) 및 공통 UI 구성요소 데이터 저장소(236)를 포함한다. 일반적으로, 애플리케이션 규칙들은 애플리케이션 관련 리치 데이터를 명시하기 위해 자원에서 사용되는 반면, 필터들은 데이터에 기여하는 엔티티(또는 입력 소스(204))가 자신이 기여한 데이터만을 수정할 수 있고, 추가된 모든 데이터가 어떤 기준에 근거하여 필터링되는 것을 보장하기 위해 사용된다. 물론, 데이터 저장소들은 원하는 임의의 방식으로 그룹핑될 수 있고, 병합되거나 다르게 나누어질 수도 있다. 시스템(200)의 상세한 동작은 도 2 내지 도 6에 관련하여 명세서에서 이후에 설명될 것이다. 그러나, 간략하게 도 2에 도시된 시스템(200) 및 그 항목(items)의 동작에 대해 지금부터 설명하고자 한다.
런타임 동안, 자원 관리자(206)는 애플리케이션(202)과 관련된 자원을 캐시 메모리(207)로 로드한다(로컬화가능한 데이터의 컨텐트 및 기타 유형에서 유사한 시나리오를 찾아볼 수 있음). 자원 관리자(206)는 또한 자원에 대해 애플리케이션(202)으로부터 호출을 수신한다. 자원 관리자(206)는 이에 응하여 우선 플랫폼(200)에 의해 현재 선택된 장소와 관련된 언어로 문자열을 로드한다. 자원 관리자(206)는 사용가능성, 신뢰도 레벨, 사용자 설정 등과 같은 각종 기준을 기초로 하여 어느 버전의 자원을 로드할지를 결정한다. 자원 관리자(206)는 TM 매처(210)를 호출하기로 결정할 수 있다. 이렇게 하기 위해, 자원 관리자(206)는 TM 매처(210)를 호출하여 명시된 자원의 번역(또는 로컬화)을 획득한다. TM 매처(210)는 또한 자원 로딩에 있어 런타임 지연을 막기 위해 미리 파퓰레이트된(pre-populated) 자원 데이터를 지닐 수 있다; 미리 파퓰레이트된 정보에는 그것이 MT 시스템(216)으로부터 왔는지 또는 TM 매처(210)로부터 왔는지의 여부, 그것의 신뢰 소스 등과 같은 관련 정보가 태그될 것이다. 이것에 대해 이하에 더 상세히 설명하기로 한다. TM 매처(210)가 자원에 대한 매치를 반환하지 못할 경우, 자원 관리자(206)는 번역이 다른 대체(fallback) 언어로 제공될 수 있도록 자원 대체(resource fallback)를 단계적으로 행한다. 이것 또한 이하에 더 상세히 설명된다. 또한, 한 실시예에서, 자원 관리자(206)와 TM 매처(210) 둘 다 대체물을 지닌다. 이것은 서로 상이할 수 있고, TM 매처(210)의 결과가 자원 관리자(206)에 영향을 줄 수 있음에도 불구하고, 자원 관리자(206)는 TM 매처(210)를 호출하지 않고 대체하기로 결정할 수 있다.
문자열에 대한 로컬화에 의해 행해진 변경에 의해 그 문자열을 포함하는 디스플레이 항목이 변경되는 것은 피할 수 없는 일반적인 것이다. 일반적인 예로는 더 많은 공간의 필요성(더 긴 문자열), 다이얼로그 흐름의 변경(오른쪽에서 왼쪽으로 읽는 언어 대 왼쪽에서 오른쪽으로 읽는 언어) 등이 있다. 조정 프로세스는 로컬화 시 또는 렌더링 시에 또는 그 둘 모두에서 일어날 수 있다. 가장 일반적인 경우는 다이얼로그의 항목이 재배열되고 그것의 크기가 조정되는 것인데, 이 프로세스는 자동 레이아웃이라 지칭된다. 작성 프로세스 동안 제공되는 정보의 양과 정확도는 런타임 시에 생성되는 결과에 영향을 끼칠 것이다.
TM 매처(210)는 각종 번역 소스와, 매치될(또는 다른 언어로 번역되거나 또는 로컬화될) 컨텐트를 요청하는 자원 관리자(206) 사이에 위치하고 있다. TM 매처(210)는 사용가능한 소스(및 애플리케이션(202)에 의해 신뢰되는 소스)를 검색하여 그것과 관련된 가장 높은 신뢰도 점수를 지니는 번역을 찾는다.
다시, TM 매처(210) 동작의 상세한 설명이 도 4와 관련하여 이하에 설명될 것이다. 그러나, 간단히, TM 매처(210)는 애플리케이션 규칙 데이터 저장소(222)에서 애플리케이션 또는 컨텐트(202)와 관련된 규칙을 액세스하여 자원 관리자(206)에 다시 제공되는 로컬화가 무엇이든지 간에 애플리케이션(202)이 잘못 기능하도록 하지 않는 것을 보장한다. TM 매처(210)는 우선 로컬 데이터 저장소(224)와 개인 데이터 저장소(226)를 검색하여 로컬화가 이미 존재하고 있는지 여부를 알아본다. 자원 관리자(206)에 의한 요청이 이전에 행해졌던 것일 경우, 로컬 데이터 저장소(224)는 이미 로컬화된 자원의 번역 또는 기타 로컬화를 보유하고 있다.
TM 매처(210)는 또한 TM 데이터 서비스(214)를 호출한다. TM 데이터 서비스(214)는 저장소(236)에 저장된 공통 사용자 인터페이스 구성요소뿐만 아니라 용어 기반 데이터 저장소(228)에 저장된 정의된 용어와 같은 각종 상이한 것의 기타 로컬화 또는 번역을 포함하는 번역 메모리(234)를 액세스하고, 온톨로지 저장소(232)는 애플리케이션(202) 및 그 관련 도메인에 대한 문맥 정보를 제공한다.
로컬화가 저장소(224 또는 226)상에 지역적으로 또는 저장소(234)에 원격으로 아직 존재하지 않는 경우, TM 매처(210)는 선택적으로 사용가능한 기계 번역(MT) 시스템(216)(또는 복수의 사용가능한 MT 시스템 중 하나)에 액세스하여 로컬화될 컨텐트에 대해 기계 번역을 수행할 수 있다. MT 시스템(216)을 호출하기 위해 TM 매처(210)에 의해 행해지는 결정은 환경 설정(preferences), 번역의 사용가능성, 사용가능한 번역의 품질 및 MT 제공 번역 들에 기초할 수 있다. 기계 번역 시스템(216)은 한 실시예에서 상업적으로 이용가능한 MT 시스템 중 임의의 것일 수 있고, (TM 데이터 서비스(214) 및 로컬 데이터 소스(224) 및 개인 데이터 소스(226)와 같은) 다른 메모리 소스 중 임의의 것으로부터 더 높은 신뢰도 레벨을 갖는 매치가 없는 경우, 번역을 위해 도시적으로만 활용된다. MT 시스템(216)이 사실상 임의의 MT 시스템일 수 있거나 또는 임의의 시스템이 번역을 생성하기 위해 다른 저장소의 데이터(예를 들어 이전의 번역)를 사용할 수 있다는 사실은 시스템의 확장성을 상당히 향상시키는데, 그 이유는 새로운 또는 다른 MT 시스템이 MT 매처(210)에 의해 쉽게 활용될 수 있기 때문이다.
물론, MT 시스템 확장성은 시스템의 유일한 확장성은 아니고, 단지 일례일 뿐이다. 시스템 확장성의 일부 다른 예로서, 컨텐트 작성 편집기, 언어 파서, 제3자의 번역 메모리, 커뮤니티 편집기, 개발 작성 환경, 웹 서비스로의 접속 등을 포 함한다. 이들 영역 및 다른 영역의 확장성은 플랫폼(200)의 API가 지원한다.
어쨌든, TM 매처(210)에 의해 호출된 번역 자원 각각은 예시적으로 요청되고 있는 로컬화에 연관된 신뢰도 또는 재사용 비율을 나타내는 신뢰도 점수(또는 번역 비율, 재활용율, 또는 다른 유사한 측정값)를 TM 매처(210)에 제공할 것이다. TM 매처(210)는 최고 점수에 연관된 번역을 제공하는 신뢰되는 소스로부터 로컬화 또는 번역을 선택할 수 있다. 이후 번역들이 아직 저장소에 저장되어 있지 않은 경우, 이것은 다운로드 관리자(212)에 의해 로컬 데이터 저장소(224)로 다운로딩된다.
예시적인 일 실시예에서, 다양한 각종 입력 소스(204)가 시스템(200)의 각종 메모리에 번역 입력을 제공할 수 있다. 예를 들어, 로컬화 플랫폼(200)을 포함하는 운영 체제를 개발하는 벤더 또는 소프트웨어 제조업자는 예시적으로 신뢰된 용어를 각종 메모리에 제공할 것이다. 그러나, 일 실시예에서, 입력 소스(204)는 일반적인 커뮤니티 및 개발 커뮤티니를 포함할 수 있다. 일반적인 커뮤니티는, 시스템(200)을 사용하여 로컬화 서비스를 수행하는 누군가가 데이터 수집 컴포넌트(205)를 통해 적절한 메모리에 컨텐트 일부에 대해 제안된 로컬화를 제공하게끔 한다. 입력 소스(204)는 또한 이처럼 공식적으로 인식된 개발자에 의해서만 제공되는 번역들을 저장할 개발 커뮤니티(일반적인 커뮤니티에 반대되는 것임)를 포함할 수 있다. 그러므로, 플랫폼(200)을 이용하여 로컬화 프로세스는 상당히 큰 규모로 커뮤니티 관여에 대해 시작할 수 있을 뿐만 아니라, 사용자의 수요와 기대를 충족하기 위해 세부적인 레벨(granular level)(예컨대, 사용자가 신뢰되는 것과 그렇지 않은 것이 무엇인지를 결정함)로 조정될 수 있다는 것을 알 수 있다.
또한, 데이터 수집 컴포넌트는 동적으로 (예컨대, 설치, 런타임, 구성 동안에) 각종 입력 소스(204)로부터 새로운 데이터를 간헐적으로 모은다. 새로운 데이터는, 물론, 새로운 애플리케이션과 새로운 도메인을 지원하고 실행중인 운영 체제의 셀프-터닝(self-turning)을 수행하는, 미리-로컬화된 데이터 또는 번역 메모리 데이터일 뿐만 아니라 새로운 자원 데이터일 수 있다. 이는 시스템의 적응력 및 정확도를 포함한다.
그러나, 특정 애플리케이션 개발자, 시스템 관리자, 또는 사용자는 소정의 로컬화 컨텐트만이 신뢰되기를 원할 수 있다. 이 개발자는 예를 들어, 일반적인 커뮤니티 또는 개발 커뮤니티로부터의 로컬화 컨텐트를 신뢰하고자 하는 것이 아니라, 벤더 및 OS 제조업자로부터의 것만을 신뢰하고자 할 수 있다. 이는 개발자 또는 사용자로 하여금 플랫폼(200)이 여러 다른 소스에 대해 로컬화 태스크를 개방하는 정도를 설정하게끔 한다. 이는 심지어 문자열(string-by-string) 기반으로 설정될 수 있다.
이런 일 실시예에서, 시스템(200)은 소정의 소스가 제공한 컨텐트에 인증서를 첨부하는 인증서 시스템(220)을 포함한다. 이 경우, 애플리케이션(202)의 개발자는 첨부된 인증서를 갖는 로컬화 컨텐트만이 신뢰되기를 원할 수 있다. 예를 들어, 개발자 및 다른 기여자는 그들의 애플리케이션에 관련하여 그들이 속한 계층(tier)에 관련된 그 컨텐트에 서명하는 권한을 획득할 수 있을 것이다. 이는 애플리케이션의 개발자의 인증서가 해당 개발자를 해당 특정 애플리케이션용의 개발자 계층에 두고, 모든 다른 기여자는 "다른 ISV", 커뮤니티 또는 사용자층 계층의 한 계층 아래에 있다는 것을 의미한다. 이 인증서는 기여자의 계층에 관련되어 신뢰될 수 있다. 예를 들어, 소정의 제조업자는 항상 최고 계층을 가질 수 있을 것이나, 사용자 아래의 해당 계층으로부터 신뢰되는 계층을 결정하고, 계층 내에서 신뢰되는 소스를 결정할 수 있다. 어떤 로컬화 컨텐트가 임의의 소정의 애플리케이션(202) 또는 임의의 사용자에 의해 신뢰될 것인가에 관한 지시(indication)가 애플리케이션 규칙 데이터 저장소(222)에 저장될 수 있다. 인증서는 번역용 신뢰 시스템을 확립하는 것을 돕는다.
사용자 또는 개발자는 또한 계층구조적 신뢰되는 소스를 선택할 수 있다. 예를 들어, 로컬화 컨텐트의 출처(origin)에 근거하여, 사용자는 OS 제조업자만을 신뢰할지, 어느 것도 가능하지 않으면 독립 소프트웨어 벤더 번역을 신뢰할지, 이것들도 가능하지 않을 경우 개발 커뮤니티를 신뢰할지 등을 결정할 수 있다. 예시적인 일 실시예에서, 이런 계층구조는 디폴트로 확립되지만, 사용자가 단순히 이것을 수용하거나 또는 개인 설정으로 오버라이드할 수 있다. 이러한 설정은 각 애플리케이션에 연관되거나 또는 그 애플리케이션을 실행하는 개별적인 기계에 연관된 애플리케이션 규칙으로 구현될 수 있다.
또한, 개인 데이터 저장소(226)는 이것이 사용자의 데이터 저장소에 상주한다는 점에서 로컬 데이터 저장소(224)와 유사하다는 것을 유의해야 한다. 그러나, 로컬 데이터 저장소(224)는 예시적으로 시스템 전반에 걸친 저장소(system wide store)이며, 반면에 개인 저장소(226)는 사용자가 자신의 개인 용도로 입력한 데이 터를 포함하여 개별적인 사용자에 대응하는 신뢰된 로컬화 컨텐트를 나타내는데 사용될 수 있는 저장소이다. 그러므로, 그 개별적인 사용자 각각은 상이한 신뢰된 로컬화 컨텐트를 식별할 수 있다. 그 컨텐트는 개인 저장소(226)의 해당 특정 사용자에게 식별된다. 이는 개별적인 사용자가 개별적인 애플리케이션에 연관되는 것보다 훨씬 더 로컬화 프로세스를 커스터마이징하도록 한다. 예를 들어, 사용자는 애플리케이션에서 필요한 대로 또는 허용되는 한 자신의 애플리케이션을 변경시킬 수 있다. 사용자는 또한 로컬 또는 개인 저장소를 커뮤니티에 다시 공유할 수 있다.
또한, 소정의 번역들은 그것이 수정되지 않도록 잠겨질 수 있다(lock). 이는 잠재적으로 악의적인 번역을 피하기 위해 상당히 중요할 수 있다. 예를 들어, 입력 소스 중 하나가 용어 "하드 드라이브를 포맷하려면 여기를 클릭(Click here to format your hard drive)"를 "계속하려면 여기를 클릭(Click here to continue)"로 번역할 수 있는 악의적인 번역을 제공할 수 있다.
일단 TM 매처(210)가 자원 관리자(206)로부터의 요청에 대해 원하는 로컬화를 획득하면, 이것은 필터(218) 및 저장소(222)로부터의 애플리케이션 규칙을 적용한다. 필터(218)는 예시적으로 임의의 소정의 언어의 임의의 로컬화 컨텐트로 정해지지 않은 용어를 정의한다. 예를 들어, 일부 사용자는 저속한 용어 또는 임의의 다른 불쾌한 컨텐츠를 필터링하고자 할 수 있다. 그러므로, 필터(218)는 자원 관리자(206)에 의해 요청된 로컬화된 컨텐트를 사용하기 이전에 적용된다. (임의의 다른 유형의 검증 뿐만 아니라) 필터를 적용하는 것이 로컬화의 한 단계이고, 편집하기, 다운로딩하기, 사용하기 등의 프로세스의 여러 단계에서 적용될 수 있다는 것을 유의한다.
예를 들어, 2개 컴포넌트가 완벽하게 서로 신뢰하고 통신에 사용된 채널 또한 신뢰되지 않는 한(부정한 활동 등에 대해서와 같이), 일반적으로, 그 컴포넌트들이 데이터를 교환할 때마다 검증이 발생한다. 그러므로, 예를 들어, 자원이 신뢰되는 소스로부터 다운로드되고, 그 자원이 유효한 서명을 포함하는 경우, (서명을 검증하는 것 외에) 다른 검증이 행해질 필요가 없다. 소스는 신뢰되지만 파일이 서명되어 있지 않으면, 정보를 전송하는데 사용된 채널 그것이 또한 신뢰되는 것인지 판정하기 위해 평가된다. 예를 들어, 인터넷으로부터 다운로드되었던 서명되지 않은 파일은, 사용자가 동일한 컴퓨터의 다른 폴더로부터 복사한 서명되지 않은 파일보다 부당하게 변경될 수 있는 가능성이 더 많다. 몇몇 요인에 따라, 신속한 기능 검증을 수행하는가를 결정할 수 있거나, 또는 무례한 용어 체크하기 또는 원래 자원의 용어들이 타겟 자원에 존재하는지를 보장하기 위한 일부 추가적인 컨텐트 검증이 실시될 수 있다(예컨대, 그래서 "메뉴"가 "폴더"로 번역되지 않음).
애플리케이션 설치/구성 컴포넌트(240)는 설치 동안과 설치 구성 이후에 사용된다. 설치 동안에, 애플리케이션(202)은 자신의 자원을 로컬 자원 데이터 저장소(224)에 등록한다. 컴포넌트(240)는 예시적으로, 애플리케이션이 아직 로컬화되어 있지 않으면 플랫폼에 의해 지원되는 타겟 언어로 사용자가 애플리케이션을 로컬화하도록 하는 사용자 인터페이스를 노출시킨다. 사용자 인터페이스를 이용하여 사용자는 타겟 언어를 명시적으로 선택할 수 있다. 주문형(on-demand) 로컬화 컴포넌트(241)는 이런 요청들을 자원 관리자(206)로 전달하고 또한 가능하게는 TM 매처(210)로 전달한다.
레거시 애플리케이션(legacy application)(242)은 개발되었지만 플랫폼(200)이 알지 못하는 애플리케이션을 나타낸다. 호환성 계층(243)은 애플리케이션(242)에 의해 사용된 기존의 자원 인터페이스를 지원하고, 호출을 자원 관리자(206)로 방향전환(redirect)한다.
도 3은 본 발명의 일 실시예에 따라, 보다 상세히 플랫폼(200)의 동작을 도시하는 흐름도이다. 런타임 동안, 사용자는 먼저 애플리케이션(202)을 선택하거나 착수한다. 이는 도 3의 블록(300)에 나타나 있다. 다음, 이 실시예에서, 자원 관리자(206)는 애플리케이션(202)에 연관된 필요한 자원을 캐시 메모리(207) 내로(또는 다른 저장 장치 내로, 본 명세서에서 이들 모든 저장 장치는 "캐시"를 지칭함) 로딩한다. 이는 블록(302)에 나타나 있다.
백그라운드로, 운영 체제(및 특히 로컬화 플랫폼(200))는 캐시(207)의 자원을 원하는 언어로 번역하기 시작한다. 이를 행함에 있어, 플랫폼(200)은 애플리케이션(202)에 연관된 애플리케이션 규칙 데이터 저장소(222), 및 애플리케이션(202) 또는 사용자에(무엇이 적용되든지 간에) 연관된 신뢰 모델(즉, 신뢰되는 로컬화 소스)을 구현한다. 자원 관리자(206)는 캐시(207)에 저장된 자원이 그들의 로컬화된 값을 얻도록 TM 매처(210)를 호출한다. 백그라운드로, 캐시(207) 내로 로딩된 자원의 로컬화는 도 3의 블록(304)에 나타나 있다.
또한 애플리케이션에 대한 로컬화된 자원을 파퓰레이팅하는 것은 런타임 시 까지 기다릴 필요가 없다는 것을 유의해야 한다. 대신, 이것은 설치 시 또는 다른 때에 행해질 수 있다. 또한, 로컬화의 몇몇 일부는 런타임 시에 실행될 수 있으나, 다른 일부는 설치 또는 다른 때에 행해질 수 있다. 예를 들어, 계산 비용이 보다 높고 또한 시간 소모적인 일부 태스크는 설치 동안에, 또는 다른 때에 백그라운드로 수행될 수 있는 반면에, 신속한 태스크는 런타임 시에 수행될 수 있다. 다른 실시예에서, 태스크가 임의의 특정 시각에 수행되도록 (사용자에 의해) 할당될 수 있고, 이런 태스크들의 상태 또한 디스플레이될 수 있다.
자원이 백그라운드로 로컬화될 때, 로컬화된 값은 캐시(207)에 저장될 뿐만 아니라, 로컬 데이터 저장소(224)에도 놓여진다. 그러므로, 애플리케이션(202)이 착수되는 다음번에는, 로컬화 프로세스는 보다 빨라질 것인데, 왜냐하면 로컬화된 이들 자원 값 모두가 이미 로컬 데이터 저장소(224)에 위치되어 있을 것이기 때문이다. 따라서 TM 매처(210)는 TM 데이터 서비스(214)를 검색하거나 기계 번역 시스템(216)을 사용하여 값을 번역할 필요가 없는데, 왜냐하면 로컬화가 시스템에 의해 기억될 것이기 때문이다. 대신, 이것들은 로컬 데이터 저장소(224)로부터 간단히 검색될 수 있다. 번역을 로컬 데이터 저장소(224)에 저장하는 것은 도 3의 블록(306)에 나타나 있다. 또한, 요구에 의해, 번역 전체가 다운로드 관리자(212)를 사용하여 로컬 데이터 저장소(224)로 로드될 수 있다.
물론, 본 시스템은 또한 업데이트를 체크할 수 있다. 예를 들어, 이상적이지 않은(non-ideal) 번역이 초기에 선택될 수 있는데, 이는 더 나은 것이 없기 때문이다. 그러나, 나중에, 더 나은 번역이 소스(204) 중 하나에 의해 메모리 중 하 나에 로드될 수 있다. 이후 자원은 이를 수용하기 위해 주기적으로 업데이트될 수 있다.
유사하게, 코드 업데이트는 이전에 로컬화된 자원을 유효하지 않게 만들 수 있다. 그러므로, 일 실시예에서, 코드 변경은 자원의 일부 또는 자원 전부의 재로컬화를 트리거시킨다.
자원 번역이 행해질 때, 레이아웃 엔진(208)은 애플리케이션에 대한 디스플레이의 레이아웃에 대한 수정을 필요로 하는 소정의 번역을 식별한다. 또한, 애플리케이션의 소스 언어에 사용된 폰트는 타겟 언어의 폰트로 매핑된다. 이는 레이아웃 엔진(208) 또는 다른 컴포넌트에 의해 런타임 시 또는 그 이전 시점에 행해질 수 있다. 레이아웃 및 폰트 매핑은 도 3의 블록(308)에 나타나 있다.
이런 방식으로, 운영 체제의 로컬화 플랫폼(200)은 애플리케이션(202)에 연관되고 캐시(207)에 저장된 자원을 계속 로컬화한다. 그러나, 애플리케이션이 백그라운드로 아직 로컬화되지 않은 자원에 대해 요청을 행하는 경우가 발생할 수 있다. 이런 요청이 도 3의 블록(310)에 나타나 있다. 자원 관리자(206)는 먼저 요청된 자원이 이미 로컬화되어 캐시(207)에 저장되어 있는지 여부를 판정한다. 이는 도 3의 블록(312)에 나타나 있다. 만약 그렇다면, 요청된 자원에 대한 로컬화는 단순히 캐시 메모리(207)로부터 애플리케이션(202)으로 반환된다. 이는 블록(314)에 나타나 있다.
그러나, 자원이 백그라운드로 아직 로컬화되지 않아 캐시(207)에 저장되어 있지 않으면, 자원 관리자(206)는 TM 매처(210)로부터 자원의 로컬화를 요청한다. TM 매처(210)는 이것이 액세스하는 각종 소스로부터의 자원의 로컬화를 요청하고, 요청된 자원의 로컬화를 반환한다. TM 매처(210)를 호출하는 것이 도 3의 블록(316)에 나타나 있다. TM 매처(210)의 동작은 도 4에 관련하여 보다 상세히 기술된다.
백그라운드로 캐시(207)의 자원을 로컬화함으로써, 로컬화 플랫폼(200)은 종래 시스템과는 상당히 달라진다. 종래 시스템에서는 자원을 캐시에 로드한다. 그러나, 이는 로컬화에 있어서 심각한 단점을 초래한다. 로컬화 플랫폼이 자원을 로컬화하기 위해 애플리케이션이 자원을 요청하는 것을 기다리는 경우, 동적 활동으로(on-the-fly) MT를 호출함으로써, 이는 애플리케이션(202)의 동작에 있어 바람직하지 않은 지연을 초래하거나 또는 이런 제약된 환경에 사용될 수 있는 알고리즘 집합에 의해 그 결과가 제한받을 것이다(성능 요건이 정확도를 제한할 수 있음). 현재 기계 번역 기술은 한 문장을 번역하는데 대략 1/2 초가 필요하다. 동적 활동 번역 및 다른 로컬화가 확실히 본 발명에서 고려되지만, 기계 번역 시스템(216)을 사용하여 동적 활동으로 모든 자원을 번역하는 것은 애플리케이션의 동작에 있어 필요 이상의 지연을 초래할 가능성이 있다. 물론, 상당 수의 자원이 이전에 로컬화되어 로컬 데이터 저장소(224) 또는 개인 데이터 저장소(226)에 저장되어 있거나, 또는 자원들이 번역 메모리(234)에 저장되어 단지 자원들 중 비교적 작은 일부만이 TM 시스템(216)에 의해 번역될 필요가 있다면, 백그라운드에서의 캐시(207)의 로컬화는 그다지 중요치 않아 애플리케이션(202)의 동작이 손상을 입는 것을 방지할 수 있다.
어쨌든, MT 매처(210)는 백그라운드로 및/또는 실시간으로 캐시(207)의 값을 계속 로컬화한다. TM 매처(210)는 모든 자원이 로컬화될 때까지 계속된다.
일반적으로, TM 매처(210)는 하나 이상의 데이터 저장소에 대해 작동할 수 있다. 이것은 다른 재활용 엔진(TM 매처 또는 MT 시스템 등)과 선택적으로 통합될 수 있다. 이것은 그 번역 및 관계(온톨로지)와 함께 전문 용어를 선택적으로 활용할 수 있다. 이것은 메타데이터를 사용하여 저장소의 데이터의 어느 부분이 검색 공간(도메인 영역, 작성자, 승인 상태, 또는 기타 메타데이터 등)을 구성하게 되는지를 결정할 수 있다. 이것은 문자열 자체의 제한사항(애플리케이션 규칙/필터)을 보고 이것을 활용하여 더 나은 매칭, 또는 보다 쉽게 검증되는 매칭을 생성할 수 있다. 물론, 이러한 특징은 모두 선택적이며, 보다 많은 것이 첨부될 수 있거나 또는 이러한 특징은 원하는 경우 변경되거나, TM 매처 동작으로부터 삭제될 수 있다.
도 4는 단지 예시를 목적으로 하여, TM 매처(210)의 동작의 일 실시예를 보다 상세히 도시하는 흐름도이다. 자원 관리자(206)는 먼저 TM 매처(210)에 로컬화에 대한 요청을 제공한다. 이는 도 4의 블록(350)에 나타나 있다. 이후 TM 매처(210)는 현재의 문맥에 대한 신뢰 모델 정보를 획득한다. 일 실시예에서, 신뢰 모델 정보는 데이터 그 자체로 저장되나, 개인 데이터 저장소(226) 또는 현재 문맥이 주어지면 신뢰되는 로컬화 소스를 결정할 수 있는 문맥의 임의의 다른 항목을 식별하는 임의의 다른 소스에 저장될 수 있다. 신뢰 모델 정보는 어떤 소스가 신뢰되는가, 또는 로컬화된 항목이 유효하고 고려되기 위해 충족되어야 하는 요건들의 리 스트에 관한 지시를 포함할 수 있다. 이는 또한 업데이트 시나리오를 돕는다. 코드의 업데이트는 자원이 충족시켜야 하는 제약사항 집합을 변경할 수 있다. 이러한 변경들은 이전에 유효하다고 가정된 자원의 재검증을 요구할 것이다. 이는 도 4의 블록(352)에 나타나 있다.
이후, TM 매처(210)는 예시적으로 신뢰되는 로컬화 소스 모두로부터의 자원의 로컬화를 요청하고, 이는 정해진 순서대로 행할 수 있다. 체크된 순서 및 소스의 개수는 환경(예컨대, 로컬화가 런타임, 설치시, 배치 프로세싱(batch processing)에서 발생하는가 등과 같이)에 따라 다양하다. 이는 블록(354)에 나타나 있다. 바꿔 말하면, 일 실시예에서, TM 매처(210)는 신뢰되지 않는 소스로부터 번역을 요청하지조차 않는다. 이런 경우에, 사용자는 입력 소스(204)의 일반적인 커뮤니티로부터 또는 개발 커뮤니티로부터의 번역을 신뢰하길 원하지 않는다고 가정한다. TM 매처(210)는 신뢰되는 소스로부터 비롯하는 로컬화 컨텐트만을 요청할 것이며, 그리하여 일반적인 커뮤니티 및 개발 커뮤니티에 의해 제공되는 로컬화 컨텐트 전부를 배제할 것이다. 물론, TM 매처(210)는 현재 문맥이 주어지면 신뢰되는 소스에 기초하여 로컬화 결과가 요청되는 소스를 수정할 것이다.
TM 매처(210)로부터의 요청에 응하여, 로컬화 컨텐트를 위해 요청되었던 각종 소스가 그들의 연관된 신뢰도 점수를 반환한다. 예를 들어, 번역 결과가, 소스 언어의 입력이 주어지면 번역이 얼마나 제대로 되었는지를 나타내는 연관된 신뢰도 레벨을 가지는 것은, 매우 일반적이다. 본 발명의 목적에서 번역 또는 기타 로컬화에 연관된 신뢰도를 나타내기 위해 어떤 특정 측정값이 사용되는지는 중요하지 않다. 예시적인 실시예에서, 모든 소스로부터의 점수는 동일한 측정값 또는 서로 상관되는 측정값을 사용하여, TM 매처(210)는 점수의 상대적 크기를 결정할 수 있다. 번역(또는 로컬화 컨텐트)에 연관된 신뢰도 점수를 반환하는 것이 도 4의 블록(356)에 나타나 있다.
이후 TM 매처(210)는 가장 높은 점수의 신뢰되는 소스로부터 로컬화된 컨텐트(예를 들어, 번역)를 획득한다. 이는 블록(358)에 나타나 있다. 또한, TM 매처(210)는 로컬화된 컨텐트 획득이 요청된 시간, 로컬화된 컨텐트가 타겟 시장에 얼마나 근접하는가, 검증 기준 또는 다른 기준, 또는 기준의 임의 조합과 같은 기타 또는 추가의 기준에 기초하여 로컬화된 컨텐트를 선택할 수 있다. 또한, TM 매처는 복수의 소스로부터 로컬화 컨텐트를 검색할 수 있고 그것들을 결합할 수 있다.
일단 번역이 수신되면, TM 매처(210)는 필터(218) 및 기타 검증을 적용하여 애플리케이션 및 문맥 그리고 사용자가 원하는 임의의 필터 또는 검증 기준이 주어지면 로컬화 컨텐트(또는 번역)가 적절하다는 것을 보증한다. 필터 및 기타 검증을 적용하는 것이 도 4의 블록(360)에 나타나 있다. TM 매처(210)는 또한 예시적으로 소정의 자원에 대해 검색된 로컬화 컨텐트가 애플리케이션의 동작을 금지하거나 또는 오동작하게 하거나, 그렇지 않으면 애플리케이션과 충돌하지 않도록 애플리케이션 규칙을 적용한다. 또한 필터링 및 검증 프로세스의 일부는, 프로세스의 이 시점에서 모든 필수적인 단계를 수행하는 것을 기다리기보다는 미리 계산될 수 있음을 유의해야 한다.
일단 이것이 행해지면, TM 매처(210)는 그 결과를 자원 관리자(206)에 반환 한다. 이는 블록(362)에 나타나 있다. 이 프로세스는 TM 매처(210)가 자원 관리자(206)에 의해 호출되는 때 언제든지 수행될 것이라는 것을 이해할 것이다. 그러므로, 이 프로세스는 캐시(207)의 자원이 백그라운드로 로컬화될 때 수행될 것이고, 이 프로세스는 애플리케이션(202)이 아직 로컬화되지 않은 자원을 호출할 때 수행될 것이다.
어느 경우든지, TM 매처(210)는 원하는 언어로 번역이 가능하지 않거나, 반환된 신뢰도 점수가 소정의 임계값 이하이지만 번역은 기계 번역 시스템(216)을 사용하여 수행되어야 함을 알 수 있다. 이러한 시점에서, 일 실시예에서, 자원 관리자(206)에게 통지되고, TM 매처(210)에게 대체(fallback) 언어의 번역을 찾도록 요청할 수 있다. 예를 들어, 타겟 언어가 카탈로니아어(Catalan)이면, 애플리케이션(202)은 자원의 번역을 요청할 수 있으나, 이것은 카탈로니아어로 가능하지 않을 수 있다. 그러나, 자원 관리자(206)는 스페인어가 카탈로니아어의 제1 대체 언어가 되도록 구성할 수 있다. 이런 경우에, TM 매처(210)는 카탈로니아어로 어떤 번역도 가능하지 않고 이러한 번역을 획득하기 위해 기계 번역 시스템(216)이 호출되어야 한다는 것을 나타내면서 자원 관리자(206)로 반환한다(대안으로서, MT 시스템(216)은 TM 매처(210)에 의해 제1 호출에 대해 호출될 수 있음). 자원 관리자(206)는 실시간 기계 번역에 연관된 성능 벌점(penalty)을 택하는 것 대신에, 단순히 TM 매처(210)에게 스페인어로 된 요청된 자원의 번역을 반환할 것을 요청한다. 임의의 하나가 이용가능하다면, 이것은 TM 매처(210)에 의해 반환된다.
물론, 상기에서 나타난 바와 같이, 대체 장소(locales)/언어는, 각종 장소가 각종 다른 장소에 대한 대체가 되고, 이것이 최종 대체가 소스 언어가 될 수 있도록, 임의로 원하는 정도까지 계층구조적으로 단계적으로 수행될 수 있다. 그러므로, 최종 대체에 도달하는 경우, 요청된 자원의 번역을 제공하는 것 대신에, 자원 관리자(206)는 단지 플랫폼에 의해 보증되는 최종 대체로 요청된 자원을 애플리케이션(202)으로 반환하여, 애플리케이션은 충돌하지 않거나 또는 플랫폼으로 인해 사용자와의 상호작용 시점을 잃지 않을 것이다.
사용자는 또한 예시적으로 대체 계층구조가 동작하는 방식을 설정할 수 있다. 예를 들어, 사용자는 자원 그룹(다수의 문자열을 가진 다이얼로그)을 같이 디스플레이하는 것이 한 가지 언어로 다이얼로그의 일부를 도시할 수 있고(또는 한 시장에 대해 로컬화됨) 또 다른 언어(예컨대, 대체)로 일부를 도시할 수 있음을 나타낼 수 있다. 다른 사용자는 디스플레이된 자원 그룹이 전부 한 가지 언어로 되어 있음(즉 동일한 시장에 대해 로컬화됨)을 나타낼 수 있다.
사용자는 애플리케이션을 플랫폼(200)에 의해 번역되도록 착수할 필요가 없음을 또한 유의할 것이다. 사용자는 로컬화를 위하여 단순히 애플리케이션 또는 다른 소프트웨어 컴포넌트를 선택할 수 있고, 플랫폼(200)은 백그라운드로 이를 로컬화할 수 있다. 예를 들면, 일 실시예에서, 사용자 권한(user right)은 애플리케이션을 클릭하고, 메뉴로부터 "로컬화"를 선택한다. 그 다음 플랫폼(200)은 백그라운드로 애플리케이션의 로컬화를 시작하여, 로컬 저장소에 로컬화된 컨텐트를 저장한다. 컨텐트 또한 백그라운드로 로컬화될 수 있다. 일 실시예에서, 사용자 권한은 파일 시스템 또는 서버에 저장된 문서를 클릭하고 "로컬화"를 선택한다. 로 컬화 플랫폼은 백그라운드로 문서를 로컬화할 것이다. 인터넷으로부터 다운로드된 문서에도 동일하게 적용된다.
또한, 애플리케이션이 설치될 때(또는 그 이후에) 사용자는 설치를 위하여 복수의 서로 다른 언어를 선택할 수 있다. 그 다음 이들 언어는 로컬 데이터 저장소(224)로 로딩된다. 번역은 제품 콤팩트 디스크, 또는 다른 매체에 저장될 수 있다.
도 5는 개발 환경에서의 플랫폼(200)의 컴포넌트를 도시하는 블록도이다. 상당 수의 항목은 도 2에 도시된 것들과 동일하며 동일한 번호가 부여된다.
도 5는 보조 플랫폼(380) 및 개발 컴포넌트(382)를 도시한다. 개발 컴포넌트(382)는 워싱턴주, 레드먼드 소재의 마이크로소프트사로부터 이용가능한 비주얼 스튜디오와 같은 임의의 바람직한 개발 컴포넌트일 수 있거나 또는 소프트웨어를 작성하기 위한 임의의 다른 바람직한 개발 컴포넌트일 수 있다. 보조 플랫폼(380)은 개발자가 높은 재활용율(recycle rate)을 가지는 제품을 개발할 수 있게 하는 번역 플랫폼(381)과 같은 플랫폼(200)의 하나 이상의 컴포넌트와 상호작용함으로써 컨텐트를 작성하는 것을 도우므로, 서로 다른 언어로 로컬화를 하기 위한 비용이 상당히 줄어든다. 개발 컴포넌트(382) 및 보조 플랫폼(380)은 둘 다 플랫폼(200)이 제공하는 서비스들을 소비한다. 그렇게 행함에 있어서, 다른 컴포넌트들과 함께 개발 컴포넌트(382) 및 보조 플랫폼(380)은, 각종 서로 다른 시장들에 진입하기 위하여 로컬화될 제품의 기능을 상당히 향상시켜 그로 인해 개발 투자에서의 수익을 매우 증가시킬 수 있는 프런트 엔드(front end) 개발/작성 프로세스 내에 특정 실행들을 구축한다.
구축 컴포넌트(384)는 로컬화 플랫폼 및/또는 보조 플랫폼(380) 또는 데이터 저장소(222) 내의 애플리케이션 규칙 및 API를 통하여 로컬화 플랫폼을 액세스할 수 있는 임의의 다른 컨텐트 작성 도구에 의해 제공되는 정보를 이용하여 애플리케이션(202) 및 컨텐트 문서를 구축한다.
도 5의 설명이 일반적으로 애플리케이션을 개발하는 개발자 또는 컨텐트를 작성하는 작성자에 관련하여 진행됨을 유의할 것이다. 그러나, 시스템은 개발자가 개발하고 있거나 작성자가 작성하고 있는 컨텐트 또는 소프트웨어의 유형에 관계없이 다양한 것들에 이용될 수 있다.
본 발명의 일 실시예에 따르면, 개발자 또는 작성자 각각이 소프트웨어를 개발하기 위해 개발 컴포넌트(382)를 이용하거나, 또는 컨텐트를 개발하기 위해 보조 플랫폼(380)을 이용하는 2가지 방식이 있다. 첫 번째 방식은 플랫폼 API 또는 다른 유사한 메커니즘을 통하여 임의의 유사한 컨텐트 또는 소프트웨어가 이미 개발되었는지, 플랫폼(200) 내의 임의의 메모리에 저장되었는지 여부를 판정하는, 개발자 또는 작성자의 작성 개발 환경의 특징을 이용하는 것이다. 두 번째 방식은 개발자가 단순히 소프트웨어 또는 컨텐트(원래의 것 또는 원래의 것이 아닌 것)를 개발하는 것이다. 후자의 경우, 플랫폼(200)은 단순히 개발자에게 컨텐트/소프트웨어의 재활용율(예를 들면, 이전 번역들이 주어지면 플랫폼(200)의 서로 다른 언어들로 번역될 수 있는 컨텐트/소프트웨어의 양)에 대한 피드백을 제공하고, 재활용율을 향상시킬 가능성이 있는 실행들을 제안하며, 애플리케이션이 로컬화 이후에 오작동하는 것을 방지할 실행들을 또한 제안하도록 작용한다.
제1 실시예에 따르면, 컨텐트 작성자는 보조 플랫폼(380)을 통해 입력을 제공하고, 보조 플랫폼(380)은 API 또는 다른 유사한 메커니즘을 호출하여 자원을 작성한다. 이는 도 6의 블록(500)에 나타나 있다. 그 다음 보조 플랫폼(380)이 TM 매처(210)를 호출(invoke)하여 로컬 데이터 저장소(224)를 액세스하고 이미 번역된 모든 유형의 자원들을 반환한다. 이는 도 6의 블록(502)에 나타나 있다. 예를 들면, 개발자 플랫폼은 컨텐트 개발자가 자원을 작성하고자 함을 나타내는 API를 호출할 수 있다. 응답으로, 플랫폼(380)은 플랫폼(200)에 포함되고 다양한 서로 다른 언어들로 이미 번역된 서로 다른 클래스의 자원 모두의 표시를 반환한다. 예를 들면, 플랫폼으로부터 얻어져 개발자 플랫폼에 의해 사용자에게 제시된 결과는 "메뉴들" 및 "에러 메시지" 클래스인 것으로 가정한다.
API에서 노출된 기능(functionality)을 통하여, 개발자는 "에러 메시지" 클래스들을 선택할 수 있고, 보조 플랫폼(380)은 (임의의 메모리에 저장될 수 있는) 플랫폼(200)의 이러한 정보를 요청한 다음 플랫폼(200)에 포함된 서로 다른 에러 메시지 클래스 모두를 반환한다. 그 다음 개발자는 에러 메시지의 클래스들 중 하나를 선택하고, 플랫폼(380)은 그 클래스에 관련된 특정 에러 메시지들을 모두 반환한다. 그 다음 사용자는 단순히, 이미 작성되었고, 로컬화가 이미 매우 효율적이게 된(이미 다양한 서로 다른 언어들로 번역되었거나 로컬화되었기 때문에) 에러 메시지들 중 하나를 선택하기만 하면 된다. 가능할 경우, 개발자가 유형, 클래스 및 특정 자원을 선택하는 것이 도 6의 블록(504)에 나타나 있다.
물론 개발자가 작성하기를 원하는 특정의, 적확한 메시지가 아직 이용가능하지 않을 수 있음 또한 이해될 것이다. 그러한 경우, 사용자는 매우 유사한 메시지를 선택하여 그것을 수정할 수 있다. 많은 경우, 수정된 메시지는 매우 효과적으로 로컬화될 수 있는데, 그 이유는 이 메시지 대부분이 이미 로컬화 플랫폼(200)에 존재하기 때문이다. 어떤 경우라도, 유사하지만 동일하지는 않은 메시지를 선택하는 것은 신뢰도 손실을 일으킬 것이다. 선택된 자원을 수정하는 것이 도 6의 블록(506)에 나타나 있다.
개발 이후에 일어나는 이러한 유형의 재활용은 종래 기술의 로컬라이저에 비하여 작성자에게 높은 정도의 유연성을 제공한다. 예를 들면, 작성자는 소프트웨어 문자열에서 배치가능물(placeable)들의 개수를 변경할 수 있는 반면, 종래의 로컬라이저는 훨씬 더 제한적이다. 또한, (핵심 용어들이 유지된다고 가정하여) 작성자는 소스 문장 전체를 교체할 수 있는 반면 종래의 로컬라이저는 그렇게 할 수 없다. 에러 메시지 : "file {0} does not exist." 문장을 고려해본다. 작성자는 이 메시지를 "file {0} on drive {1} could not be found."로 변경할 수 있지만, 종래의 로컬라이저는 제1 문장의 번역을 제2 문장의 번역으로서 사용할 수 없는데, 그 이유는 코드로의 액세스 없이는 배치가능물들의 개수에 관련하는 코드에서의 기본적인 가정을 변경할 수 없기 때문이다. 재활용은 메시지에서 발견된 텍스트에 관련하여 이루어질 뿐만 아니라, 데이터 저장소(236) 내의 공통 UI 구성요소에 관련하여 이루어질 수도 있다. 종래의 UI 구성요소를 다시 사용하는 것 또한 상품의 재활용율 및 로컬화를 향상시킨다.
개발 동안, 개발자는 또한 온톨로지 저장소(232)를 제공하기를 원할 수 있다. 온톨로지는 개념화의 상세이며 용어들 간의 관계를 기술하여, 컨텐트 및 문자열들의 의미적인 인코딩을 할 수 있게 한다. 온톨로지의 일 실시예는 미국 특허 번호 제6,253,170호 및 제6,098,033호에 설명되어 있다. Gruber가 저술하고, "Knowledge Acquisition, 5(2):199-220 (1993)에 기재된 "A TRANSLATION APPROACH TO PORTABLE ONTOLOGIES"에는 또 다른 온톨로지에 대한 설명이 기재되어 있다.
일반적으로, 단어들은 문맥에 따라서 다르게 번역된다. 서술하자면, 단어들 또는 용어들은 소프트웨어 로컬화에서 애플리케이션 문맥에 따라서 다르게 번역될 수 있다. 로컬화 플랫폼(200)은 용어들 간의 관계를 기술하는 온톨로지 데이터 저장소(282)의 형태로 의미 데이터로의 액세스를 가진다. 온톨로지들은 의미 정보를 단어 또는 용어와 함께 입력하여 수동으로 생성되거나, 다른 단어 또는 용어에 대한 한 단어 또는 용어의 근접도에 의해 의미적 문맥을 결정할 수 있는 알고리즘을 적용함으로써 자동으로 생성될 수 있다. 예시적으로 데이터 저장소(232)는 자원 포맷으로부터 도출된 애플리케이션 문맥 또는 구조들에 의해 파퓰레이트된다. 온톨로지 저장소(232)에서의 의미적 인코딩의 유형은 플랫폼(200)이 번역될 자원들에 대한 의미를 명확히 할 수 있게 하면서, 강력한 검색 기능 또한 제공하는데, 이것이 질의 명확화를 또한 할 수 있기 때문이다. 도 6의 블록(508)에서 번역 플랫폼(381)은 명확화가 필요한지를 판정한다. 필요하다면, 의미 정보 명확화를 획득하기 위해 온톨로지 저장소(232)를 액세스할 수 있거나, 또는 보조 플랫폼(380)은 작성자로부터 의미 정보 명확화를 요청할 수 있으며, 동일한 방식으로 개발 컴포넌트 (382)가 개발자에게 동일한 것을 행할 수 있다.
개발자가 계속해서 제품을 개발하기 때문에, 각각의 작성된 자원들은 플랫폼(200) 내의 번역 플랫폼(381)에 의해 로컬화율이 추정되어야 한다. 작성된 자원들의 로컬화율 추정하는 데에 있어, 번역 플랫폼(381)은 이미 번역(또는 로컬화)되어 플랫폼(200) 상의 어느 곳엔가 상주하는 자원들의 백분율을 식별한다. 번역 플랫폼(381)은 또한 시스템(216)에 의해 자원들이 기기 번역을 해야할 필요가 있음을 설명하고, 플랫폼(200)에 상주하는 번역들 각각과 관련된 신뢰도 점수를 고려한다. 이들 항목은 결합되어 작성되고 있는 제품이 얼마나 쉽게 다른 언어에서 운영되는 시장내로 로컬화될 것인지를 측정하는 재활용율을 제공한다. 전반적인 재활용율은 실행을 제공하고, 이것은 도 6의 블록(512)에 나타나 있다.
재활용율은 매우 다양한 다른 방식으로 이용될 수 있음을 유의할 것이다. 예를 들면, 개발자가 전체 시스템의 한 컴포넌트만을 개발한다면, 컴포넌트는 체크인(check-in)이 허용되기 전에 소정의 재활용율 임계값을 만족시키도록 요구될 수 있다. 마찬가지로, 또한 제품이 다른 시장들에 도입될 가능성이 얼마나 있는지가 주어진다면 재활용율은 그 제품의 값을 잘 나타낼 수 있다. 물론, 이러한 재활용율은 또한 매우 다양한 다른 방식으로도 이용될 수 있다.
시스템은 플랫폼에서 개발되지 않은 코드에 대한 재활용율을 계산할 수 있음을 또한 유의해야 한다. 코드는 단순히 플랫폼(200)에 제공될 수 있고 TM 매처(210)는 전반적으로 그 코드에 대한 재활용율을 계산하고, 원할 경우 이를 반환한다. 이는 새로운 시장들에 제품을 시판할지 아니면 이 제품에 대한 권리를 구입할 지를 결정하는 데에 이용될 수 있다.
이제 개발자가 아직 선택하지 않은 실시예, 즉 기존의 자원에 관련해서 설명하기로 한다. 개발자가 이전에 작성된 자원으로부터 선택하는 것을 원치 않는다고 가정하면, 개발자는 최초의 자원 또는 컨텐트를 작성할 수 있다. 이는 도 6의 블록(514)에 나타나 있다. 이러한 경우, 개발자는 단순히 컨텐트의 일부를 작성하고 보조 플랫폼(380)은 TM 매처(210)를 호출하여 작성된 컨텐트에 대한 재활용율을 판정한다. 이는 도 6의 블록(516)에 나타나 있다. 그 다음 TM 매처(210)는 자신의 로컬화 소스들을 액세스하고 새롭게 작성된 자원 또는 컨텐트에 대한 재활용율을 반환한다. 이는 도 6의 블록(518)에 나타나 있다.
이 시점에서, 플랫폼(200)은 또한 작성자가 개발중인 제품의 재활용율을 향상시키는 것을 도울 수 있는 실행들에 관하여 작성자에게 통지하거나, 일단 로컬화되면 애플리케이션이 오작동을 일으킬 수 있는 특정 실행들을 작성자에게 경고하는 데에 이용될 수 있다. 이들 힌트들을 반환하는 것이 도 6의 블록(520)에 나타나 있다. 일 실시예에서, 이들 힌트들은 제품의 소스가 다시 사용되고 있을 경우에도 제공된다. 이 소스가 다시 사용된다는 사실은, 물론, 일부 검사들이 이미 수행되었음을 의미할 수 있다.
재활용율 또는 애플리케이션 기능에 영향을 미칠 수 있는 몇몇의 실행 예로는 예를 들면, 긴 문자열을 작성하는 것이 있다. 긴 문자열은 이해하기 어려울 뿐만 아니라, 번역하기도 또한 어렵다. 또한, 버퍼가 과도하게 실행되어 애플리케이션을 충돌시킬 위험이 소프트웨어에 존재한다. 재활용율 또는 애플리케이션 기능 에 영향을 미칠 수 있는 다른 실행들은 특수 문자 사용 또는 부적절하거나 형식적이지 않은 문법의 사용을 포함한다. 적절한 문법 구성체를 사용하는 것은 텍스트를 번역하는 능력을 매우 향상시킨다. 그러므로 TM 매처(210)는 코드의 재활용율 및 실행 팁에 대한 실시간 피드백을 제공한다.
또한, 플랫폼(200)은 분석중에 있는 컨텐트 내의 문제 영역들의 부정적인 영향을 줄이기 위한 특정 액션들을 취할 수 있다. 이들 액션은 애플리케이션이 로컬화가 행해진 이후에 충돌할 가능성을 줄일 것이다. 플랫폼(200)은 사용자에게 이들 교정 액션이 취해질 것임을 경고할 수 있다.
본 발명에 관련하여 많은 다른 항목들을 유의해야 한다. 첫째, 본 발명은 예시적으로 핫 키 자동화를 제공한다. 예시적으로 번역 플랫폼(381)은 2개의 기능이 소정의 UI 상의 동일한 핫 키에 할당되는 것을 피하기 위하여 임의의 소정의 UI에 디스플레이되는 핫 키들을 추적한다. 번역 플랫폼(381)은 자동으로 핫 키를 선택하도록 호출될 수 있거나, 또는 이 플랫폼은 소정의 UI에서 어떠한 핫 키 복제도 행해지지 않음을 보장하기 위한 검사를 하도록 단순히 호출될 수 있다. 핫 키를 선택하거나 사용자에게 핫 키를 제안할 수 있기 위하여, 플랫폼은 어느 항목들이 사용자에게 동시에 이용가능하여 반복을 피할 수 있는 것에 관련된 정보를 필요로 한다. 그 정보는 정보를 사용자의 컴퓨터에 렌더링할 필요가 있는 것에 밀접하게 관련된다.
본 발명은 또한 런타임 환경의 검증 또는 시뮬레이션을 제공할 수 있다. 일단 개발자가 컴포넌트를 작성했다면, 개발자는 개발 플랫폼(382)에서 API를 호출할 수 있고 플랫폼(200)은 로컬화가 필요한 런타임 환경을 시뮬레이션할 것이다. 런타임 시뮬레이션은 디스플레이 스크린상의 디스플레이가 로컬화 된 이후에 개발자가 이 디스플레이를 물리적으로 볼 수 있게 한다. 이는 개발자가 버그를 찾고, 디스플레이의 미적인 외형을 평가하고, 원할 경우 변경을 할 수 있도록 한다.
그러므로 본 발명은 이미 개발된 컨텐트를 재사용하는 개발자의 능력을 향상시킨다. 이는 제품의 로컬화 및 재활용율을 상당히 향상시킨다.
또한, 본 발명은 운영 체제, 애플리케이션, 커뮤니티 및 제3자로부터의 로컬화된 컨텐트 및 기기 번역으로부터의 로컬화된 컨텐트를 지능적으로 결합시키는 시스템을 제공한다. 자원 관리자는 각종 소스 또는 데이터 저장소(또한 로컬화 컨텐트 컴포넌트라고도 지칭됨)로부터 필요한 언어 또는 다른 문화적 기준 또는 시장 기준에 따라 요청된 자원을 반환함으로써 애플리케이션의 자원을 로딩한다.
또한, 로컬화 플랫폼은 애플리케이션, 브라우저, 검색 엔진, 자원 로더, 작성 도구, 등과 같은 각종 요청하는 엔티티에 로컬화된 데이터를 제공하는 데에 이용될 수 있다.
또한, 해당 커뮤니티와 일반적인 커뮤니티가 로컬화 대안을 제안할 수 있게 함으로써, 본 발명은 커뮤니티 표준 로컬화가 정의될 수 있게 하며, 때때로, 몇몇의 아주 작은 시장들로의 로컬화를 가능케 한다. 예를 들면, 본 발명은 사용자가 스와힐리어 용으로 영어 애플리케이션을 로컬화할 수 있게 한다. 사용자는 애플리케이션 내의 각종 자원의 제안된 번역으로서 플랫폼(200)에 이러한 로컬화를 다시 제공할 수 있다. 다른 남아프리카어 사용자는 이러한 로컬화된 컨텐트를 신뢰하고 스와힐리어로 이 컨텐트를 다운로드하거나, 또는 그들이 직접 로컬화하거나 로컬화를 수정하고 자신들만의 로컬화를 플랫폼(200)에 다시 제공하기로 결정할 수 있다. 이러한 방식으로, 애플리케이션은 로컬화 및 수정이 가능하며, 소규모 시장으로 인해 로컬화되지 않고 수정되지 않은 경우에도 시장에서 이용할 수 있게 된다.
일 실시예에서, 입력 소스(204)가 데이터를 제공한다면, 데이터 수집 컴포넌트(205)는 또한 출처, 사용, (자원의 버전과 같은) 문맥 정보, 신뢰도 레벨, 속성, 기계 번역 힌트 등과 같은 메타데이터를 기록한다. 또한 다른 데이터가 수집되고 정렬될 수도 있다. 또한, 일 실시예에서, 데이터를 제공했던 입력 소스(204)만이 그 데이터를 변경할 수 있다.
본 발명은 커뮤니티로부터 번역들을 다운로드하는 것뿐만 아니라 이들을 업로드하는 것도 제공한다. 또한, 소스 문자열도 마찬가지로 업로드/다운로드될 수 있다.
제3자 회사 및 커뮤니티가 새로운 소스 및 번역 메모리를 플랫폼(200)에 추가할 수 있음 또한 유의할 것이다. 한 예시적인 실시예에서, 플랫폼(200)은 새로운 소스 용어 및 그 메타데이터의 추가를 가능하게 하는 웹 페이지 또는 웹 서비스를 제공한다. 예시적으로 사용자들은 플랫폼(200)이 새롭게 추가된 항목 각각의 소스를 결정할 수 있도록 인증될 것이다.
또한, 플랫폼(200)은 예시적으로 사용자가 한번에 여러 문자열을 업로드할 수 있게 하는 (XML 스키마와 같은) 공개된 스키마에 따라 동작할 것이다. 또한, 동작마다 인증을 요구할 수 있기 때문에 각 문자열의 소스가 알려진다. 이러한 소스 문자열에는 예시적으로 하나 이상의 번역이 부가된다. 플랫폼(200)은 마찬가지로 용어 데이터베이스 내의 용어에 관련하여 동작한다.
또한, 일 실시예에 따르면, 커뮤니티는 플랫폼(200) 내의 소스 문자열에 번역들을 제공할 수 있다. 번역들을 편집할 때, 소스 내에 존재하는 메타데이터는 예시적으로 "번역기"에 이용가능하고 메타데이터는 이 번역을 받아들이기 이전에 시행된다. 이는 간단한 웹 인터페이스를 통해 행해질 수 있다. 이들 번역들은, 사용자가 커뮤니티와 자신의 번역들을 공유하기로 결정한 경우, 다른 사람에 의해 이용될 수 있다.
본 발명은 또한 예시적으로 커뮤니티가 이미 플랫폼(200)에 존재하는 번역을 검토할 수 있게 한다. 이는 번역들의 소스가 그 번역이 다른 사용자들에 의해 선택된 횟수를 판정할 수 있게 한다. 이는 커뮤니티 내의 입력 소스들이 작업의 품질에 기초하여 이들 자신들에 대한 이름을 작성할 수 있도록 할 것이며, 이는 입력 소스들이 커뮤니티에서 보다 값어치 있게 되기 위하여 더욱 좋은 작업을 수행하게끔 한다.
본 발명의 또 다른 실시예에 따르면, 개발자가 번역을 위하여 애플리케이션을 업로드할 때, 최종 사용자로 하여금 제품의 자신들만의 로컬화된 버전을 다운로드할 수 있게 하는 기회를 개발자에게 제공한다. 이러한 옵션이 인에이블되면, 사용자는 플랫폼(200)으로 로그인할 수 있고 제품의 개인용 버전을 생성하기 위하여 어떤 언어, 엔진, 및 번역을 사용할 것인지를 선택할 수 있다.
예를 들면, 사용자는 커뮤니티(또는 특정 사용자)가 승인한 번역 메모리들을 이용하여 번역 엔진의 정확한 매치만을 지정하면서 제품의 "xyz" 버전을 요청할 수 있다. 이러한 프로세스는 주기적으로 반복되어 자원 번역의 보다 높은 백분율을 획득할 수 있다. 플랫폼(200)은 또한 새로운 번역이 이용가능할 때 메일 또는 다른 경보 서비스를 통하여 사용자에게 통지를 제공할 수 있다.
다른 실시예에 따르면, 제3자는 새로운 소스 검증 (또는 번역) 엔진을 플랫폼(200)에 추가할 수 있다. 상술한 바와 같이, 개발자는 애플리케이션이 상당히 잘 로컬화될 수 있는지 여부를 판정하기 위하여 애플리케이션을 플랫폼(200)에 제출할 수 있다. 이를 지원하기 위하여 제3자는 새로운 엔진을 기입할 수 있다. 제3자가 소스 검사들을 수행하기 위한 기준을 만족시키는 엔진을 개발할 때 (예를 들면, 소정의 인터페이스를 구현할 때), 제3자는 이를 플랫폼(200)에 업로드하고 다시 사용자가 이 엔진을 다운로드할 경우 요금을 청구할 수 있다. 본 발명에 관련하여 기술된 프로세스들의 다른 부분들에서와 같이, 엔진의 소스가 알려지고 사용자가 이 소스를 신뢰하기로 결정하였음을 보장하기 위해 서명 및 인증이 예시적으로 사용된다.
마찬가지로 번역 엔진이 추가될 수 있지만, 번역 엔진이 이미 존재하는 임의의 번역 데이터를 손상시키지 것을 보장하기 위하여 취해지는 단계들을 갖는 플랫폼(200)을 구현하는 서버상에서 실행될 수 있다. 또한, 본 발명은 작성을 돕기 위해 전역화 및 언어적인 검사를 수행한다. 본 발명은 또한 커뮤니티가 작성자를 돕게 할 수 있다. 예를 들면, 커뮤니티가 특정 도메인 내의 대화 상자 상의 소스 문자열에 대하여 요청될 수 있는데, 이 특정 도메인에서 소스 문자열은 쉽게 로컬화 될 수 있다. 이는 처음부터 작성자가 상당히 잘 로컬화될 수 있는 컨텐트를 작성하는 것을 돕는다.
기술된 실시예에서 특정 기능들이 특정 컴포넌트들에 할당되지만, 이는 경우에 따라 필요하지 않음 또한 유의해야 한다. 이 기능들은 다른 컴포넌트들에 의해 실행될 수 있어서 본 발명의 모든 범위 안에서 몇몇의 컴포넌트들이 삭제되고, 수정되거나 추가될 수 있다.
그러므로 본 발명은 각종 제품과 각종 입력 소스의 이전의 로컬화로부터 로컬화를 위한 데이터를 통합한다는 것을 알 수 있다. 다른 제품에 의해 액세스될 수 없는 자신만의 번역 메모리를 구비하는 애플리케이션 또는 제품 각각 대신에, 플랫폼(200)은 이러한 정보를, 개발자 또는 사용자가 원할 경우, 서로 다른 제품의 후속 로컬화에 이용가능하게 한다. 이는 또한 최종 사용자가 자신의 컴퓨터 경험을 커스터마이징(로컬화)하기 위하여 더 많은 정도의 옵션들로의 액세스할 수 있도록 로컬화 프로세스를 변경시킨다. 이는 또한 프로세스에 커뮤니티가 참여를 할 수 있게 한다. 결과적으로, 로컬화 태스크 자체는 제품에 독립적으로 되고, 오직 애플리케이션 문맥을 통하여 만이 제품에 링크된다. 다른 애플리케이션들은 신뢰 모델 및 애플리케이션 문맥이 이를 허용한다면 언제든지 로컬화된 문자열을 액세스할 수 있다.
본 발명은 특정 실시예를 참조하여 설명되었지만, 본 기술 분야에서 숙련된 기술을 가진 자라면 본 발명의 사상 및 범위로부터 벗어나지 않고, 형식 및 상세사항이 변경될 수 있다는 것을 인식할 것이다.
본 발명은 통합된 로컬화 플랫폼 또는 완전히 통합되지는 않았지만 운영 체제와 밀접하게 동작하는 컴포넌트를 갖는 로컬화 플랫폼을 갖춘 운영 체제를 제공한다. 본 로컬화 플랫폼은 운영 체제에 의해 요청되는 서비스로서 또한 제공될 수 있다. 본 발명은 로컬화 플랫폼을 활용하여 컨텐트 및 소프트웨어를 로컬화한다. 본 발명은 또한 제품 또는 서비스의 개발 동안 사용될 수 있고, 제품 또는 서비스를 더 빠르고 효율적으로 로컬화할 수 있도록 하는 실행(practice)을 구현한다. 본 설명은 로컬화 프로세스 동안의 번역에 관해 주로 진행되지만, 본 발명은 이에 제한되지 않고, 로컬화는 또한 전혀 다른 시장에 대한 각종 기타 편의를 포함한다.

Claims (20)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 로컬화 제공 장치로서,
    하나 이상의 다른 시장에 대해 로컬화되는 데이터를 제공하는 복수의 로컬화 컴포넌트;
    미리 정해진 시장에 대해 로컬화될 입력 데이터를 수신하고, 상기 복수의 로컬화 컴포넌트에 액세스하고, 상기 복수의 로컬화 컴포넌트에의 액세스에 기초하여 상기 입력 데이터에 대응하는 로컬화된 데이터를 반환하는 매처(matcher) 컴포넌트;
    상기 로컬화 제공 장치 외부에 있는 적어도 하나의 입력 소스로부터 하나 이상의 시장에 대해 로컬화되는 데이터를 포함하는 로컬화된 컨텐트를 웹 페이지 인터페이스를 통해 수신하고, 상기 복수의 로컬화 컴포넌트에 추가하여 상기 매처 컴포넌트에 의해 액세스가능한 추가의 로컬화 컴포넌트로서 상기 수신된 데이터를 저장하는 데이터 수집 컴포넌트 - 상기 로컬화된 컨텐트는 자원들을 제공하는 적어도 하나의 입력 소스에 의해 로컬화된 자원들, 및 각각의 입력 소스 및 그것이 제공했던 관련된 로컬화된 컨텐트를 식별하는 문맥 정보 및 메타데이터를 포함하고, 상기 데이터 수집 컴포넌트는 입력 소스로 하여금, 수정되는 로컬화 컨텐트와 관련된 메타데이터에 기초하여 해당 입력 소스에 의해 상기 데이터 수집 컴포넌트를 통해 제공되는 로컬화 컨텐트만을 수정하게 함 -; 및
    로컬화된 데이터의 반환을 용이하게 하도록 상기 매처 컴포넌트에 의해 활성화되는 컴퓨터 프로세서
    를 포함하는 로컬화 제공 장치.
  13. 제12항에 있어서,
    상기 복수의 로컬화 컴포넌트 및 상기 매처 컴포넌트는, 운영 체제에 통합되는 로컬화 제공 장치.
  14. 제12항에 있어서,
    상기 복수의 로컬화 컴포넌트 및 상기 매처 컴포넌트는, 애플리케이션 및 운영 체제 중 하나를 포함하는 외부 컴포넌트로부터의 호출에 응답하여 상기 로컬화된 데이터를 서비스로서 제공하는 로컬화 제공 장치.
  15. 제12항에 있어서,
    상기 로컬화 컴포넌트는,
    상기 매처 컴포넌트에 의해 액세스가능한 데이터 서비스 컴포넌트; 및
    상기 데이터 서비스 컴포넌트에 의해 액세스가능하고, 하나 이상의 다른 시장에 대해 로컬화된 데이터를 저장하는 복수의 로컬화 데이터 저장소
    를 포함하고,
    상기 데이터 서비스 컴포넌트는, 복수의 로컬화 데이터 저장소를 검색하여, 상기 매처 컴포넌트로부터의 질의에 기초하여 로컬화된 데이터를 반환하는 로컬화 제공 장치.
  16. 제15항에 있어서,
    상기 로컬화 컴포넌트는, 상기 매처 컴포넌트에 의해 액세스가능하고 상기 데이터 서비스 컴포넌트에 액세스하여 로컬화될 데이터를 번역하는 적어도 하나의 기계 번역 시스템을 포함하는 로컬화 제공 장치.
  17. 제12항에 있어서,
    상기 로컬화될 데이터는 애플리케이션을 포함하는 로컬화 제공 장치.
  18. 제12항에 있어서,
    상기 적어도 하나의 입력 소스는 복수의 서로 다른 입력 소스를 포함하는 로컬화 제공 장치.
  19. 삭제
  20. 삭제
KR1020060021888A 2005-03-08 2006-03-08 문화 특징적인 데이터를 생성, 저장, 관리 및 소비하기 위한 방법 및 시스템 KR101311074B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US65961605P 2005-03-08 2005-03-08
US60/659,616 2005-03-08
US11/118,548 2005-04-29
US11/118,548 US7774195B2 (en) 2005-03-08 2005-04-29 Method and system for creating, storing, managing and consuming culture specific data

Publications (2)

Publication Number Publication Date
KR20060096945A KR20060096945A (ko) 2006-09-13
KR101311074B1 true KR101311074B1 (ko) 2013-09-25

Family

ID=36293461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060021888A KR101311074B1 (ko) 2005-03-08 2006-03-08 문화 특징적인 데이터를 생성, 저장, 관리 및 소비하기 위한 방법 및 시스템

Country Status (11)

Country Link
US (1) US7774195B2 (ko)
EP (1) EP1701253A1 (ko)
JP (1) JP5058499B2 (ko)
KR (1) KR101311074B1 (ko)
AU (1) AU2006200694B2 (ko)
BR (1) BRPI0600777A (ko)
CA (1) CA2538629A1 (ko)
MX (1) MXPA06002683A (ko)
MY (1) MY145379A (ko)
RU (1) RU2412474C2 (ko)
TW (1) TWI415003B (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206797A1 (en) * 2005-03-08 2006-09-14 Microsoft Corporation Authorizing implementing application localization rules
US8219907B2 (en) * 2005-03-08 2012-07-10 Microsoft Corporation Resource authoring with re-usability score and suggested re-usable data
US7698126B2 (en) 2005-03-08 2010-04-13 Microsoft Corporation Localization matching component
US8145472B2 (en) * 2005-12-12 2012-03-27 John Shore Language translation using a hybrid network of human and machine translators
US8375362B1 (en) * 2006-11-28 2013-02-12 Emc Corporation Wizard for web service search adapter
US8069433B2 (en) * 2007-04-18 2011-11-29 Microsoft Corporation Multi-format centralized distribution of localized resources for multiple products
US20090094609A1 (en) * 2007-10-09 2009-04-09 Microsoft Corporation Dynamically providing a localized user interface language resource
US8086692B2 (en) * 2008-08-27 2011-12-27 Satyam Computer Services Limited System and method for efficient delivery in a multi-source, multi destination network
US9710261B2 (en) * 2010-05-06 2017-07-18 Microsoft Technology Licensing, Llc Techniques to enhance software production
US20110289424A1 (en) * 2010-05-21 2011-11-24 Microsoft Corporation Secure application of custom resources in multi-tier systems
CN102480512B (zh) 2010-11-29 2015-08-12 国际商业机器公司 用于扩展服务器端处理能力的方法和装置
US9015030B2 (en) 2011-04-15 2015-04-21 International Business Machines Corporation Translating prompt and user input
US9195653B2 (en) * 2011-10-24 2015-11-24 Google Inc. Identification of in-context resources that are not fully localized
US8452814B1 (en) 2011-10-24 2013-05-28 Google Inc. Gathering context in action to support in-context localization
US20130174136A1 (en) * 2012-01-03 2013-07-04 International Business Machiness Corporation Detecting, Compiling, and Updating a New Locale Object in Real Time
US8769404B2 (en) 2012-01-03 2014-07-01 International Business Machines Corporation Rule-based locale definition generation for a new or customized locale support
US8893116B2 (en) * 2012-01-15 2014-11-18 Microsoft Corporation Installation engine and package format for parallelizable, reliable installations
US9128579B2 (en) * 2012-06-14 2015-09-08 Intuit Inc. Software localization through user contribution
US20140195220A1 (en) * 2013-01-07 2014-07-10 Unisys Corporation Method and system for internationalization of a computing device
US9430227B2 (en) 2013-06-13 2016-08-30 Intuit Inc. Automatic customization of a software application
US9910666B1 (en) 2016-08-22 2018-03-06 International Business Machines Corporation Implementing locale management on PaaS: live locale object update
US10102376B2 (en) 2016-08-22 2018-10-16 International Business Machines Corporation Implementing locale management on PaaS: locale replacement risk analysis
US11673059B2 (en) 2021-05-18 2023-06-13 Roblox Corporation Automatic presentation of suitable content
US11861332B2 (en) * 2021-08-24 2024-01-02 Microstrategy Incorporated String localization for universal use

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020052910A1 (en) * 2000-10-30 2002-05-02 Microsoft Corporation System and method for dynamically verifying the compatibility of a user interface resource

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08501166A (ja) * 1992-09-04 1996-02-06 キャタピラー インコーポレイテッド 総合オーサリング及び翻訳システム
DE69430421T2 (de) * 1994-01-14 2003-03-06 Sun Microsystems Inc Verfahren und Gerät zur Automatisierung der Umgebungsanpassung von Rechnerprogrammen
US5678039A (en) * 1994-09-30 1997-10-14 Borland International, Inc. System and methods for translating software into localized versions
US5694559A (en) * 1995-03-07 1997-12-02 Microsoft Corporation On-line help method and system utilizing free text query
US5918222A (en) 1995-03-17 1999-06-29 Kabushiki Kaisha Toshiba Information disclosing apparatus and multi-modal information input/output system
US5671378A (en) * 1995-03-31 1997-09-23 International Business Machines Corporation Method and system for sizing of graphical user interface objects for localization
US5903859A (en) * 1996-03-27 1999-05-11 Dell Usa, L.P. Dynamic multi-lingual software module system
WO1997046929A2 (en) * 1996-06-04 1997-12-11 Werbos Paul J 3-brain architecture for an intelligent decision and control system
US7165020B2 (en) 1998-05-29 2007-01-16 Citicorp Development Center, Inc. Multi-language phrase editor and method thereof
US6035121A (en) * 1997-07-07 2000-03-07 Netscape Communication Corporation Method and system for localizing a computer program
US6098033A (en) 1997-07-31 2000-08-01 Microsoft Corporation Determining similarity between words
US6078878A (en) 1997-07-31 2000-06-20 Microsoft Corporation Bootstrapping sense characterizations of occurrences of polysemous words
US6151022A (en) 1997-12-01 2000-11-21 Microsoft Corporation Method and apparatus for statically testing visual resources
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
WO2000025708A1 (en) 1998-11-03 2000-05-11 Throwright Llc Elbow brace for teaching baseball throwing
US6275978B1 (en) 1998-11-04 2001-08-14 Agilent Technologies, Inc. System and method for term localization differentiation using a resource bundle generator
US6519571B1 (en) * 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
US6530039B1 (en) 1999-06-14 2003-03-04 Microsoft Corporation Porting engine for testing of multi-lingual software
US6321190B1 (en) * 1999-06-28 2001-11-20 Avaya Technologies Corp. Infrastructure for developing application-independent language modules for language-independent 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
US6275790B1 (en) * 1999-07-28 2001-08-14 International Business Machines Corporation Introspective editor system, program, and method for software translation
US6490547B1 (en) 1999-12-07 2002-12-03 International Business Machines Corporation Just in time localization
US6865716B1 (en) 2000-05-05 2005-03-08 Aspect Communication Corporation Method and apparatus for dynamic localization of documents
US20020111787A1 (en) * 2000-10-13 2002-08-15 Iko Knyphausen Client-driven workload environment
US6993568B1 (en) 2000-11-01 2006-01-31 Microsoft Corporation System and method for providing language localization for server-based applications with scripts
US6983238B2 (en) * 2001-02-07 2006-01-03 American International Group, Inc. Methods and apparatus for globalizing software
US7340389B2 (en) 2001-02-16 2008-03-04 Microsoft Corporation Multilanguage UI with localized resources
US20020143523A1 (en) 2001-03-30 2002-10-03 Lakshmi Balaji System and method for providing a file in multiple languages
US7099885B2 (en) 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US6938259B2 (en) 2001-10-02 2005-08-30 Hewlett-Packard Development Company, L.P. API to enforce internationalization
EP1315084A1 (en) 2001-11-27 2003-05-28 Sun Microsystems, Inc. Method and apparatus for localizing software
US6944846B2 (en) * 2001-12-14 2005-09-13 Hewlett-Packard Development Company, L.P. Algorithm for localization of a JAVA application using reflection API and a custom class loader
EP1483687A4 (en) * 2002-03-11 2008-08-06 Univ Southern California TRANSLATION OF CALLED ENTITIES
US7110937B1 (en) * 2002-06-20 2006-09-19 Siebel Systems, Inc. Translation leveraging
US7596777B2 (en) * 2002-06-25 2009-09-29 Siebel Systems, Inc. Method and apparatus to control translatable properties of metadata
US7194413B2 (en) 2002-07-31 2007-03-20 Deere & Company Method of providing localized information from a single global transformation source
GB2392600A (en) 2002-09-04 2004-03-10 Cnh Belgium Nv Cutting platform for a combine harvester
EP1576586A4 (en) * 2002-11-22 2006-02-15 Transclick Inc LANGUAGE TRANSLATION SYSTEM AND METHOD
US7509251B2 (en) * 2002-12-23 2009-03-24 International Business Machines Corporation Mock translating software applications at runtime
TW200421130A (en) * 2003-04-10 2004-10-16 Ching-Shyang Hwang System and method for customized Web-ADC service
JP2004362249A (ja) * 2003-06-04 2004-12-24 Advanced Telecommunication Research Institute International 翻訳知識最適化装置、翻訳知識最適化のためのコンピュータプログラム、コンピュータ及び記憶媒体
US7533372B2 (en) 2003-08-05 2009-05-12 Microsoft Corporation Cross language migration
US7437704B2 (en) * 2003-08-28 2008-10-14 Ines Antje Dahne-Steuber Real-time generation of software translation
JP3919771B2 (ja) * 2003-09-09 2007-05-30 株式会社国際電気通信基礎技術研究所 機械翻訳システム、その制御装置、及びコンピュータプログラム
US7283950B2 (en) 2003-10-06 2007-10-16 Microsoft Corporation System and method for translating from a source language to at least one target language utilizing a community of contributors
US7318020B1 (en) * 2003-10-08 2008-01-08 Microsoft Corporation Methods and systems for external localization
US7814101B2 (en) * 2003-10-30 2010-10-12 Microsoft Corporation Term database extension for label system
US20060173671A1 (en) 2005-02-02 2006-08-03 Kabushiki Kaisha Toshiba Localizing tool for client software

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020052910A1 (en) * 2000-10-30 2002-05-02 Microsoft Corporation System and method for dynamically verifying the compatibility of a user interface resource

Also Published As

Publication number Publication date
RU2006107184A (ru) 2007-09-27
JP2006260558A (ja) 2006-09-28
EP1701253A1 (en) 2006-09-13
US7774195B2 (en) 2010-08-10
MXPA06002683A (es) 2006-09-26
TWI415003B (zh) 2013-11-11
KR20060096945A (ko) 2006-09-13
CA2538629A1 (en) 2006-09-08
AU2006200694B2 (en) 2010-11-11
MY145379A (en) 2012-01-31
AU2006200694A1 (en) 2006-09-28
RU2412474C2 (ru) 2011-02-20
BRPI0600777A (pt) 2006-11-14
US20060206871A1 (en) 2006-09-14
TW200703114A (en) 2007-01-16
JP5058499B2 (ja) 2012-10-24

Similar Documents

Publication Publication Date Title
KR101203327B1 (ko) 재사용 가능성 점수 및 제안된 재사용 가능한 데이터에 의한 자원 작성
KR101311074B1 (ko) 문화 특징적인 데이터를 생성, 저장, 관리 및 소비하기 위한 방법 및 시스템
US7698126B2 (en) Localization matching component
US7653528B2 (en) Resource authoring incorporating ontology
EP1701255B1 (en) Authoring implementing application localization rules
Sobell A Practical Guide to Fedora and Red Hat Enterprise Linux
Galanis et al. Contributing to the European Language Grid as a Provider
Vinto et al. GitOps Cookbook
US9225599B2 (en) Method and system to adapt functionality to capabilities of client and data storage
Inside et al. Stack Frames

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
A107 Divisional application of patent
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180816

Year of fee payment: 6