2009-02-25 3 views

Antwort

67

I + (ca. 18 Zeichen) + N = Internationalisierungs

L18N sicher bedeutet, dass Schritte bei der Konstruktion und Entwicklung genommen wurden, die Lokalisierung (L10N) zu einem späteren Zeitpunkt erleichtert.

+12

Interessanterweise ist die Bezeichnung I18N I18N-sicher, weil sie die s/z UK/US-Sache vermeidet. –

+1

Sehr nützlich. Vielen Dank! –

5

I18N steht für Internationalisierung.

7

Internationalisierung. Die Ableitung davon ist "der Buchstabe I, achtzehn Buchstaben, der Buchstabe N".

7

i18n bedeutet i nternationalizatio n => i (18 Buchstaben) n. Code, der als i18n safe markiert ist, wäre ein Code, der Nicht-ASCII-Zeichendaten (z. B. Unicode) korrekt verarbeitet.

+5

Und häufig, Code, der Zeichenfolgen in einer separaten Datei, die ausgelagert werden kann, statt im Quellcode. –

1

Ohne weitere Informationen würde ich vermuten, dass dies bedeutet, dass der Code Text als UTF8 behandelt und Gebietsschema-bewusst ist. Weitere Informationen finden Sie unter this Wikipedia article.

Können Sie etwas genauer sein?

+0

Da ich in einer pedantischen Stimmung bin - könnte es den Text wie jeder Unicode nicht nur UTF8 behandeln. UTF7 oder UTF16 würde genauso gut funktionieren. – MarkJ

11

Dies wird meistens auf einen Code oder ein Konstrukt verwiesen, das für I18N bereit ist - d.h. leicht durch übliche I18N-Techniken unterstützt wird. Zum Beispiel ist folgende bereit:

printf(loadResourceString("Result is %s"), result); 

während des folgenden nicht:

printf("Result is " + result); 

, weil das Wort, um in verschiedenen Sprachen unterschiedlich sein kann. Unicode-Unterstützung, internationale Datum-Uhrzeit-Formatierung und Ähnliches sind ebenfalls möglich.

EDIT: LoadResourceString hinzugefügt, um ein Beispiel zu geben, das dem wirklichen Leben nahe kommt.

+0

Warum ist diese zweite nicht die gleiche wie die erste? Wird das Ergebnis nicht einfach anstelle von% s eingefügt? – stimms

+0

Es tut ABER der zweite ermöglicht es Ihnen, die Zeichenfolge zu Ressourcen einfach zu verschieben und Wörter neu anzuordnen. Sie können es dann übersetzen, wie zum Beispiel „% s является результатом“ (auf Russisch) - bemerkt unterschiedliche Wortfolge, können Sie nicht das erste Formular direkt. –

+0

Große Antwort. Das ist GENAU was i18n-sicher bedeutet. Es bezieht sich normalerweise auf Funktionen wie diese. statt; –

1

I18N steht für Internationalization.

Kurz gesagt: I18N sicherer Code bedeutet, dass es eine Art Lookup-Tabelle für Texte auf der Benutzeroberfläche verwendet. Dazu müssen Sie Nicht-ASCII-Kodierungen unterstützen. Dies scheint einfach zu sein, aber es gibt einige gotchas.

3

i18n ist eine Abkürzung für "Internationalisierung". Dies wurde bei DEC geprägt und verwendet tatsächlich Kleinbuchstaben i und n.

Als Nebenbemerkung: L10n steht für „Lokalisierung“ und nutzt Kapital L es aus dem Klein i zu unterscheiden.

1

i18n-Safe ist ein vages Konzept. Es bezieht sich im Allgemeinen auf Code, der in internationalen Umgebungen funktioniert - mit verschiedenen Ländereinstellungen, Tastaturen, Zeichensätzen usw. Ein echter i18n-sicherer Code ist schwer zu schreiben.

Es bedeutet, dass Code nicht verlassen können:

sizeof (char) == 1

, weil dieses Zeichen ein UTF-32 4-Byte-Zeichen sein könnte, oder ein UTF-16 2-Byte-Zeichen und belegen mehrere Bytes.

Es bedeutet, dass Code nicht auf die Länge einer Zeichenfolge basieren kann, die der Anzahl der Bytes in einer Zeichenfolge entspricht. Dies bedeutet, dass sich der Code nicht auf null Bytes in einer Zeichenfolge verlassen kann, die einen Nullterminator angibt. Es bedeutet, dass Code nicht einfach ASCII-Codierung von Textdateien, Zeichenfolgen und Eingaben annehmen kann.

0

i18n befasst sich mit - Umzug hartcodierte Strings aus dem Code (nicht alle sollten übrigens sein), so dass sie lokalisiert/übersetzt werden können (Lokalisierung == L10n), wie andere hingewiesen haben, und auch behandelt - locale empfindliche Methode, wie --methods mit Text zu tun Handhabung (wie viele Worte in einem japanischen Text weit offensichtlich :) ist, um/Sortierung in verschiedenen Sprachen/Schreibsystemen, --dealing mit Datum/Uhrzeit (das einfachstes Beispiel zeigt am/pm für die USA, 24 h Uhren für Frankreich zum Beispiel, geht auf komplexere Kalender für bestimmte Länder), mit arabisch oder Hebräisch (Orientierung von UI --dealing, Text, etc.), - Codierung, wie andere darauf hingewiesen haben --da Tabase Probleme ist es ein ziemlich umfassender Winkel. Der Umgang mit "String Externalisation" ist bei weitem nicht genug.

Einige (Software-) Sprachen sind besser als andere, wenn es Entwicklern hilft, i18n-Code zu schreiben (dh Code, der auf verschiedenen Gebietsschemas läuft), aber es bleibt eine Software-Engineering-Verantwortung.

0

"I18N Safe" -Codierung bedeutet der Code, der keine I18N-Bugs verursacht. L18N ist ein Numeronym für Internationalisierung, wo es 18 Zeichen zwischen I und N.

Es gibt mehrere Kategorien von Fragen im Zusammenhang mit i18n Zusammenhang wie: Kultur Format: Datum Zeit Formate (TT/MM/JJ in Großbritannien und MM/DD/YY in den USA), Zahlenformate, Zeitzone, Messeinheiten wechseln von Kultur zu Kultur. Die Daten müssen akzeptiert, verarbeitet und im richtigen Format für die richtige Kultur/das richtige Gebietsschema angezeigt werden. Internationale Zeichen Unterstützung: Alle Zeichen aus allen verschiedenen Sprachen sollten korrekt akzeptiert, verarbeitet und angezeigt werden. Lokalisierbarkeit: Die zu übersetzenden Strings sollten kein fester Code sein. Sie sollten in Ressourcendateien externalisiert werden.

"I18N Safe" -Codierung bedeutet, dass keines der obigen Probleme durch die Art und Weise, wie der Code geschrieben wird, eingeführt wird.