Как извлечь строки из plist файлов для перевода (локализации)? - PullRequest
3 голосов
/ 08 июня 2011

Мне нужно подготовить список строк для перевода моего приложения для iPhone. Я извлек строки из файлов *. M, используя genstring и , из файлов XIB, используя команду ibtool .

Но у меня также есть много текстов для перевода в plist-файлах (типы строковых полей заключены в тег string ). Есть хороший сценарий / команда bash для извлечения этих строк в плоский текстовый файл? Я мог бы просмотреть и отфильтровать его, чтобы мои переводчики могли работать с красивым списком, но не с чужим XML-файлом.

Ответы [ 4 ]

2 голосов
/ 05 августа 2011

Я сделал собственный скрипт оболочки, который пытается выяснить необходимые значения. Затем вы можете использовать скрипт localize.py измененным способом (см. Ниже) для автоматического создания файлов перевода. (Разрыв строки где-то очень важен) Если нужно перевести больше сущностей, сценарий оболочки может быть изменен соответствующим образом

#!/bin/bash

rm -f $2

sed -n 'N;/<key>Title<\/key>/{N;/<string>.*<\/string>/{s/.*<string>\(.*\)<\/string>.*/\/*     \1 *\/\
"\1" = "\1";\
/p;};}' $1 >> $2

sed -n 'N;/<key>FooterText<\/key>/{N;/<string>.*<\/string>/{s/.*<string>\(.*\)<\/string>.*/\/* \1 *\/\
\"\1" = "\1";\
/p;}
;}' $1 >> $2

sed -n 'N;/<key>Titles<\/key>/{N;/<array>/{:a
N;/<\/array>/!{
/<string>.*<\/string>/{s/.*<string>\(.*\)<\/string>.*/\/* \1 *\/\
\"\1" = "\1";\
/p;}
ba
;};};}' $1 >> $2

скрипт localize.py нуждался в некоторой модификации. Поэтому Я создал небольшой пакет , содержащий локализатор для исходного кода и файлов plist. Новый скрипт даже поддерживает Duplikates (то есть он их пинает)

1 голос
/ 14 октября 2011

Мы недавно сделали небольшое онлайн-приложение для этого, пожалуйста, посмотрите: http://www.icapps.be/plist-translator/

0 голосов
/ 08 июня 2011

Это помогает?http://www.icanlocalize.com/site/tutorials/how-to-translate-plist-files/

Мы предпочитаем платить клиентам, которые используют нашу систему перевода с нашими переводчиками, но вы можете перевести себя в нашем графическом интерфейсе бесплатно.

0 голосов
/ 08 июня 2011

Я не могу придумать ни одной команды на моей голове. Однако списки рассылки представляют собой прославленные XML-файлы, и для них доступны различные парсеры.

Не должно быть слишком сложно создать простой скрипт на Python, чтобы получить все строки из файла.

...