Aktualisierungsdatum: 2026-09-25 robots: noindex
Beschreibung
Mit der chrome.i18n-Infrastruktur können Sie die Internationalisierung in Ihrer gesamten App oder Erweiterung implementieren.
Alle für Nutzer sichtbaren Strings müssen in einer Datei mit dem Namen messages.json enthalten sein. Jedes Mal, wenn Sie ein neues Gebietsschema hinzufügen, fügen Sie eine Datei mit Nachrichten in einem Verzeichnis mit dem Namen _locales/_localeCode_ hinzu. Dabei ist localeCode ein Code wie en für Englisch.
Hier ist die Dateihierarchie für eine internationalisierte Erweiterung, die Englisch (en), Spanisch (es) und Koreanisch (ko) unterstützt:

Mehrere Sprachen unterstützen
Angenommen, Sie haben eine Erweiterung mit den in der folgenden Abbildung gezeigten Dateien:

Um diese Erweiterung zu internationalisieren, benennen Sie jeden für Nutzer sichtbaren String und fügen ihn in eine messages-Datei ein. Im Manifest, in den CSS-Dateien und im JavaScript-Code der Erweiterung wird der Name der jeweiligen Zeichenfolge verwendet, um die lokalisierte Version abzurufen.
So sieht die Erweiterung aus, wenn sie internationalisiert wurde (beachten Sie, dass sie immer noch nur englische Strings enthält):
<img "__msg_extname__",="" "default_locale"="" "en".="" "extname"."="" "hello="" _locales="" a="" alt="In the manifest.json file, " and="" been="" changed="" chrome.i18n.getmessage("extname").="" defines="" en="" file="" file,="" has="" hello="" in="" item="" javascript="" messages.json="" named="" new="" src="/static/images/i18n-after-1.gif" the="" to="" value="" world"="" />
Einige Hinweise zur Internationalisierung:
- Sie können alle unterstützten Gebietsschemas verwenden. Wenn Sie eine nicht unterstützte Sprache verwenden, wird sie von Google Chrome ignoriert.
In
manifest.json- und CSS-Dateien verweisen Sie so auf einen String mit dem Namen messagename:__MSG_messagename__Verweisen Sie im JavaScript-Code Ihrer Erweiterung oder App so auf einen String namens messagename:
chrome.i18n.getMessage("messagename")Bei jedem Aufruf von
getMessage()können Sie bis zu 9 Strings angeben, die in die Nachricht aufgenommen werden sollen. Weitere Informationen finden Sie unter Beispiele: getMessage.Einige Meldungen, z. B.
@@bidi_dirund@@ui_locale, werden vom Internationalisierungssystem bereitgestellt. Eine vollständige Liste der vordefinierten Nachrichtennamen finden Sie im Abschnitt Vordefinierte Nachrichten.In
messages.jsonhat jeder für Nutzer sichtbare String einen Namen, ein „message“-Element und ein optionales „description“-Element. Der Name ist ein Schlüssel wie „extName“ oder „search_string“, der den String identifiziert. Mit „message“ wird der Wert des Strings in dieser Sprache angegeben. Die optionale „Beschreibung“ kann Übersetzern helfen, die möglicherweise nicht sehen können, wie der String in Ihrer Erweiterung verwendet wird. Beispiel:{ "search_string": { "message": "hello%20world", "description": "The string we search for. Put %20 between words that go together." }, ... }Weitere Informationen finden Sie unter Formate: Länderspezifische Nachrichten.
Nachdem eine Erweiterung oder App internationalisiert wurde, ist die Übersetzung ganz einfach. Sie kopieren messages.json, übersetzen die Kopie und legen sie in einem neuen Verzeichnis unter _locales ab. Wenn Sie beispielsweise Spanisch unterstützen möchten, fügen Sie einfach eine übersetzte Kopie von messages.json unter _locales/es ein. Die folgende Abbildung zeigt die vorherige Erweiterung mit einer neuen spanischen Übersetzung.

