chrome.i18n

Açıklama

Uygulamanızın veya uzantınızın tamamında uluslararasılaştırma sağlamak için chrome.i18n altyapısını kullanın.

Kullanıcının görebildiği tüm dizeleri messages.json adlı bir dosyaya yerleştirmeniz gerekir. Her seferinde yeni bir yerel ayar eklediğinizde, _locales/_localeCode_ adlı dizinin altına bir ileti dosyası eklersiniz; burada localeCode, İngilizce için en gibi bir koddur.

İngilizce (en), İspanyolcayı destekleyen uluslararası bir uzantının dosya hiyerarşisini aşağıda bulabilirsiniz (es) ve Korece (ko):

Uzantı dizininde: manifest.json, *.html, *.js, _locales dizini. _locales dizininde: en, es ve ko dizinleri (her biri bir messages.json dosyası içerir).

Birden fazla dil nasıl desteklenir?

Aşağıdaki şekilde gösterilen dosyaları içeren bir uzantınız olduğunu varsayalım:

Bir manifest.json dosyası ve JavaScript içeren bir dosya. .json dosyasında

Bu uzantıyı uluslararası hale getirmek için kullanıcının görebildiği her dizeyi adlandırın ve bir mesajlara yerleştirin dosyası olarak kaydedebilirsiniz. Uzantının manifest, CSS dosyaları ve JavaScript kodu, yerelleştirilmiş sürümünü kullanabilirsiniz.

Uzantı uluslararası hale getirildiğinde şöyle görünür (hâlâ yalnızca İngilizce dizeler):

<img "__msg_extname__",="" "default_locale"="" "tr".="" "extname"."="" "merhaba="" _locales=&quot;&quot; a=&quot;&quot; alt="Manifest.json dosyasında, " and=&quot;&quot; oldu="" changed=&quot;&quot; chrome.i18n.getmessage("extad").="" defines=&quot;&quot; en=&quot;&quot; file=&quot;&quot; file,=&quot;&quot; has=&quot;&quot; hello=&quot;&quot; in=&quot;&quot; item=&quot;&quot; javascript=&quot;&quot; messages.json=&quot;&quot; named=&quot;&quot; yeni="" src=&quot;/static/images/i18n-after-1.gif&quot; the=&quot;&quot; to=&quot;&quot; value="" dünya"="" /

Uluslararası hale getirme hakkında bazı notlar:

  • Desteklenen yerel ayarlardan herhangi birini kullanabilirsiniz. Desteklenmeyen bir yerel ayar kullanıyorsanız Google Chrome dikkate almaz.
  • manifest.json ve CSS dosyalarında, şu şekilde messagename adlı bir dizeye başvurun:

    __MSG_messagename__
    
  • Uzantınızın veya uygulamanızın JavaScript kodunda, aşağıdaki gibi messagename adlı bir dizeye bakın:

    chrome.i18n.getMessage("messagename")
    
  • getMessage() için yapılan her çağrıda, mesaja dahil edilecek en fazla 9 dize sağlayabilirsiniz. Görüntüleyin Ayrıntılar için Örnekler: getMessage.

  • @@bidi_dir ve @@ui_locale gibi bazı mesajlar uluslararasılaştırma tarafından sağlanır bahsedeceğim. Önceden tanımlanmış mesaj adlarının tam listesi için Önceden tanımlanmış mesajlar bölümüne bakın.

  • messages.json ürününde, kullanıcının görebildiği her dizenin bir adı ve "mesaj"ı bulunur. öğe ve isteğe bağlı bir &quot;description&quot; öğe. Ad, "extName" gibi bir anahtardır veya "search_string" marka bilinci oluşturma dize. "Mesaj" dizenin bu yerel ayardaki değerini belirtir. İsteğe bağlı "açıklama" dizenin belgenizde nasıl kullanıldığını göremeyen çevirmenlere uzantısına sahip olur. Örneğin:

    {
      "search_string": {
        "message": "hello%20world",
        "description": "The string we search for. Put %20 between words that go together."
      },
      ...
    }
    

    Daha fazla bilgi için Biçimler: Yerel Ayara Özel Mesajlar bölümüne bakın.

