iPhone本地化:简单的项目不工作
问题描述:
我正在做我的第一个本地化项目,我一直与它战斗了几个小时,没有运气。iPhone本地化:简单的项目不工作
我必须创建一个基于用户选择的应用程序,以不同语言显示文本和图像。
我已经阅读了关于此事的大部分Apple文档,但我无法做出一个简单的示例工作。
这是我到目前为止的步骤:
1)创建一个新项目。
2)手动在项目文件夹中创建一个“en.lproj”目录。
3)使用名为“Localizable.strings”的TexEdit创建文件并将其存储为Unicode UTF-16。该文件是这样的:
/*
Localizable.strings
Multilanguage02
Created by Gonzalo Floria on 5/6/10.
Copyright 2010 __MyCompanyName__. All rights reserved.
*/
"Hello" = "Hi";
"Goodbye" = "Bye";
4)我拖到这个文件到资源文件夹上的Xcode和它的“子目录”“恩”它下面(有下拉三角左侧)出现。如果我试图在XCode上看到它,它看起来都错了,很多很多?符号,但我猜这是因为它的UTF-16文件。对?
5)现在对我的看法没有负载我可以访问此字符串是这样的:
NSString *translated;
translated = NSLocalizedString(@"Hello", @"User greetings");
NSLog(@"Translated text is %@",translated);
我的问题是,允许用户切换语言。我用Localizable.strings文件(用西班牙文)创建了一个es.lproj,但是我可以访问它。
我已经试过这条线:
[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"es", nil] forKey:@"AppleLanguages"];
但是,这只能下一次您加载应用程序。有没有办法让用户在运行应用程序时切换语言?
我是否必须实现我自己的Dictionary文件并忘记了关于NSLocalizableString系列的所有内容?
感谢您的任何建议或指针。
Gonso
答
已经有一个关于here讨论。
他们的建议是创建一个子束,然后用它来 称为NSLocalizedStringFromTableInBundle(...)
(如在reference manual描述)的方法得到的特定表中的本地化字符串中束。
我只是给你一个预感,我还没有尝试,但是,我想这可能是一个面对你的问题的好方法。
嗨,我正在寻找一种方法来更改NSLocalizableStrings的语言。你找到解决方案吗? – Daniel 2010-10-27 12:52:45