Vordefinierte Nachrichten
Das Internationalisierungssystem bietet einige vordefinierte Meldungen, die Ihnen bei der Lokalisierung helfen. Dazu gehört @@ui_locale, mit dem Sie das aktuelle Gebietsschema der Benutzeroberfläche erkennen können, sowie einige @@bidi_...-Meldungen, mit denen Sie die Textrichtung erkennen können. Letztere haben ähnliche Namen wie Konstanten in der Gadgets BIDI (bi-directional) API.
Die spezielle Nachricht @@extension_id kann in den CSS- und JavaScript-Dateien verwendet werden, unabhängig davon, ob die Erweiterung oder App lokalisiert ist. Diese Nachricht funktioniert nicht in Manifestdateien.
In der folgenden Tabelle werden die einzelnen vordefinierten Nachrichten beschrieben.
| Name der Nachricht | Beschreibung |
|---|---|
@@extension_id | Die Erweiterungs- oder App-ID. Sie können diesen String verwenden, um URLs für Ressourcen in der Erweiterung zu erstellen. Auch nicht lokalisierte Erweiterungen können diese Nachricht verwenden. Hinweis:Sie können diese Nachricht nicht in einer Manifestdatei verwenden. |
@@ui_locale | Das aktuelle Gebietsschema. Sie können diesen String verwenden, um gebietsschemaspezifische URLs zu erstellen. |
@@bidi_dir | Die Textrichtung für das aktuelle Gebietsschema, entweder „ltr“ für rechtsläufige Sprachen wie Englisch oder „rtl“ für linksläufige Sprachen wie Japanisch. |
@@bidi_reversed_dir | Wenn @@bidi_dir „ltr“ ist, ist dies „rtl“, andernfalls „ltr“. |
@@bidi_start_edge | Wenn @@bidi_dir „ltr“ ist, ist dies „left“ (links), andernfalls „right“ (rechts). |
@@bidi_end_edge | Wenn @@bidi_dir „ltr“ ist, ist das „right“ (rechts), andernfalls „left“ (links). |
Hier sehen Sie ein Beispiel für die Verwendung von @@extension_id in einer CSS-Datei zum Erstellen einer URL:
body {
background-image:url('chrome-extension://__MSG_@@extension_id__/background.png');
}
Wenn die Erweiterungs-ID abcdefghijklmnopqrstuvwxyzabcdef ist, wird die fett formatierte Zeile im vorherigen Code-Snippet zu:
background-image:url('chrome-extension://abcdefghijklmnopqrstuvwxyzabcdef/background.png');
Hier sehen Sie ein Beispiel für die Verwendung von @@bidi_*-Nachrichten in einer CSS-Datei:
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;
}
Bei links-nach-rechts-Sprachen wie Englisch werden die fett gedruckten Zeilen zu:
dir: ltr;
padding-left: 0;
padding-right: 1.5em;
Sprachen
Sie können aus vielen Gebietsschemas auswählen, darunter einige (z. B. en), mit denen eine einzelne Übersetzung mehrere Varianten einer Sprache (z. B. en_GB und en_US) unterstützen kann.
Unterstützte Gebietsschemen
Sie können alle vom Chrome Web Store unterstützten Sprachen verwenden.
Suchen von Nachrichten
Sie müssen nicht jede Zeichenfolge für jedes unterstützte Gebietsschema definieren. Solange die Datei messages.json des Standardsprachen-Locales einen Wert für jeden String enthält, wird Ihre Erweiterung oder App unabhängig davon ausgeführt, wie spärlich eine Übersetzung ist. So sucht das Erweiterungssystem nach einer Nachricht:
- Suchen Sie in der Datei mit den Nachrichten (falls vorhanden) nach dem bevorzugten Gebietsschema des Nutzers. Wenn die Sprache von Google Chrome beispielsweise auf Britisches Englisch (
en_GB) eingestellt ist, sucht das System zuerst nach der Meldung in_locales/en_GB/messages.json. Wenn diese Datei vorhanden ist und die Nachricht angezeigt wird, wird nicht weiter gesucht. - Wenn der bevorzugte Sprachcode des Nutzers eine Region enthält (d. h. der Sprachcode hat einen Unterstrich: _), suchen Sie nach dem Sprachcode ohne diese Region. Wenn die Datei
en_GBbeispielsweise nicht vorhanden ist oder die Nachricht nicht enthält, sucht das System in der Dateien. Wenn diese Datei vorhanden ist und die Nachricht darin enthalten ist, wird nicht weiter gesucht. - Suchen Sie in der Datei mit den Nachrichten nach dem Standardsprache. Wenn beispielsweise „default_locale“ der Erweiterung auf „es“ festgelegt ist und weder
_locales/en_GB/messages.jsonnoch_locales/en/messages.jsondie Nachricht enthalten, wird die Nachricht aus_locales/es/messages.jsonverwendet.
In der folgenden Abbildung ist die Nachricht mit dem Namen „colores“ in allen drei von der Erweiterung unterstützten Sprachen enthalten, „extName“ jedoch nur in zwei. Wenn ein Nutzer, der Google Chrome auf US-Englisch verwendet, das Label „Colors“ sieht, wird einem Nutzer, der britisches Englisch verwendet, „Colours“ angezeigt. Sowohl Nutzer, die US-Englisch als Sprache eingestellt haben, als auch Nutzer, die britisches Englisch als Sprache eingestellt haben, sehen den Namen der Erweiterung „Hello World“. Da die Standardsprache Spanisch ist, sehen Nutzer, die Google Chrome in einer anderen Sprache als Englisch verwenden, das Label „Colores“ und den Namen der Erweiterung „Hola mundo“.

