我(像所有其他人)使用NSLocalizedString本地化我的应用程序。 不幸的是,有几个“缺陷”(不一定是NSLocalizedString本身的错误),包括 Xcode中的string没有自动完成。 这使得工作不仅容易出错,而且令人厌烦。 你可能最终会重新定义一个string,因为你不知道一个等价的string已经存在(即“请input密码”与“先input密码”) 与自动完成问题类似,您需要“记住”/ copypaste注释string,否则genstring最终会以一个string的多个注释 如果您想要在使用genstring之后已经对某些string进行了本地化,则必须小心谨慎,以免丢失旧的本地化版本。 相同的string分散在整个项目中。 例如,您在任何地方都使用了NSLocalizedString(@"Abort", @"Cancel action") ,然后Code Review会要求您将该string重命名为NSLocalizedString(@"Cancel", @"Cancel action")以使代码更一致。 我所做的(在做了一些search之后,我觉得很多人都这样做)是有一个单独的strings.h文件,我定义了所有的本地化代码。 例如 // In strings.h #define NSLS_COMMON_CANCEL NSLocalizedString(@"Cancel", nil) // Somewhere else NSLog(@"%@", NSLS_COMMON_CANCEL); 这基本上提供了代码完成,一个地方改变variables名称(所以不再需要的genstring),和一个唯一的关键字自动重构。 然而,这是以一大堆没有内在结构的(即像LocString.Common.Cancel或类似的东西)结束的代价为代价的。 所以,虽然这工作得很好,但我想知道你们是如何在你的项目中做到的。 有没有其他的方法来简化使用NSLocalizedString? 有没有可能封装它的框架?
我已经在这个问题上挣扎了好几个月了,但是我还没有遇到过需要去探索所有可能的select的情况。 现在,我觉得是时候了解可能性,并创build我自己的个人喜好,在我即将到来的项目中使用。 首先让我来描述一下我正在寻找的情况 我即将升级/重新开发我已经使用了很长一段时间的内容pipe理系统。 但是,我感觉多语言对这个系统是一个很大的改进。 在我没有使用任何框架之前,我将为即将到来的项目使用Laraval4。 Laravel似乎是更清晰的PHP代码的最佳select。 Sidenote: Laraval4 should be no factor in your answer 。 我正在寻找平台/框架无关的一般翻译方法。 应该翻译什么 由于我所寻找的系统需要尽可能地方便用户,pipe理翻译的方法应该在CMS内部。 应该没有必要启动一个FTP连接来修改翻译文件或任何HTML / PHP分析模板。 此外,我正在寻找翻译多个数据库表的最简单的方法,而不需要制作额外的表格。 我是怎么想出来的 正如我一直在寻找,阅读和尝试自己已经。 我有几个选项。 但是我仍然不觉得自己已经达到了我真正想要的最佳实践方法。 现在,这是我提出的,但这种方法也有它的副作用。 PHPparsing模板 :模板系统应该由PHPparsing。 这样我就可以将翻译的参数插入到HTML中,而不必打开模板并修改它们。 除此之外,PHPparsing的模板使我能够为整个网站提供1个模板,而不是每个语言的子文件夹(我以前有过)。 达到此目标的方法可以是Smarty,TemplatePower,Laravel's Blade或任何其他模板parsing器。 正如我所说,这应该是独立的书面解决scheme。 数据库驱动 :也许我不需要再提这个。 但解决scheme应该是数据库驱动的。 CMS的目标是面向对象和MVC,所以我需要考虑一个逻辑数据结构的string。 由于我的模板将被构造:模板/控制器/ View.php也许这个结构将最有意义: Controller.View.parameter 。 数据库表将具有这些字段与value字段长。 在模板内部,我们可以使用一些sorting方法,如echo __('Controller.View.welcome', array('name', 'Joshua')) ,参数包含Welcome, :name 。 因此,结果是Welcome, Joshua 。 […]
我本地化了我的应用程序的一部分,创build一个base.lproj故事板和3个string文件。 这是一个月前,之后,我添加了新的视图控制器的应用程序,但这个控制器的button和标签不出现在string文件 是否有可能更新这3个故事板附加的string文件或我必须添加新的string翻译编程使用NSLocalizableString和Localizable.strings?
当我创build一个新的Date对象时,它被初始化为当前时间,但在本地时区。 我怎样才能得到格林尼治标准时间的当前date和时间?
我们怎样才能获得Android设备中select的当前语言?
我希望我的应用支持三种语言西class牙语,葡萄牙语和英语。 并给出select应用程序中的语言select 1)3个可绘制文件夹drawable-es,drawable-pt,drawable。 2)3个值文件夹值-es,values-pt,values.Change根据语言的String.xml值。 我有imageViewselectlanguage.When点击菜单打开包含选项英语,西class牙语,葡萄牙语。 我通过此代码在选项select中设置了区域设置 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.en: Locale locale = new Locale("en"); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); Toast.makeText(this, "Locale in English !", Toast.LENGTH_LONG).show(); break; case R.id.pt: Locale locale2 = new Locale("pt"); Locale.setDefault(locale2); Configuration config2 = new Configuration(); config2.locale = locale2; […]
我想根据select的语言创build具有很多翻译路线的应用程序。 我曾经用三种方法在多语种网站上创buildurl来描述它。 在这种情况下,它应该是提到的话题中的第一种方法 : 我有一个默认的语言 我可以有许多其他的语言 目前的语言应该只计算URL(没有cookies/会话),以使它也非常友好的search引擎 对于默认语言,URL中不应该有前缀,其他语言应该是域之后的语言前缀 url的每个部分都应该根据当前的语言进行翻译。 假设我已经设置了默认语言pl和其他两种语言en和fr 。 我只有3页 – 主页,联系页面和关于页面。 网站的url应该这样看: / /[about] /[contact] /en /en/[about] /en/[contact] /fr /fr/[about] /fr/[contact] 而[about]和[contact]则应根据所选的语言进行翻译,例如英文应该保持contact但对于波兰语则应该是kontakt等等。 怎样才能做到尽可能简单?
有没有一个Swift等效的NSLocalizedString(…) ? 在Objective-C ,我们通常使用: NSString *string = NSLocalizedString(@"key", @"comment"); 我怎样才能在Swift中实现相同? 我find了一个函数: func NSLocalizedString( key: String, tableName: String? = default, bundle: NSBundle = default, value: String = default, #comment: String) -> String 但是,这很长,不方便。
我正在尝试为我的应用程序编写一个筛选器函数,它将采用一个inputstring并以某种方式筛选出与给定input不匹配的所有对象。 最简单的方法是使用String的contains方法,即检查对象(对象中的Stringvariables)是否包含filter中指定的string,但是这不包含重音。 有问题的对象基本上是人,我想匹配的string是名字。 因此,例如,如果有人searchJoao,我希望Joáo被包含在结果集中。 我已经在我的应用程序中使用Collator类来按名称进行sorting,并且效果很好,因为它可以进行比较,即使用英国语言区域设置,但是在之前。 但是,如果比较a和á,因为它们不相等,所以它不会返回0。 那么有没有人有任何想法,我可以做到这一点?
我试图使用NSLocalizedString本地化我的应用程序。 当我导入XLIFF文件时,大多数工作像一个魅力,但一些不这样做,一些string没有本地化。 我注意到,问题是从NSLocalizedString里面包含一些variables,如: NSLocalizedString(" – \(count) Notifica", comment: "sottotitolo prescrizione per le notifiche al singolare") 要么 NSLocalizedString("Notifica per \(medicina!) della prescrizione \(prescription!)\nMemo: \(memoTextView.text)", comment: "Messaggio della Local Notification") 也许这不是这种东西的正确语法。 有人可以解释我如何迅速做到这一点? 非常感谢你。