현지화 및 국제화, 차이점은 무엇입니까?
UI에서 여러 언어를 지원하도록 데스크톱 응용 프로그램을 준비하는 방법에 대한 질문을하려고했습니다.
주제에 대한 기존 질문을 검색 할 때 "국제"라는 단어를 생각하고 있었기 때문에 국제화 태그를 선택하고 일치하는 질문을 읽었습니다.
결국 나는 아마도 지역화 태그가 붙은 질문을보고 있어야한다는 것을 깨달았습니다. 그러나이 두 용어를 섞어 놓는 것은 혼자가 아닙니다.
그렇다면 현지화와 국제화의 주요 차이점은 무엇입니까?
또한, 그들 사이의 명확한 구별이 정말로 중요합니까?
- 국제화 (i18n)
- 하나의 언어 / 로케일 / 문화에 연결되지 않도록 소프트웨어를 변경하는 프로세스.
- 현지화 (l10n)
- 특정 언어 / 로캘이 지원되도록 소프트웨어에 적절한 리소스를 추가하는 프로세스 이 Wikipedia 항목 보다 범위가 크지 만 시작하기 좋습니다.
이들을 구별하는 가치는 (이론적으로) 일단 프로그램이 i18n 프로세스를 거친 후에는 필요한만큼 많은 1010n 프로세스를 반복 할 수 있다는 것입니다. 또한 언어를 정확하게 사용하는 것이 좋습니다.
애플 에 따르면 :
국제화 는 현지화를 용이하게하기 위해 응용 프로그램을 디자인하고 구축하는 프로세스입니다. 현지화 는 두 개 이상의 문화적으로 구별되는 시장에 대한 국제화 된 응용 프로그램의 문화적 및 언어 적 적응입니다.
국제화 는 현지화를 위해 응용 프로그램을 준비 합니다. 예를 들어 데이터베이스에 저장된 문자를 유니 코드 () utf8mb4
대신 인코딩하여 latin1
문자열을 리소스 파일로 이동 하여 날짜, 시간 및 통화 형식 등을 사용할 수 있습니다.
예를 들어, 중국어 버전의 앱을 판매하려는 경우 번역자를 고용하여 zh-CN 리소스 파일을 빌드하고 새로운 날짜 / 시간 / 통화 형식을 사용하여 현지화해야합니다.
L10n은 때때로 i18n이 실패한 곳을 표시 할 수 있습니다. 예를 들어, 사전에 명사로 사용되는 단어에 대한 단일 항목이 있고 다른 언어에서 동일한 단어로 번역되지 않는 영어의 동사 또는 UI 요소가있는 경우 / design은 문화에 적합하지 않습니다 (L / R 방향).
따라서 l10n은 "일반적으로"i18n 이후에 발생하지만 i18n으로 다시 피드백하고 추가 재 설계가 필요할 수 있으므로 몇 가지 현지화가 완료 될 때까지 앱을 완전히 국제화 할 수 없습니다.
Wikipedia 에 따르면
국제화 는 다양한 언어 및 지역에 맞게 소프트웨어 응용 프로그램을 설계하는 과정입니다 without engineering changes
.
현지화 는 adapting internationalized software
로캘 별 구성 요소를 추가하고 텍스트를 번역하여 특정 지역 또는 언어에 대한 프로세스입니다 .
또한 지역화 (다른 로케일에 대해 여러 번 수행 될 수 있음)는 infrastructure or flexibility provided by internationalization
(한 번만 수행되거나 진행중인 개발의 필수 부분으로 이상적으로 수행됨 )을 사용합니다 .
세계화 (G11n) : 다국어 소프트웨어 제품을 개발하고 세계 시장에 마케팅하는 프로세스입니다.
다국어 소프트웨어의 개발은 현재 두 단계로 진행됩니다. 첫 번째 단계는 국제화이고 두 번째 단계는 현지화입니다.
국제화 (I18n) : 제품을 재 설계 할 필요없이 (예 : 언어 및 문화 중립적) 다국어 및 문화적 규칙을 처리 할 수 있도록 제품을 일반화하는 프로세스입니다.
현지화 (L10n) : 제품을 가져 와서 판매 할 대상 로캘 (국가 / 지역 및 언어)에 언어 적으로 문화적으로 적합하게 만드는 프로세스입니다 (예 : 언어 및 문화 별).
아래 정의를 따르면 매우 간단합니다.
i18n (국제화) 은
응용 프로그램의 프로그래밍 방식 변경에 의존하지 않고 다른 언어로 변경 하는 기능을 갖도록 응용 프로그램 을 설계하는 프로세스 .
l10n (현지화) 은
의 처리 만드는 실제 언어 별 텍스트 및 서식 .
많은 답변, 많은 정확한 정보, 그러나 나의 대답은 조금 다른 관점입니다.
국제화 -개발자가 특정 언어의 코드 직접 메시지 / 오류 메시지 / 버튼 이름 / 레이블 캡션 / 등을 가지고 있지 않지만 번역 기능에 전달 되는 키 가 있고 현재 사용자의 로캘에 따라 번역 기능이 최종 텍스트를 반환하는 경우 in english / france / etc ...
번역 기능은 스토리지 (db / files / associative array / etc)와 함께 작동합니다.
저장소 는 coode로 사용 되는 키 와 응용 프로그램이 지원하는 특정 언어의 텍스트 인 값을 포함합니다.
지역화 -이 프로세스에 개발자를 참여시키지 않고 키 에 적합한 새 언어 (예 : 스페인)로 새 값을 새 프로세스에 추가 하는 프로세스입니다.
예를 들어 스토리지가 있습니다.
key | english | italian |
------+------------+-------------------+
title | Welcome | Benvenuto |
agree | I agree | Sono d'accordo |
thank | Thank you | Grazie |
Internationalization it is using in code something like confirm(t(agree));
instead of confirm("I agree");
or confirm("Sono d'accordo");
Localization - it is add new locale to our storage, like:
key | english | italian | spanish |
------+------------+-------------------+------------------+
title | Welcome | Benvenuto | Bienvenido |
agree | I agree | Sono d'accordo | Estoy de acuerdo |
thank | Thank you | Grazie | Gracias |
and here developer don't need update code, translation function will correctly carry appropriate texts.
There are a few very good answers here, so I won't recycle them. However at some point, typically between internationalization testing and localization linguistic testing, internationalization and localization tend to overlap. One person mentions l10n feeding back to internationalization, but if you are doing quality i18n testing, and creating pseudo-localized content, then iterating on development issues during localization should be the exception, not the rule. Interface resizing, and particularly adapting pages to support bi-directional languages like Arabic and Hebrew also tend to blend both localization issues and internationalization engineering.
Suffice it to say, Internationalization involves making changes to the source to support any locale based on requirements. If internationalization is done well...
...Localization involves the adaptation of the content and some levels of presentation (e.g. a bold tag) so that it best addresses needs of specific targeted markets (locales).
Lots of articles & white papers for reference here: http://www.lingoport.com/software-internationalization-articles
Internationalisation - i18n - The abstraction of an application from any particular language/culture.
Localisation - l10n- Plugging in the concrete support for a particular language/culture/locale to the above i18n framework.
Basically by doing i18n first you make l10n much less of a PITA.
In contrast if you create an application in a concrete locale first and then later try to internationalise it, it will be a massive PITA. Its not a simple matter of just swapping out a concrete english string say "Hello World" to Resource.Global.HelloWorld.
Different languages will have different space requirements, layout, emphasis, colours etc.
You need the i18n framework in place from the ground up to easily support this switching between locales for the above differences if you even think you may need to support more than one locale.
Retrofitting it into the application later on is just really hard. You will have to revisit a whole host of architectural considerations and constraints you (or someone else) made the first time round.
I feel localization can go without internationalization but.. internationalization with localization should not be done...
analogical pov: Imagine a shelf on your library that can only take one size book 4x4 inches. Internationalization would be building the shelf with all kinds of different compartments that can allow it to handle any book size or shape. And localization would be setting all the books on the right sections. Think of your Database, business logic and UI as the shelf and the different languages, currencies and text orientation as the books.
Lets understand locale first
locale - a set of parameters that defines the user's language, region and any special variant preferences that the user wants to see in their user interface. Usually a locale identifier consists of at least a language identifier and a region identifier.
i18n - Designing and developing software to support multiple locales.
l10n - This is possible only when your software supports i18n. But l10n makes sure, that language, date-format, currency formats etc are shown in context for a specific locale.
For example,
#1. June 3, 1977 will be translated to Spanish as 3 de junio de 1977.
#2. Currency in some countries are separated by '.' vs ','
#3. Show respective currency symbol based on locale's country
#1, #2 and #3 are use-cases for localization.
If the software is designed to support #1 OR #2 OR #3 based on user-locale, then product is l10n enabled.
If it supports multiple locales then its i18n enabled.
Simply,
Internationalization(I18N) is the process of making your software able to adapt to different languages, regions, and cultures.
Localization(L10N) is the process of translating your software into multiple languages. But before you can localize your software, you internationalize it.
There are many definitions of i18n and l10n. The one I use are :
internationalization (i18n) : language specific adaptation of your application (translation)
localization (l10n) : locale specific adaptation of your application (money, number format, date format ...).
예를 들어, 프랑스와 스위스에 배포 된 응용 프로그램에 대해 동일한 언어를 사용할 수 있지만 (최소 스위스 일부 지역에서는 프랑스어를 사용합니다) EUR를 CHF로 변경하려면 여전히 약간의 적응이 필요합니다.
'Programing' 카테고리의 다른 글
지역 지점에서 다른 지점으로 "당기는"방법은 무엇입니까? (0) | 2020.05.09 |
---|---|
'권장 권장 아이콘 파일-번들에 정확히'120x120 '픽셀의 iPhone / iPod Touch 용 앱 아이콘이 포함되어 있지 않습니다 (.png 형식). (0) | 2020.05.09 |
일치하는 줄 다음에 다음 줄만 표시하는 방법? (0) | 2020.05.09 |
JavaBean과 POJO의 차이점은 무엇입니까? (0) | 2020.05.09 |
ADT에 'org.eclipse.wst.sse.core 0.0.0'이 필요하지만 찾을 수 없습니다 (0) | 2020.05.09 |