Sprache des Browsers festlegen
Wenn Sie Übersetzungen testen möchten, können Sie die Sprache Ihres Browsers festlegen. In diesem Abschnitt erfahren Sie, wie Sie das Gebietsschema in Windows, Mac OS X, Linux und ChromeOS festlegen.
Windows
Sie können das Gebietsschema entweder über eine gebietsschemaspezifische Tastenkombination oder über die Google Chrome-Benutzeroberfläche ändern. Die Shortcut-Methode ist schneller, sobald Sie sie eingerichtet haben, und Sie können mehrere Sprachen gleichzeitig verwenden.
Länderspezifische Tastenkombination verwenden
So erstellen und verwenden Sie eine Verknüpfung, mit der Google Chrome mit einem bestimmten Gebietsschema gestartet wird:
- Erstellen Sie eine Kopie der Google Chrome-Verknüpfung, die sich bereits auf Ihrem Desktop befindet.
- Benennen Sie die neue Tastenkombination entsprechend dem neuen Gebietsschema um.
Ändern Sie die Eigenschaften der Verknüpfung so, dass im Feld „Ziel“ die Flags
--langund--user-data-dirangegeben sind. Das Ziel sollte in etwa so aussehen:path_to_chrome.exe --lang=locale --user-data-dir=c:\locale_profile_dirStarten Sie Google Chrome, indem Sie auf die Verknüpfung doppelklicken.
Wenn Sie beispielsweise eine Verknüpfung erstellen möchten, mit der Google Chrome auf Spanisch (es) gestartet wird, können Sie eine Verknüpfung mit dem Namen chrome-es erstellen, die das folgende Ziel hat:
path_to_chrome.exe --lang=es --user-data-dir=c:\chrome-profile-es
Sie können beliebig viele Verknüpfungen erstellen, um das Testen in mehreren Sprachen zu erleichtern. Beispiel:
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
Benutzeroberfläche verwenden
So ändern Sie das Gebietsschema über die Benutzeroberfläche in Google Chrome für Windows:
- App-Symbol > Optionen
- Wählen Sie den Tab Under the Hood (Unter der Haube) aus.
- Scrolle nach unten zu Webinhalte.
- Klicken Sie auf Schriftart- und Spracheinstellungen ändern.
- Wählen Sie den Tab Sprachen aus.
- Stellen Sie über das Drop-down-Menü die Google Chrome-Sprache ein.
- Chrome neu starten
Mac OS X
Wenn Sie das Gebietsschema auf einem Mac ändern möchten, verwenden Sie die Systemeinstellungen.
- Wählen Sie im Apple-Menü die Systemeinstellungen aus.
- Wählen Sie im Bereich Persönlich die Option International aus.
- Sprache und Standort auswählen
- Chrome neu starten
Linux
Wenn Sie das Gebietsschema unter Linux ändern möchten, beenden Sie zuerst Google Chrome. Legen Sie dann in einer einzigen Zeile die Umgebungsvariable LANGUAGE fest und starten Sie Google Chrome. Beispiel:
LANGUAGE=es ./chrome
ChromeOS
So ändern Sie das Gebietsschema unter ChromeOS:
- Wählen Sie in der Taskleiste Einstellungen aus.
- Wählen Sie im Bereich Sprachen und Eingabe das Drop-down-Menü Sprache aus.
- Wenn Ihre Sprache nicht aufgeführt ist, klicken Sie auf Sprachen hinzufügen und fügen Sie sie hinzu.
- Klicken Sie nach dem Hinzufügen neben der Sprache auf das Dreipunkt-Menü Weitere Aktionen und wählen Sie ChromeOS in dieser Sprache anzeigen aus.
- Klicken Sie auf die Schaltfläche Neu starten, die neben der eingestellten Sprache angezeigt wird, um ChromeOS neu zu starten.
Beispiele
Einfache Beispiele für die Internationalisierung finden Sie im Verzeichnis examples/api/i18n. Ein vollständiges Beispiel finden Sie unter examples/extensions/news. Weitere Beispiele und Hilfe beim Anzeigen des Quellcodes finden Sie unter Beispiele.
Beispiele: getMessage
Im folgenden Code wird eine lokalisierte Nachricht vom Browser abgerufen und als String angezeigt. Dabei werden zwei Platzhalter in der Nachricht durch die Strings „string1“ und „string2“ ersetzt.
function getMessage() {
var message = chrome.i18n.getMessage("click_here", ["string1", "string2"]);
document.getElementById("languageSpan").innerHTML = message;
}
So stellen Sie einen einzelnen String bereit und verwenden ihn:
// 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."
}
}
}
Weitere Informationen zu Platzhaltern finden Sie auf der Seite Gebietsschemaspezifische Nachrichten. Details zum Aufrufen von getMessage() finden Sie in der API-Referenz.
Beispiel: getAcceptLanguages
Mit dem folgenden Code werden die Accept-Languages aus dem Browser abgerufen und als String angezeigt, wobei die einzelnen Accept-Languages durch „,“ getrennt werden.
function getAcceptLanguages() {
chrome.i18n.getAcceptLanguages(function(languageList) {
var languages = languageList.join(",");
document.getElementById("languageSpan").innerHTML = languages;
})
}
Details zum Aufrufen von getAcceptLanguages() finden Sie in der API-Referenz.
Beispiel: detectLanguage
Mit dem folgenden Code werden bis zu drei Sprachen aus dem angegebenen String erkannt und das Ergebnis als durch Zeilenumbrüche getrennte Strings angezeigt.
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;
});
}
Weitere Informationen zum Aufrufen von detectLanguage(inputText) finden Sie in der API-Referenz.
Typen
LanguageCode
Ein ISO-Sprachcode wie en oder fr. Eine vollständige Liste der von dieser Methode unterstützten Sprachen finden Sie unter kLanguageInfoTable. Bei einer unbekannten Sprache wird und zurückgegeben. Das bedeutet, dass [percentage] des Textes für CLD unbekannt sind.
Typ
String
Methoden
detectLanguage()
chrome.i18n.detectLanguage(
text: string,
callback?: function,
): Promise<object>
Erkennt die Sprache des angegebenen Texts mithilfe von CLD.
Parameter
-
Text
String
Nutzereingabe-String, der übersetzt werden soll.
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(result: object) => void
-
Ergebnis
Objekt
LanguageDetectionResult-Objekt, das die Zuverlässigkeit der erkannten Sprache und ein Array von DetectedLanguage enthält
-
isReliable
boolean
Zuverlässigkeit der von CLD erkannten Sprache
-
Sprachen
object[]
Array von „detectedLanguage“
-
Sprache
String
-
Prozentsatz
Zahl
Der Prozentsatz der erkannten Sprache
-
-
-
Ausgabe
-
Promise<object>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getAcceptLanguages()
chrome.i18n.getAcceptLanguages(
callback?: function,
): Promise<LanguageCode[]>
Ruft die Accept-Languages des Browsers ab. Dies unterscheidet sich von der vom Browser verwendeten Sprache. Verwenden Sie i18n.getUILanguage, um die Sprache abzurufen.
Parameter
-
callback
Funktion optional
Der Parameter
callbacksieht so aus:(languages: string[]) => void
-
Sprachen
String[]
Array von LanguageCode
-
Ausgabe
-
Promise<LanguageCode[]>
Chrome 99 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
getMessage()
chrome.i18n.getMessage(
messageName: string,
substitutions?: any,
options?: object,
): string
Ruft den lokalisierten String für die angegebene Nachricht ab. Wenn die Nachricht fehlt, wird mit dieser Methode ein leerer String ('') zurückgegeben. Wenn das Format des getMessage()-Aufrufs falsch ist, z. B. wenn messageName kein String ist oder das Array substitutions mehr als 9 Elemente enthält, wird mit dieser Methode undefined zurückgegeben.
Parameter
-
messageName
String
Der Name der Nachricht, wie in der Datei
messages.jsonangegeben. -
Substitutionen
beliebig optional
Bis zu 9 Ersetzungsstrings, falls für die Nachricht erforderlich.
-
Optionen
object optional
Chrome 79 und höher-
escapeLt
Boolesch optional
Escape-Sequenz
<in der Übersetzung in<. Dies gilt nur für die Nachricht selbst, nicht für die Platzhalter. Entwickler sollten diese Option verwenden, wenn die Übersetzung in einem HTML-Kontext verwendet wird. Wenn Sie Closure Templates mit Closure Compiler verwenden, wird dies automatisch generiert.
-
Ausgabe
-
String
Meldung, die für das aktuelle Gebietsschema lokalisiert wurde.
getUILanguage()
chrome.i18n.getUILanguage(): string
Ruft die Sprache der Browser-Benutzeroberfläche ab. Dies unterscheidet sich von i18n.getAcceptLanguages, das die bevorzugten Nutzersprachen zurückgibt.
Ausgabe
-
String
Der Sprachcode der Browser-Benutzeroberfläche, z. B. „en-US“ oder „fr-FR“.