csvの読み込み
まず CSV を読み込んで入力データを整形する部分を作ります。プログラムは Python を使います。
Python には CSV を扱うモジュールがあるのでこれを利用しようと思いますが、
初めてなので動作をみてみます。
まずはプログラムの流れを確認します。使用するデータはスプレッドシートから
string_table.csv という名前で出力した CSV ファイルです。
#coding:shift-jis # csv ファイルを開く csvfile=open("string_table.csv") # if ファイルが開けたら if csvfile!=None: # for csvリーダーの提供する各行について for row in csv.reader(csvfile): # 表示する print row # end for # end if
このスクリプトはみんなのPythonのサンプルほぼそのままですが
['\x83\x89\x83x\x83\x8b', '\x93\xfa\x96{\x8c\xea', '\x89p\x8c\xea'] ['STR_HELLO', '\x82\xb1\x82\xf1\x82\xc9\x82\xbf\x82\xcd\x81B', 'Hello.'] ['STR_BYE', '\x82\xb3\x82\xe6\x82\xa4\x82\xc8\x82\xe7\x81B', 'Good bye.']
なにやら文字化けしてしまいました。 Python で日本語を使うときはユニコードだと
トラブルが少なくて良いようです。とりあえずスクリプトを以下のように修正してみます。
import csv csvfile=open("string_table.csv"); if csvfile != None: for row in csv.reader(csvfile): for col in row: print col
ラベル 日本語 英語 STR_HELLO こんにちは。 Hello. STR_BYE さようなら。 Good bye.
リストから各列を取り出してやるときちんと表示されました。
CSV からの読み込みは出来たので次は以下の擬似コードに沿って入力データを作成する関数を定義します。
# 1. csv からラベルと文字列データの組を作成し、入力データとする # file : 入力ファイル # lang : 採用する言語 # return 成功したら (label, string) のタプルのリスト. 失敗したら None. def input_from_csv(file,lang="日本語"): # csv ファイルを開く # if 失敗したら # None を返す # endif # 行のリストを作成する # 1行目を取り出す # lang に対応する列を決める # if 決まらなかったら # None を返す # endif # 最終的なリストを作成する # リストを返す
大雑把ですがこんな感じで進めます。