I18N

I18N

國際化程序
i18n(其來源是英文單詞 internationalization的首末字符i和n,18為中間的字符數)是“國際化”的簡稱。在資訊領域,國際化(i18n)指讓産品(出版物,軟件,硬件等)無需做大的改變就能夠适應不同的語言和地區的需要。對程序來說,在不修改内部代碼的情況下,能根據不同語言及地區顯示相應的界面。 在全球化的時代,國際化尤為重要,因為産品的潛在用戶可能來自世界的各個角落。通常與i18n相關的還有L10n(“本地化”的簡稱)。
    中文名: 外文名:I18N 别名: 發源于:英語國家 屬于:世界範圍内程序員的通用語言 問題:翻譯工作面臨很大困境

簡介

衆所周知,計算機技術發源于英語國家,英語也因此成為世界範圍内程序員的通用語言,許多優秀的編程語言、開發工具、文檔都是英文版,導緻許多軟件開發者習慣首先開發英文版本,根據需要,再把軟件界面和文檔翻譯成不同國家、地區的語言版本。

但是由于實現翻譯的途徑、翻譯的工作效率、翻譯的可重用性等因素各不相同,使翻譯工作面臨很大困境,也阻礙了軟件的推廣和應用。

為了方便地将軟件翻譯成不同語言的版本,需要一套翻譯規範和通用工具,這就導緻了“國際化”機制的出現。

僅僅翻譯是不夠的,同一種語言在不同國家、地區可能存在多個支系,它們在表達習慣、語法結構甚至文字種類和編碼上都有不同,方言更是千奇百怪,通用的翻譯其質量肯定是不高的。涉及到計算機領域,還存在操作習慣上的差别,而且對某種語言提供完美的輸入、顯示、打印、保存、傳輸并非一件輕而易舉的事,這就導緻了“本地化”機制的出現。

國際化是指在設計軟件時,将軟件與特定語言及地區脫鈎的過程。當軟件被移植到不同的語言地區時,軟件本身不用做内部工程上的改變或修正。本地化則是指當移植軟件時,加上與特定區域設置有關的資訊和翻譯文件的過程。國際化和本地化之間的區别雖然微妙,但卻很重要。國際化意味着産品有适用于任何地方的潛力;本地化則是為了更适合于特定地方的使用,而另外增添的特色。用一項産品來說,國際化隻需做一次,但本地化則要針對不同的區域各做一次。這兩者之間是互補的,并且兩者結合起來才能讓一個系統适用于各地。

簡而言之,“國際化”是“本地化”的一部分,主要是指國際化的實現機制和翻譯工作,“本地化”包含“國際化”,是對“國際化”的補充和完善,它還包括為實現對某種特定語言良好的支持而進行的有針對性的翻譯調整以及對軟件進行的打補丁工作。

在如微軟及IBM等企業中,則會使用全球化(globalization)來表示此兩者的合稱。在英文中,也會使用g11n做為簡稱。

随着全球經濟的一體化,軟件開發者開發出支持多國語言、國際化的應用是一種趨勢。對于Web應用來說,同樣的頁面在不同的語言環境下需要顯示不同的效果。也就是說,一個Web應用程序在運行時能夠根據客戶端請求所來自的國家和語言顯示不同的用戶界面。

國際組織

I18N服務是在YMP框架啟動時初始化,其根據ymp.i18n_default_locale進行語言配置,默認采用系統運行環境的語言設置。i18n 和 L10n 的國際組織是 Openi18n 組織,其前身是 li18nux 組織。它原來是制定GNU/Linux 自由操作系統上軟件全球化标準的國際計劃,後來擴充到GNU/Linux 之外所有開放源代碼的技術領域,因而更名為 Open Internationalization Initiative,由非營利組織 Free Standards Group 贊助,并為世界各大廠商所支持,對于GNU/Linux 系統上的多國語言文字處理技術和環境有決定性的影響。各個開源軟件開發組織通常都有負責“國際化”和“本地化”工作的分支機構。

