目前我正忙于为我的朋友写一个应用程序。它适用于各种翻译。我试图找出的是如何实现'自定义'本地化。作为一个例子,假设我们有en_US和en_US_Slang,我将如何将后者添加到本地化列表或NSLocalisedString下?可可NIB:自定义EN本地化
为了解释这种情况,这个人正在运行2个独立的应用程序来保存他的乐队的信息。一个是基于MS Access的,另一个是基于Filemaker Pro的(去图?!)
该乐队的各个成员或者在其上使用,或者在另一个上使用。他是唯一一个同时使用两者的人。
目前,当您启动应用程序(Mac App不是iOS)时,它会询问您以前是否是FMP或Access用户。
基于此,本地化的字符串还原为各种应用程序中使用的术语。
即在MSAccess中,乐队演出位置被称为“功能前提”,而在FMP中被称为“演出位置”。为了避免必须重新培训所有人(因为他们为我免费赠送生日演出免费),我认为最快的方法是保留他们习惯的标签,都是一样的。
从我可以计算出它的:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en_Access"] forKey:@"AppleLanguages"];
和
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"en_FMP"] forKey:@"AppleLanguages"];
有人可以证实这一点还是有可能,我会指出我在正确的方向(也许有些苹果文档?)在我深入研究这个问题之前我更愿意找出:)
谢谢
A
另一种解决方法是什么?我试图避免在整个演出中使用if语句对所有内容进行双重编码:D –
有多种选择。没有if语句遍布整个地方,而是用自己的实现替换NSLocalizedString调用。它可以是一个带有额外参数或两种不同方法或OO方法的新方法(例如,定义一个LocalizedStringProvider类并有两个不同的实例,一个用于旧术语,一个用于新术语) – Clafou