Bir uzantı veya uygulama uluslararası hale getirildikten sonra, çevrilmesi oldukça kolaydır. messages.json adlı kullanıcıyı kopyalarsınız, çevirisini yapın ve kopyayı _locales altında yeni bir dizine yerleştirin. Örneğin, İspanyolca, messages.json listesinin çevrilmiş kopyasını _locales/es altına koymanız yeterli. Aşağıdaki şekilde önceki uzantıyı yeni bir İspanyolca çeviriyle gösterir.

Bu metin, önceki şekle benzerdir ancak _locales/es/messages.json adresinde, mesajların İspanyolca çevirisini içeren yeni bir dosya içerir.

Önceden tanımlanmış mesajlar

Uluslararasılaştırma sistemi, yerelleştirmenize yardımcı olmak için önceden tanımlanmış birkaç mesaj sağlar. Bu kullanıcı arayüzünün geçerli yerel ayarını ve@@ui_locale@@bidi_... Böylece metnin yönünü algılayabilirsiniz. Bu son iletilerin adı cihazlar BIDI (çift yönlü) API'si.

@@extension_id özel mesajı, yerelleştirilir. Bu mesaj, manifest dosyalarında çalışmaz.

Önceden tanımlanmış mesajlar aşağıdaki tabloda açıklanmıştır.

Mesaj adıAçıklama
@@extension_idUzantı veya uygulama kimliği; bu dizeyi, uzantı içindeki kaynakların URL'lerini oluşturmak için kullanabilirsiniz. Yerelleştirilmemiş uzantılar bile bu mesajı kullanabilir.
Not: Bu mesajı, bir manifest dosyasında kullanamazsınız.
@@ui_localeMevcut yerel ayar; yerel ayara özel URL'ler oluşturmak için bu dizeyi kullanabilirsiniz.
@@bidi_dirGeçerli yerel ayarın metin yönü, "ltr" İngilizce veya "rtl" gibi soldan sağa diller için Japonca gibi sağdan sola diller için.
@@bidi_reversed_dir@@bidi_dir "ltr" ise bu "rtl" olur; Aksi takdirde "ltr" kullanılır.
@@bidi_start_edge@@bidi_dir değeri "ltr" ise bu değer "left" (sol) olur; Aksi takdirde "doğru"dur.
@@bidi_end_edge@@bidi_dir "ltr" ise bu "doğru"dur; Aksi takdirde "solda" kalır.

Aşağıda, URL oluşturmak için CSS dosyasında @@extension_id kullanımına bir örnek verilmiştir:

body {
  background-image:url('chrome-extension://__MSG_@@extension_id__/background.png');
}

Uzantı kimliği abcdefghijklmnopqrstuvwxyzabcdef ise önceki kodda kalın harflerle yazılmış satır snippet şu şekilde olur:

  background-image:url('chrome-extension://abcdefghijklmnopqrstuvwxyzabcdef/background.png');

CSS dosyasında @@bidi_* mesajlarının kullanımıyla ilgili bir örneği aşağıda bulabilirsiniz:

body {
  direction: __MSG_@@bidi_dir__;
}

div#header {
  margin-bottom: 1.05em;
  overflow: hidden;
  padding-bottom: 1.5em;
  padding-__MSG_@@bidi_start_edge__: 0;
  padding-__MSG_@@bidi_end_edge__: 1.5em;
  position: relative;
}

İngilizce gibi soldan sağa yazılan dillerde kalın çizgiler şu şekilde olur:

  dir: ltr;
  padding-left: 0;
  padding-right: 1.5em;

Yerel ayarlar

Tek bir çeviriye olanak tanıyan bazı (en gibi) dahil olmak üzere çok sayıda yerel ayar arasından seçim yapabilirsiniz bir dilin birden çok varyasyonunu desteklemeleri (en_GB ve en_US gibi).

Desteklenen yerler

Chrome Web Mağazası'nın desteklediği yerel ayarlardan herhangi birini kullanabilirsiniz.

İletileri arama

