Excel의 문장 관리 파일에서 Android/iOS의 문장 데이터 만들기
하고 싶은 일
Android/iOS 응용 프로그램을 동시에 개발하는 상황에서 문장에 차이가 생기지 않도록 문장 관리 파일을 따로 만들 생각입니다.이번에는 Excel 기술 문언으로 파일을 관리하고 안드로이드/iOS의 문언 데이터를 만들어 보려고 합니다.다음은 MacOS High Sierra 환경입니다.
외부 사양
입력 데이터: Excel 파일
출력 데이터:string.xml(Android)、Localizable.settings(iOS)
기능:
입력 데이터: Excel 파일
출력 데이터:string.xml(Android)、Localizable.settings(iOS)
기능:
소프트웨어 사용
xlrd라는 python 라이브러리를 사용하면python으로 Excel 파일을 만들 수 있습니다.
$ pip install xlrd
파일 가져오기
입력한 Excel 파일의 형식은 다음과 같습니다.문장의 ID와 일본어, 영어의 순서 배열의 형식.
Excel의 문자 코드는 UTF16LE입니다.
Excel 파일 가져오기
xlrd를 사용하여 Excel 파일에서 데이터를 읽습니다.Excel 파일은 다음 함수를 통해 읽을 수 있습니다.import xlrd
wb = xlrd.open_workbook('ファイルパス', encoding_override='utf_16_le')
UTF16LE의 경우 지정하지 않아도 되지만 이전 Excel 파일을 열 때는 UTF16LE가 아니므로 인코딩을 지정해야 합니다.
https://xlrd.readthedocs.io/en/latest/unicode.html
Excel 파일에서 워크시트를 여는 방법은 다음과 같습니다.
https://xlrd.readthedocs.io/en/latest/api.html#module-xlrd.book
xlrd를 사용하여 Excel 파일에서 데이터를 읽습니다.Excel 파일은 다음 함수를 통해 읽을 수 있습니다.
import xlrd
wb = xlrd.open_workbook('ファイルパス', encoding_override='utf_16_le')
UTF16LE의 경우 지정하지 않아도 되지만 이전 Excel 파일을 열 때는 UTF16LE가 아니므로 인코딩을 지정해야 합니다.https://xlrd.readthedocs.io/en/latest/unicode.html
Excel 파일에서 워크시트를 여는 방법은 다음과 같습니다.
https://xlrd.readthedocs.io/en/latest/api.html#module-xlrd.book
sheet = wb.sheet_by_name('strings')
Excel 파일 경로와 언어 ("ja", "en") 를 지정한 후 문장 데이터가 생성된 키의 목록과 데이터 목록을 얻을 수 있는 클래스는 다음과 같습니다.class StringBase:
def __init__(self, input_document, lang):
self.input_document = input_document
self.lang = lang
def parse_values_by_language(self, sheet):
titles = sheet.row_values(0)
col = 0
for title in titles:
if title == self.lang:
values = sheet.col_values(col)
del values[0] # remove title of colomn values
return values
else:
col = col + 1
return null
def parse_strings(self):
wb = xlrd.open_workbook(self.input_document, encoding_override='utf_16_le')
sheet = wb.sheet_by_name('strings')
keys = sheet.col_values(0)
del keys[0] # remove title of colomn values
values = self.parse_values_by_language(sheet)
if len(keys) != len(values):
print 'Invalid String Base Excel File !!'
return null,null
return keys, values
Android를 문서 파일로 내보내기
Android는string입니다.xml은 출력 파일입니다. 위의 문장 키와 데이터 목록에서 XML 파일을 만드는 클래스는 다음과 같습니다.python2.7과에서 하는 일도 있고 UTF8을 위해 encode를 합니다.class AndroidFile:
def __init__(self, keys, values):
self.keys = keys
self.values = values
def output_string_file(self):
f = open('string.xml', mode='w')
f.write('<resources>\n')
for i in range(len(keys)):
key = keys[i].encode('utf-8')
value = values[i].encode('utf-8')
f.write(' <string name=\"' + key + '\">' + value + '</string>\n')
f.write('</resources>\n')
f.close
출력 파일은 다음과 같이 출력됩니다.<resources>
<string name="app_name">アプリケーション名</string>
<string name="search">検索</string>
<string name="search_description">デバイスを検索します</string>
<string name="search_note">デバイスがスマートフォンから遠い場合は見つかりません。</string>
<string name="next">次</string>
<string name="prev">前</string>
</resources>
iOS를 문장 파일로 내보내기
iOS 응용 프로그램의 문장 파일은 Localizable입니다.strings이지만 문장 키와 데이터 목록에서 문장 파일을 만드는 클래스를 만들었습니다.class IOSFile:
def __init__(self, keys, values):
self.keys = keys
self.values = values
def output_string_file(self):
f = open('Localizable.strings', mode='w')
for i in range(len(keys)):
key = keys[i].encode('utf-8')
value = values[i].encode('utf-8')
f.write('\"' + key + '\" = \"' + value + '\";\n')
f.close
출력 파일은 다음과 같습니다."app_name" = "アプリケーション名";
"search" = "検索";
"search_description" = "デバイスを検索します";
"search_note" = "デバイスがスマートフォンから遠い場合は見つかりません。";
"next" = "次";
"prev" = "前";
끝날 때
상기 도구를 통해 문장의 관리 자체는 Excel로 진행되며 거기에서 안드로이드, iOS의 문장 파일을 만들 수 있다.
Reference
이 문제에 관하여(Excel의 문장 관리 파일에서 Android/iOS의 문장 데이터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yokobonbon/items/e9eaba28ee90121e9711
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
class AndroidFile:
def __init__(self, keys, values):
self.keys = keys
self.values = values
def output_string_file(self):
f = open('string.xml', mode='w')
f.write('<resources>\n')
for i in range(len(keys)):
key = keys[i].encode('utf-8')
value = values[i].encode('utf-8')
f.write(' <string name=\"' + key + '\">' + value + '</string>\n')
f.write('</resources>\n')
f.close
<resources>
<string name="app_name">アプリケーション名</string>
<string name="search">検索</string>
<string name="search_description">デバイスを検索します</string>
<string name="search_note">デバイスがスマートフォンから遠い場合は見つかりません。</string>
<string name="next">次</string>
<string name="prev">前</string>
</resources>
iOS 응용 프로그램의 문장 파일은 Localizable입니다.strings이지만 문장 키와 데이터 목록에서 문장 파일을 만드는 클래스를 만들었습니다.
class IOSFile:
def __init__(self, keys, values):
self.keys = keys
self.values = values
def output_string_file(self):
f = open('Localizable.strings', mode='w')
for i in range(len(keys)):
key = keys[i].encode('utf-8')
value = values[i].encode('utf-8')
f.write('\"' + key + '\" = \"' + value + '\";\n')
f.close
출력 파일은 다음과 같습니다."app_name" = "アプリケーション名";
"search" = "検索";
"search_description" = "デバイスを検索します";
"search_note" = "デバイスがスマートフォンから遠い場合は見つかりません。";
"next" = "次";
"prev" = "前";
끝날 때
상기 도구를 통해 문장의 관리 자체는 Excel로 진행되며 거기에서 안드로이드, iOS의 문장 파일을 만들 수 있다.
Reference
이 문제에 관하여(Excel의 문장 관리 파일에서 Android/iOS의 문장 데이터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yokobonbon/items/e9eaba28ee90121e9711
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Excel의 문장 관리 파일에서 Android/iOS의 문장 데이터 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yokobonbon/items/e9eaba28ee90121e9711텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)