Excelスプレッドシートに変換string.xmlを変換テーブルの輸入のアプリケーションへの国際的なアプローチをしているのバッシュ&パイソン方法

各国が対応する翻訳1000を持っていなければならないため、同社の事業開発は、最も厄介なの国際化の過程で、必ず国際業務を行う必要が書き込みへの国際言語である、言語に対応したビルドstring.xmlをファイルには、国際出願をすることができます彼は、対応するコピーである場合の行については、全体の人々は夢中になります。

国際言語処理bashスクリプトで書かれたバージョン

だから、怠惰に関するスクリプトを書くために怠惰な方法を学んだ、スクリプトがまだ完璧ではないかもしれないが、我々は彼らのニーズに応じて変更することができます。

1.bash実施形態(以下パイソン)

オリジナルコンテンツ

コンテンツを生成した後

 

1.特定の翻訳作業の国際化は、次にやる、それを行うための特別な人を持っていることは、Excelのテーブルの下にあります

我々は、XMLを取得したいすべてのまずCSVファイルの接尾辞として保存しました

translation.sh与え3.次のスクリプトを実行し、実行の権限

#!/bin/bash
bak=$IFS
#检查是否有文件输入
if [ $# -ne 1 ];then
  echo "Usage $0 filename"
  exit
fi
#检查输入的是否是文件
if [ ! -f $1 ];then
  echo "the $1 is not a file"
  exit
fi
IFS=$'\n'
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>">> string.xml
echo "<resources>">> string.xml
for line in `cat $1`
	do
	  read1=`echo $line|cut -d "," -f 1`
	  read1=${read1##*' '} #切割key前面的空格
          if [ -z "$read1" ];then #去除掉空字符串
	    continue
	  fi
	  read2=`echo $line|cut -d "," -f 3`
          echo "<string name=\"$read1\""">"$read2"</string>" #打印要写入的内容
	  echo "<string name=\"$read1\""">"$read2"</string>" >> string.xml #将内容写入
done
echo "</resources>">> string.xml
IFS=$bak

ターミナルで実行./translation.sh .CSVファイル変換

XMLのような出力が完了したが、完全な生成されます(XML翻訳に含まれるコンテンツの多くは解決できないのでノートは、オープンgeditのを選択してください):次のように端末に出力され表示されます

 

2.Python方法

#! /usr/bin/python
# coding=utf-8
import os, re
import xlrd
import sys, getopt
import operator


################国际化多语言替换start
def intl(file):
    print ('-------------------- Start intl--------------------')
    #print(sys.argv[0])
    #print(sys.argv[1])

    file_03_excel = "/Users/xulei/Desktop/int/012_i18n_android_part1_en_1027.xlsx"

    print (file)
    print (file_03_excel)

    # 1、打开文件
    x1 = xlrd.open_workbook(file_03_excel)

    # 2、获取sheet对象
    print ('sheet_names:', x1.sheet_names())  # 获取所有sheet名字
    print ('sheet_number:', x1.nsheets ) # 获取sheet数量
    print ('sheet_object:', x1.sheets() ) # 获取所有sheet对象
    print ('By_name:', x1.sheet_by_name("Sheet1") ) # 通过sheet名查找
    print ('By_index:', x1.sheet_by_index(0))  # 通过索引查找

    # 读取第一个工作表
    table = x1.sheets()[0]
    # 统计行数
    n_rows = table.nrows
    print ('n_rows:', n_rows)


    f1 = open('/Users/xulei/Desktop/int/intl.txt', 'w')

    data = []

    # 微信文章属性:wechat_name wechat_id title abstract url time read like number
    for v in range(1, n_rows-1):
        # 每一行数据形成一个列表
        values = table.row_values(v)
        # 列表形成字典
        # data.append('<string name="',values[0],'">',values[1],'</string>')
        key = values[0]
        value = values[2]
        string = '<string name=\"%s\">%s</string>'% (key, value)
        f1.writelines(string)
        f1.writelines('\n')




################国际化多语言替换end

def usage():
    print ('Auto publish dmall')
    print ('Usage:')
    print ('  --help                     Show help information')
    print ('  --publish=[release|debug]   Auto publish build, release will auto git commit, debug will not')
    print ('  --patch                     Auto patch build')
    print ('  --upload                    Auto upload patch')

print (sys.argv)

intl(sys.argv[1])

 

 

公開された25元の記事 ウォン称賛13 ビュー10000 +

おすすめ

転載: blog.csdn.net/ChaoLi_Chen/article/details/103974892