Desteklenen her yerel ayar için her dizeyi tanımlamanız gerekmez. Varsayılan yerel ayar messages.json dosyası her dize için bir değere sahiptir. Uzantınız veya uygulamanız nasıl çalışırsa çalışsın çok az çeviri bulunur. Uzantı sistemi bir iletiyi şu şekilde arar:

  1. Kullanıcının tercih ettiği yerel ayarı, iletiler dosyasında (varsa) arayın. Örneğin, Google Chrome'un yerel ayarı İngiliz İngilizcesi (en_GB) olarak belirlendiğinden, sistem iletiyi ilk olarak _locales/en_GB/messages.json. Söz konusu dosya mevcutsa ve ileti de mevcutsa, sistem devam edin.
  2. Kullanıcının tercih ettiği yerel ayarda bölge varsa (yani yerel ayarda alt çizgi varsa: _), arama o bölgenin bulunmadığı yerel ayardır. Örneğin, en_GB iletileri dosyası yoksa veya sistem, en ileti dosyasına bakar. Söz konusu dosya varsa ve orada görünüyorsa sistem başka yere bakmaz.
  3. Mesajlar dosyasında varsayılan yerel ayarı arayın. Örneğin, uzantı "varsayılan_yerel ayar" "es" olarak ayarlandığında _locales/en_GB/messages.json veya _locales/en/messages.json mesajı içeriyor, uzantı şu adresten gelen mesajı kullanıyor: _locales/es/messages.json.

Aşağıdaki şekilde, "colores" adlı ileti her üç yerel ayarda da desteklenir, ancak "extName" yerel ayarlardan yalnızca ikisinde yer alıyor. ABD'de Google Chrome çalıştıran bir kullanıcının bulunduğu her yerde İngilizcede "Renkler" etiketi bulunur, İngiliz İngilizcesi kullanıcıları "Renkler"i görür. Hem ABD İngilizcesi hem de İngiliz İngilizcesi kullanıcılar "Hello World" uzantı adını görür. Varsayılan dil İspanyolca olduğu için Google Chrome'u İngilizce dışındaki herhangi bir dilde çalıştıran kullanıcılar "Renkler" etiketini görürler ve Adı "Hola mundo".

Dört dosya: manifest.json ve üç messages.json dosyası (es, en ve en_GB için).  es ve en dosyaları, şu ada sahip iletilere ait girişleri gösterir:

Tarayıcınızın yerel ayarını belirleme

Çevirileri test etmek için tarayıcınızın yerel ayarını belirleyebilirsiniz. Bu bölümde, projenizin Windows, Mac OS X, Linux ve ChromeOS'teki yerel ayar.

Windows

Yerel ayara özel bir kısayol veya Google Chrome kullanıcı arayüzünü kullanarak yerel ayarı değiştirebilirsiniz. İlgili içeriği oluşturmak için kullanılan Kurduktan sonra bu kısayol yaklaşımı daha hızlı sonuç verir ve aynı anda birden fazla dili kullanmanıza olanak tanır.

Yerel ayara özel bir kısayol kullanarak

Google Chrome'u belirli bir yerel ayarla başlatan bir kısayol oluşturmak ve kullanmak için:

  1. Masaüstünüzde bulunan Google Chrome kısayolunun bir kopyasını oluşturun.
  2. Yeni kısayolu, yeni yerel ayarla eşleşecek şekilde yeniden adlandırın.
  3. Kısayolun özelliklerini, Hedef alanında --lang ve --user-data-dir işaret. Hedef aşağıdaki gibi görünür:

    path_to_chrome.exe --lang=locale --user-data-dir=c:\locale_profile_dir
    
  4. Kısayolu çift tıklayarak Google Chrome'u başlatın.

Örneğin, Google Chrome'u İspanyolca (es) başlatan bir kısayol oluşturmak için chrome-es adlı kısayol şu hedefe sahip:

path_to_chrome.exe --lang=es --user-data-dir=c:\chrome-profile-es

İstediğiniz kadar kısayol oluşturarak birden çok dilde test etmeyi kolaylaştırabilirsiniz. Örneğin:

path_to_chrome.exe --lang=en --user-data-dir=c:\chrome-profile-en
path_to_chrome.exe --lang=en_GB --user-data-dir=c:\chrome-profile-en_GB
path_to_chrome.exe --lang=ko --user-data-dir=c:\chrome-profile-ko
Kullanıcı arayüzünü kullanma

