我正在尝试为我的应用添加一种语言,直到现在它还在运行.经过一天试图了解发生了什么,我放弃了.
这是我的问题:
我的基础语言是英语(开发语言),我的另一种语言是法语.我在Main.storyboard和Localizable.strings中有一些可本地化的字符串.
导出工作,没有问题,但当我尝试导入Xcode我有相同的warking:不匹配的翻译,然后如果我导入,没有任何变化: 我没有关于这个不匹配的翻译的信息
有人有任何想法帮助我?
Localizeable.strings如果字符串被转换为 ,如何将 Unicode 转义序列添加到文件中的字符串中NSString?
这是一个(丑陋的)例子:
// Localized string: "\u{200F}Number %@" = "\u{200E}Number %@";
let string = NSMutableAttributedString(string: NSString(format: NSLocalizedString("Number %@", comment: "") as NSString, aNumber as NSNumber)) as String
Run Code Online (Sandbox Code Playgroud)
从这个问题我了解到问题是Localizeable.strings和的不兼容转义序列NSString。
直接在文件中添加 unicode 字符Localizeable.strings不是一个选项,因为我需要插入不是可打印字符的双向语义标记。在大多数翻译程序中它们也会丢失。
我该如何解决这个问题?
我有:
-(IBAction)about {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"About", @"Title of AlertView")
message:@"App name \n© My name \n2010"
delegate:self
cancelButtonTitle:NSLocalizedString(@"Back", @"Cancel Button Title")
otherButtonTitles:nil];
[alert show];
[alert release];
}
Run Code Online (Sandbox Code Playgroud)
在Localizable.strings中:
/* Title of AlertView */
"About" = "Über";
/* Cancel Button Title */
"Back" = "Zurück";
Run Code Online (Sandbox Code Playgroud)
我的问题:当语言是德语时它是德语但是当我将语言改为英语时,警报视图仍然是德语
怎么了?
我正在使用NSLocalizedString函数来更改UIButton的语言
reset.titleLabel.text=NSLocalizedString(@"Reset", nil);
Run Code Online (Sandbox Code Playgroud)
我把这一行的viewDiLoad,viewWillAppear,viewDidAppear,viewDidDisappear和viewWillDisappear
当View加载时,文本的本地化版本出现,当我单击按钮时,文本将更改回Storyboard中按钮上的原始文本,然后在加载以下视图之前再次返回到本地化语言(即使是标题也永远不会改变这些阶段的价值!)
我看到其中一个解决方案是拥有故事板的本地化版本,但我不想这样做,因为我必须维护所有本地化版本......任何其他解决方案?
在iOS中,如果用户[NSLocale currentLocale]不使用阿拉伯数字(即不是0123456789),我想执行一些特定的功能.我该如何检查这种情况?
我想更改我的应用程序的语言.目前我正在以下列方式进行.我有两个按钮可以更改NSUserDefaults中的语言.但在此之前影响我的应用程序,我需要重新启动它.
这是我的代码.
- (IBAction)changeDutch:(id)sender {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"nl", @"en", nil] forKey:@"AppleLanguages"];
}
- (IBAction)changeEnglish:(id)sender {
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", @"nl", nil] forKey:@"AppleLanguages"];
}
Run Code Online (Sandbox Code Playgroud)
这很好用.但我不希望每次都重启我的应用程序.谁能告诉我怎么做?
亲切的问候!
我在iOS 7中使用本地化,并具有德语和英语的可本地化字符串文件.当我选择相应的语言时,本地化工作是完美的.但如果我切换到任何其他语言,则显示基于先前的选择.
我希望它选择任何其他语言选择的英语,任何想法将不胜感激.
我如何使用NSLocalizedString构建具有多个参数的字符串,同时让翻译器控件根据需要更改顺序?
我的Localizable.string中的一个示例是:
"score_out_of"="Your score is %i out of %i";
Run Code Online (Sandbox Code Playgroud)
并且会像
[NSString stringWithFormat:NSLocalizedString(@"score_out_of", nil), correct, total];
Run Code Online (Sandbox Code Playgroud)
但是在某些语言环境中,语法规则可能会规定总数必须正确。在目标C中,插值顺序似乎是硬编码的。
在其他语言中,这是通过命名参数来实现的,例如在ruby中将其定义为:
out_of: "Your score is %{correct} out of %{total}"
Run Code Online (Sandbox Code Playgroud)
并像这样调用:
I18n('out_of', {total: total, correct: correct})
Run Code Online (Sandbox Code Playgroud)
在iOS / Objective C上完成相同任务的推荐方法是什么?
localization objective-c internationalization nslocalizedstring ios
我不是Swift的新手,也不是Objective-C的新手,但是我Error今天看到一些奇怪的行为,这使得我更深入地挖掘了一个子类型.
使用NSString子类时(是的,下面的示例函数类似于不基于的类NSObject):
import Foundation
// Class version
class OddString : NSString {
override var description: String {
return "No way, José"
}
}
let odd = OddString()
func printIt(_ string: NSString) {
print(string.description)
}
print(odd.description)
printIt(odd)
Run Code Online (Sandbox Code Playgroud)
我看到了我期望看到的东西:
No way, José
No way, José
Run Code Online (Sandbox Code Playgroud)
但是,当我使用struct()编写(我认为是)等效代码时Error:
import Foundation
// Struct version
struct TestError : Error {
var localizedDescription: String {
return "I am a TestError"
}
}
let explosive = …Run Code Online (Sandbox Code Playgroud) 我正在尝试显示包含参数的本地化字符串。结果不是在一行中显示嵌入参数的字符串,而是一个断开的 3 行字符串:
预期结果:
The price is $9.99/year.
Run Code Online (Sandbox Code Playgroud)
结果:
The price is (
"$9.99"
)/year.
Run Code Online (Sandbox Code Playgroud)
Localizable.strings:
"price_string" = "The price is %@/year.";
Run Code Online (Sandbox Code Playgroud)
称呼:
"price_string".localized(priceString)
Run Code Online (Sandbox Code Playgroud)
其中priceString是一个字符串变量。
并.localized()定义如下:
extension String {
var localized: String {
return NSLocalizedString(self, comment: "\(self)_comment")
}
func localized(_ args: CVarArg...) -> String {
return String(format: localized, args)
}
}
Run Code Online (Sandbox Code Playgroud) ios ×7
objective-c ×4
localization ×3
swift ×2
cocoa-touch ×1
dynamic ×1
ios7 ×1
iphone ×1
mismatch ×1
nslocale ×1
nsstring ×1
storyboard ×1
struct ×1
translation ×1
unicode ×1
xcode ×1