2016-03-11 7 views
5

Gibt es eine Möglichkeit, lokalisierte Strings in einen iOS-Spielplatz zu bekommen? Ich habe eine Reihe von Rechts-nach-links-Übersetzungen, die Formatcodes enthalten, die ich mit einem Hex-Editor bearbeiten musste (um sicherzustellen, dass die Codes in der richtigen Byte-Reihenfolge waren), und ich möchte die Ausgabe der formatierten Zeichenfolge manuell untersuchen um sicherzustellen, dass es funktioniert.Testen von Lokalisierungen in einem iOS-Spielplatz

Nebenbei, gibt es Mac OS Texteditoren, mit denen Sie Arabisch und Hebräisch im Links-nach-Rechts-Modus anzeigen können?

Antwort

0

Swift 3: Spielplatz Beispiel für die Prüfung Lokalisierungen

//: Playground - noun: a place where people can play 

import UIKit 

//current locale identifier 
NSLocale.current.identifier //"en_US" 

//available identifiers 
NSLocale.availableLocaleIdentifiers //["eu", "hr_BA", "en_CM", "en_BI" ...] 

// particular locales  
let unitedStatesLocale = NSLocale(localeIdentifier: "en_US") 
let chinaLocale = NSLocale(localeIdentifier: "zh_Hans") 
let germanyLocale = NSLocale(localeIdentifier: "de_DE") 
let indiaLocale = NSLocale(localeIdentifier: "en_IN") 
let arabicLocale = NSLocale(localeIdentifier: "ar") 
let hebrewLocale = NSLocale(localeIdentifier: "he") 

//called in English 
unitedStatesLocale.displayName(forKey: NSLocale.Key.identifier, value: unitedStatesLocale.localeIdentifier)! //"English (United States)" 
unitedStatesLocale.displayName(forKey: NSLocale.Key.identifier, value: chinaLocale.localeIdentifier)! //"Chinese (Simplified)" 
unitedStatesLocale.displayName(forKey: NSLocale.Key.identifier, value: germanyLocale.localeIdentifier)! //"German (Germany)" 
unitedStatesLocale.displayName(forKey: NSLocale.Key.identifier, value: indiaLocale.localeIdentifier)! //"English (India)" 
unitedStatesLocale.displayName(forKey: NSLocale.Key.identifier, value: arabicLocale.localeIdentifier)! //"Arabic" 
unitedStatesLocale.displayName(forKey: NSLocale.Key.identifier, value: hebrewLocale.localeIdentifier)! //"Hebrew" 

//particular locale called in german 
germanyLocale.displayName(forKey: NSLocale.Key.identifier, value: unitedStatesLocale.localeIdentifier)! //"Englisch (Vereinigte Staaten)" 

//particular locale called in arabic 
arabicLocale.displayName(forKey: NSLocale.Key.identifier, value: unitedStatesLocale.localeIdentifier)! //"الإنجليزية (الولايات المتحدة)" 

//particular locale called in hebrew 
hebrewLocale.displayName(forKey: NSLocale.Key.identifier, value: unitedStatesLocale.localeIdentifier)! //"אנגלית (ארצות הברית)" 

//representing Numbers 
let pi:NSNumber = 3.14159265358979 
var numberFormatter = NumberFormatter() 
numberFormatter.numberStyle = NumberFormatter.Style.decimal 

//differences in formatting in various locales 
numberFormatter.locale = unitedStatesLocale as Locale! 
numberFormatter.string(from: pi) //"3.142" 

numberFormatter.locale = chinaLocale as Locale! 
numberFormatter.string(from: pi) //"3.142" 

numberFormatter.locale = germanyLocale as Locale! 
numberFormatter.string(from: pi) //"3,142" 

numberFormatter.locale = indiaLocale as Locale! 
numberFormatter.string(from: pi) //"3.142" 

numberFormatter.locale = arabicLocale as Locale! 
numberFormatter.string(from: pi) //"٣٫١٤٢" 

numberFormatter.locale = hebrewLocale as Locale! 
numberFormatter.string(from: pi) //"3.142" 
+0

Danke für die Antwort - ich war eigentlich auf der Suche nach einer Möglichkeit, meine Anwendung String-Dateien zu verwenden, aber nicht eine einzelne Zeichenfolge in mehreren Gegenden drucken . – JustinHK