Windows için Google Chrome'da kullanıcı arayüzünü kullanarak yerel ayarı nasıl değiştireceğiniz aşağıda açıklanmıştır:

  1. Uygulama simgesi > Seçenekler
  2. Gelişmiş Seçenekler sekmesini seçin.
  3. Aşağı kaydırarak Web İçeriği'ne gidin
  4. Yazı tipi ve dil ayarlarını değiştir'i tıklayın
  5. Diller sekmesini seçin
  6. Google Chrome dilini ayarlamak için açılır menüyü kullanın.
  7. Chrome'u yeniden başlatın.

Mac OS X

Mac'te yerel ayarı değiştirmek için sistem tercihlerini kullanırsınız.

  1. Apple menüsünden Sistem Tercihleri'ni seçin.
  2. Kişisel bölümünün altında Uluslararası'yı seçin
  3. Dilinizi ve konumunuzu seçin
  4. Chrome'u yeniden başlatın.

Linux

Linux'ta yerel ayarı değiştirmek için önce Google Chrome'dan çıkın. Ardından, hepsi tek bir satırda LANGUAGE ayarlayın. ortam değişkenini bulun ve Google Chrome'u başlatın. Örneğin:

LANGUAGE=es ./chrome

ChromeOS

ChromeOS'te yerel ayarı değiştirmek için:

  1. Sistem tepsisinden Ayarlar'ı seçin.
  2. Diller ve giriş bölümünde Dil açılır listesini seçin.
  3. Diliniz listede yoksa Dil ekle'yi tıklayıp istediğiniz dili ekleyin.
  4. Ekleme işleminden sonra, dilinizin yanındaki 3 noktalı Diğer işlemler menü öğesini tıklayın ve ChromeOS'i bu dilde görüntüle.
  5. ChromeOS'i yeniden başlatmak için ayarlanan dilin yanındaki Yeniden başlat düğmesini tıklayın.

Örnekler

Uluslararasılaştırmaya ilişkin basit örnekleri examples/api/i18n dizininde bulabilirsiniz. Örneğin, Daha ayrıntılı bir örnek için örnekler/uzantılar/haberler bölümüne bakın. Diğer örnekler ve Örnekler bölümüne bakın.

Örnekler: getMessage

Aşağıdaki kod, tarayıcıdan yerelleştirilmiş bir mesaj alır ve bunu bir dize olarak görüntüler. Google mesajdaki iki yer tutucuyu "dize1" dizeleriyle değiştirir ve "string2".

function getMessage() {
  var message = chrome.i18n.getMessage("click_here", ["string1", "string2"]);
  document.getElementById("languageSpan").innerHTML = message;
}

Tek bir dizeyi nasıl sağlayacağınız ve kullanacağınız aşağıda açıklanmıştır:

  // In JavaScript code
  status.innerText = chrome.i18n.getMessage("error", errorDetails);
"error": {
  "message": "Error: $details$",
  "description": "Generic error template. Expects error parameter to be passed in.",
  "placeholders": {
    "details": {
      "content": "$1",
      "example": "Failed to fetch RSS feed."
    }
  }
}

Yer tutucular hakkında daha fazla bilgi için Yerel Ayara Özel Mesajlar sayfasına bakın. Ayrıntılı bilgi için getMessage() çağrısı için API referansına bakın.

Örnek: get AcceptLanguages

Aşağıdaki kod, tarayıcıdan kabul edilen dilleri alır ve bunları bir dize olarak görüntüler. her kabul dili ',' ile ayrılır.

function getAcceptLanguages() {
  chrome.i18n.getAcceptLanguages(function(languageList) {
    var languages = languageList.join(",");
    document.getElementById("languageSpan").innerHTML = languages;
  })
}

getAcceptLanguages() çağrısıyla ilgili ayrıntılar için API referansına bakın.

Örnek: algılayıcıDili

Aşağıdaki kod, belirtilen dizeden en fazla 3 dili algılar ve sonucu dizeleri yeni satırlarla ayrılmış olarak gösterir.

function detectLanguage(inputText) {
  chrome.i18n.detectLanguage(inputText, function(result) {
    var outputLang = "Detected Language: ";
    var outputPercent = "Language Percentage: ";
    for(i = 0; i < result.languages.length; i++) {
      outputLang += result.languages[i].language + " ";
      outputPercent +=result.languages[i].percentage + " ";
    }
    document.getElementById("languageSpan").innerHTML = outputLang + "\n" + outputPercent + "\nReliable: " + result.isReliable;
  });
}

