本地化objc m文件

Localize_M的Python项目详细描述


本地化:轻松本地化objc.m文件

本地化有助于本地化objc.m文件。它有两个 模式:

  1. 以交互方式分析文件,并询问每个字符串是否 应该本地化(--ask-all选项)。
  2. 自动分析文件并替换每个@"..."string 前缀为__LOCALIZE的本地化版本。此模式可以 以完全自动化的方式运行,或者在使用-c选项时, localize_m将要求您编辑slug并提供注释 为了翻译。

本地化为每个@"..."string插入以下代码 选择替换:

NSLocalizedStringWithDefaultValue(<slug>, kDefaultLocalizationTable, kClassBundle, @"...", @"...")

我们使用这个函数而不是nsLocalizedString,因为它提供了完整的 灵活性,并提供翻译的意见。事实上,我们没有 建议使用nsLocalizedString。

鼻塞和定位id

本地化从字符串自动生成段塞 翻译的标识符。格式化代码%@%d等 在你的鼻涕虫中被[]代替,以便于阅读。为什么我们要用 鼻涕虫身份证?

  1. slug应该唯一地描述字符串。即使你有相同的 @“example”字符串位于代码中的多个位置,您可能希望 能用“voorbeeld”和“bijv”翻译成荷兰语。 另一个地方。所以如果你用鼻涕虫example-long-formexample-short-form,您可以在两者之间进行区分
  2. 帮助你抵御编辑ID的诱惑。永远不要编辑ID, 当你的字符串被翻译时。

提示:

在project.pch预编译头中定义:

#define __LOCALIZE
#define kClassBundle [NSBundle bundleForClass:[self class]]
#define kDefaultLocalizationsTable nil

这可以确保您的项目能够编译,即使您已经将 __LOCALIZEs在您的代码中,尚未运行本地化脚本 但是我们使用[NSBundle bundleForClass:[self class]],以便 项目与框架兼容。您可以手动覆盖 当您要使用另一个 比默认的localizations.strings文件。

用法

localize_m [-h] [-p PATH] [-o [outfile]] [-a] [-c] [--inplace]
           [--table TABLE] [--bundle BUNDLE] [--replace REPLACE]
           [infile]

Input:
  -p PATH, --path PATH  localize all .m files in path
  infile                Input .m file
  -o [outfile], --outfile [outfile]
                        Output file, otherwise stdout
  -a, --ask-all         ask for all strings (interactive))
  -c, --comments        ask for comments and ids (interactive)
  --inplace             localize file in-place

Customization:
  --table TABLE         custom localizations table argument
  --bundle BUNDLE       custom NSBundle argument
  --replace REPLACE     Auto localization prefix string

安装

本地化使用python,默认情况下,python安装在每个mac上。使用 要安装的PIP:

# pip install localize_m
Collecting localize-m
  Downloading Localize_M-1.0.tar.gz
Collecting colored (from localize-m)
  Using cached colored-1.2.1.tar.gz
Collecting slugify (from localize-m)
  Using cached slugify-0.0.1.tar.gz
Collecting gnureadline (from localize-m)
  Using cached gnureadline-6.3.3-cp27-none-macosx_10_6_intel.whl
Installing collected packages: colored, slugify, gnureadline, localize-m
  Running setup.py install for colored
  Running setup.py install for slugify
  Running setup.py install for localize-m
Successfully installed colored-1.2.1 gnureadline-6.3.3 localize-m-1.0 slugify-0.0.1

#

示例

一个文件

# cd project/src
# localize_m MainViewController.m --comments --inplace

所有m个文件

localize_m -p ./ --comments

你可以浏览所有文件。按ctrl-c保存更改并 退出只要重新开始本地化,就可以恢复到原来的位置。

定制

# localize_m MainViewController.m --table '@"MyTable"' --bundle '[NSBundle mainBundle]'

使用@"MyTable"字符串作为本地化稳定参数,并 [NSBundle mainBundle]作为 nsLocalizedStringWithDefualtFormat功能。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从JSP或HTML向servlet发送多个参数   java方法来查看字符是否在字符数组中   使用带有java的MAC地址连接到设备   java如何将csv文件中的数据打印到secondactivity?   java如何从netbean 7.0.1连接到数据库   java考虑所有可能的类值,用于输出测试分割的预测值。   java我的actionListener调用有什么问题   swing在Java中实现粒子过滤器最有效的方法是什么?   java运行。getFontFamily()为返回null。使用apachepoi的docx文件   一个事务中的java领域循环与每个步骤循环中的一个事务   java日期格式与Spring Boot不兼容   java类冲突。处理   java GridBagLayout不工作   java将图像发送到另一个应用程序