#string #elasticsearch #localization #ios #dump #index #file

app lproj2es

将iOS本地化字符串导出到ElasticSearch

2个不稳定版本

使用旧的Rust 2015

0.2.0 2017年4月20日
0.1.0 2017年4月16日

#2083数据库接口

每月21次下载

MIT 许可证

40KB
725

lproj2es

lproj2es 是一个实用程序,用于提取所有本地化字符串 *.lproj/*.strings 到ElasticSearch索引中以便于查找。这使得翻译者可以使用苹果认可的字词来生成本地化。

加载iOS根文件系统

  1. https://ipsw.me 下载一个IPSW。现在的IPSW通常超过2 GB,所以请确保您有足够的时间下载文件,以及足够的硬盘空间来存储和解压缩它。

  2. 将IPSW解压缩以提取根文件系统映像(文件名因iOS版本而异)。

    $ unzip iPhone_7Plus_10.3.1_14E304_Restore.ipsw 058-55433-171.dmg
    
  3. 附加映像。

    $ open 058-55433-171.dmg
    

构建索引

  1. 启动ElasticSearch集群。我们假设ElasticSearch可通过 http://127.0.0.1:9200 访问。

  2. 运行程序。在本地机器上使用ElasticSearch通常不到3分钟就能完成。

    $ ./lproj2es /Volumes/Erie14E304.D11D111OS/
    

文档结构

索引的翻译存储在 localizations 索引中,使用 ios 类型,1个副本和1个分片。每个文档看起来像

{
    "BUNDLE": "/Volumes/Erie14E304.D11D111OS/System/Library/CoreServices/SpringBoard.app",
    "FILE": "SpringBoard.strings",
    "KEY": "AWAY_LOCK_LABEL",
    "en_US": "slide to unlock",
    "fr_FR": "Déverrouiller",
    "es_ES": "Deslizar para desbloquear",
    "de_DE": "Entsperren",
    ...
}

BUNDLE 字段指定了翻译所属的包。 FILE 字段给出了包含翻译的 *.strings 文件。文档将 *.strings 文件中的单个键值对编码到文档中,键在 KEY 字段中,值在各自的locale-id字段中(en_USfr_FR 等。)

选项

lproj2es 0.1.0
kennytm <kennytm@gmail.com>
Dump iOS localization strings into ElasticSearch

USAGE:
    lproj2es [OPTIONS] <root>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -u, --url <base>             Acesss point of the ElasticSearch cluster [default: http://127.0.0.1:9200]
    -i, --index <index>          Name of the index [default: localizations]
    -t, --type <type_>           Name of the type [default: ios]
        --shards <shards>        Number of shards of the new index [default: 1]
        --replicas <replicas>    Number of replicas of the new index [default: 1]

ARGS:
    <root>    Root directory to scan for localized bundles

依赖项

~14MB
~274K SLoC