2014-12-16 3 views
0

Я хочу, чтобы строки в strings.xml должны быть преобразованы в формат IOS Localizable.stringsКак создать Localizable.strings файл из strings.xml в Android

Формат:

"String"="String" 

Я использовал несколько онлайн-инструментов в Интернете, который преобразует XML в localible.strings, но формат я видел:

"Key"="Value" 

Но мне нужно в этом формате:

"value"="value" 

пример:
, если это файл strings.xml,

<resources> 
    <String name="addtocart">Please add to cart</string> 
    </resources> 

Формат Localizable.strings должен быть:

"Please add to cart"="Please add to cart" (I need this) 

и не

"addtocart"="Please add to cart" (Format resulted from conversion tools in web) 

Есть ли какой-либо плагин или встроенный функционал y в затмении. Я новичок в android и этот процесс локализации.

Может один помочь мне в достижении этой цели, пожалуйста ...

Спасибо заранее.

+0

Вы не можете этого сделать! – Deepzz

ответ

2

Очень простой awk сценарий bash может выполнять свою работу.

awk ' 
BEGIN{ 
    FS = "^ *<string *| *>|<\/string> *$|^ *<!-- *| *--> *$"; 
} 
{ 
    if (/<string.*name\=\".*\".*>.*<\/string> *$/){ 
     print "\""$3 "\" \= \"" $3 "\";" 
    } 
    else if(/<!--.*-->/) 
     print "// "$2; 
    else if(/^ *$/) 
     print "" 
}' 

Сохраните вышеуказанное значение до android2ios.sh. Этот скрипт будет считываться из стандартного потока ввода.

Например, содержимое вашего Android-типа, например <string name="addtocart">Please add to cart</string>, скопировано в буфер обмена, и вы используете OS X в качестве операционной системы.

pbpaste | sh android2ios.sh 

Это напечатает

"Please add to cart" = "Please add to cart"; 

Вы можете сделать редирект и трубы вещь по-своему. Сценарий выполняет только преобразование.

Такие комментарии, как <!--comment--> и многострочный контент, также хорошо обрабатываются этим скриптом.

Кстати, мне нравится "addtocart"="Please add to cart" путь лучше, потому что "value" = "value" может привести к дублированию ключей.

+0

' REGISTER' становится '" REGISTER "=" REGISTER ";', это должно быть '' text_register "=" REGISTER "' Так что я изменил 'print '\" "$ 3" \ "\ = \" "$ 3" \ ";" '' print "\" "$ 2" \ "\ = \" "$ 3" \ ";" 'тогда он становится' "name =" text_register "" = "REGISTER ", тогда я заменил' "name =" 'на" "и' "" = 'to' "=' – Max