detectLanguage(inputText) çağrısı hakkında daha fazla bilgi için API referansına bakın.

Türler

LanguageCode

Chrome 47 ve sonraki sürümler 'nı inceleyin.

en veya fr gibi bir ISO dil kodu. Bu yöntemin desteklediği dillerin tam listesi için kLanguageInfoTable bölümüne bakın. Bilinmeyen bir dil için und döndürülür. Bu durumda, metnin [percentage] kadarı CLD tarafından bilinmiyor

Tür

dize

Yöntemler

detectLanguage()

Söz Chrome 47 ve sonraki sürümler
chrome.i18n.detectLanguage(
  text: string,
  callback?: function,
)

CLD kullanarak, sağlanan metnin dilini algılar.

Parametreler

  • text (metin)

    dize

    Çevrilecek kullanıcı girişi dizesi.

  • geri çağırma

    işlev isteğe bağlı

    callback parametresi şu şekilde görünür:

    (result: object) => void

    • sonuç

      nesne

      Algılanan langugae güvenilirliğini ve DetectedLanguage dizisini barındıran LanguageDetectionResult nesnesi

      • isReliable

        boolean

        CLD algılanan dil güvenilirliği

      • diller

        object[]

        algılananDil dizisi

        • language

          dize

        • yüzde

          sayı

          Algılanan dilin yüzdesi

İadeler

  • Promise&lt;object&gt;

    Chrome 99 ve sonraki sürümler 'nı inceleyin.

    Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.

getAcceptLanguages()

Söz 'nı inceleyin.
chrome.i18n.getAcceptLanguages(
  callback?: function,
)

Tarayıcının kabul dillerini alır. Bu, tarayıcı tarafından kullanılan yerel ayardan farklıdır; yerel ayarı almak için i18n.getUILanguage işlevini kullanın.

Parametreler

  • geri çağırma

    işlev isteğe bağlı

    callback parametresi şu şekilde görünür:

    (languages: string[]) => void

    • diller

      dize[]

      LanguageCode dizisi

İadeler

  • Promise&lt;LanguageCode[]&gt;

    Chrome 99 ve sonraki sürümler 'nı inceleyin.

    Vaatler yalnızca Manifest V3 ve sonraki sürümler için desteklenir. Diğer platformların geri çağırma yapması gerekir.

getMessage()

chrome.i18n.getMessage(
  messageName: string,
  substitutions?: any,
  options?: object,
)

Belirtilen mesaj için yerelleştirilmiş dizeyi alır. İleti eksikse bu yöntem boş bir dize ("') döndürür. getMessage() çağrısının biçimi yanlışsa (örneğin, messageName bir dize değilse veya substitutions dizisi 9'dan fazla öğe içeriyorsa) bu yöntem undefined değerini döndürür.

Parametreler

  • messageName

    dize

    İletinin messages.json dosyasında belirtilen adı.

  • ikame değerler

    isteğe bağlı herhangi bir

    Mesaj gerekiyorsa en fazla 9 değiştirme dizesi.

  • seçenekler

    nesne isteğe bağlı

    Chrome 79 ve sonraki sürümler 'nı inceleyin.
    • escapeLt

      boole isteğe bağlı

      &lt; diline çeviride < kod dışına alın. Bu yalnızca iletinin kendisi için geçerlidir; yer tutucular için geçerli değildir. Çeviri bir HTML bağlamında kullanılıyorsa geliştiriciler bunu kullanmak isteyebilir. Kapanış Derleyici ile kullanılan Kapatma Şablonları bunu otomatik olarak oluşturur.

İadeler

  • dize

    İleti mevcut yerel ayar için yerelleştirilmiş.

getUILanguage()

chrome.i18n.getUILanguage()

Tarayıcının tarayıcı kullanıcı arayüzü dilini alır. Bu, tercih edilen kullanıcı dillerini döndüren i18n.getAcceptLanguages'ten farklıdır.

İadeler

  • dize

    Tarayıcının kullanıcı arayüzü dil kodu (ör. en-US veya fr-FR).