i18n 主要使用 gettext 軟件包使軟件實現國際化支持。事實上它是一整套 i18n解決方案。現在開源程序中普遍通過分離語言文件 ,然後通過 gettext 軟件包來實現國際化發展。

範圍

國際化與本地化工作的焦點包括

語言

電子文件

字母。目前大部分的系統都采用統一碼為标準來解決字符編碼。

不同的數字命名系統。

書寫方向。譬如德語是從左到右,而波斯語、希伯來語和阿拉伯語是由右到左。

相同語言在不同地區的拼法差異,如美國英語、加拿大英語使用localization,而英國英語和澳大利亞英語使用localisation。

文件處理上的差異,如某些文字存在大小寫,其它則否。字母順序。

文字的圖像表示(列印物、内含線上圖片)。

讀法(音頻)

視頻的字幕

文化

圖片和顔色:這牽涉到理解和文化适宜的議題。

名字和稱謂

政府給定的編碼(如美國的社會安全碼,英國的National Insurance number,愛沙尼亞的Isikukood及其它各國的身份證号碼)和護照

電話号碼、地址和國際郵遞區号

貨币(符号、貨币标志的位置)

度量衡

紙張大小

書寫習慣

日期跟時間的格式,包含各式日曆。

時區(在國際場合會使用世界标準時間)

數字格式(小數點、分隔點的位置、分隔所用的字符)

産品和服務所要面向的法規

隻屬于本地化的主題有

翻譯

針對特定語言(如東亞語言)的特别支持

符合當地習慣

符合當地的道德觀念

針對當地撰寫内容

符号

排序方法

美學

當地的文化價值和社會環境

困難

開發軟件時,國際化和本地化對開發者是一個有挑戰性的任務,特别是當軟件當初設計時沒有考慮這個問題時。通常作法是将文本和其他環境相關的資源與程序代碼相分離。這樣在理想的情況下,應對變化的環境時無需修改代碼,隻要修改資源,從而顯着簡化了工作。

開發團隊需要了解其他語言和文化,而這樣的人才可能難以尋覓。而且資源的複制也可能成為維護的惡夢。例如,如果某個語言中顯示給用戶的信息變化了,其他的翻譯版本都要随之變化。Gettext之類軟件庫有助于解決這一問題。

由于自由軟件自由地修改和再分發,因此它比較容易國際化。當KDE擁有70個語言版本時,大多數專有軟件隻能夠用于商業上有利可圖的語言。

區域設置

計算機中一套定義用戶的語言、國家和用于定義用戶希望在其用戶界面上看到的各種可以改變的選擇的參數集合。通常一個locale 标識符至少包括一個語言标識符和一個區域标識符。

在UNIX和WINDOWS中,locale的控制是不同的。在UNIX下,通常通過環境變量來控制locale。這些環境變量包括:LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以通過改變這些環境變量來控制你的程序或者命令所表現出來的locale,前提是這些程序或者命令必須是已經被國際化的和本地化的。在Windows下,你可以通過改變控制面闆上的“語言/區域”中的區域的值來設定Windows的當前用戶的locale。

與全球化的關系

國際化有時與全球化交替使用以描述聯系日益緊密的世界的經濟與文化影響。

國際化經常(特别是在軟件中)指提供一個用于多語言的框架,有時也指事物(機構、理念)可以借此影響多個民族的過程。此時很少使用全球化,因為它一般指機構和産品出現與世界各地(同時也引起了對本地化的需求)。

本地化可能用于描述貼近最終用戶以減小全球化的環境和其他副作用。

其它

除了i18n,L10n(localization),g11n(globalization),還有m17n(multilingualization),區别是:

i18n支持多種語言,但是同一時間隻能是英文和一種選定的語言,例如英文+中文、英文+德文、英文+韓文等等;

L10n(localization),支持2種語言,英文和另外一種語言(例如中文);

g11n(globalization),簡單的理解可以認為g11n = i18n + L10n。

m17n(multilingualization)可以在同一時間支持多種語言,例如你可以在一個頁面裡看到中文、英文、德文和韓文。

上一篇:擋風玻璃

下一篇:虎标鎮痛藥布

相關詞條

相關搜索

其它詞條