美文网首页
iOS多语言文件与excel的互相转换

iOS多语言文件与excel的互相转换

作者: 逃之不桃 | 来源:发表于2018-07-05 15:07 被阅读0次

    最近因为要将多语言文件整理成表格形式与安卓对齐,想到多达十几种语言,一种语言涉及到几百行,这如果要人工整理得整理到啥时候,就想到做一个shell脚本来解决这个问题。

    因为在mac不能直接支持excel,所以用csv文件来代替,用时将csv转成excel即可。

    csv事实上是由为逗号隔开的一行行字符串组成

    如:

    theme,Theme

    share,Share

    feedback,Feedback

    rate,Rate

    about,About

    搞清楚原理,开始撸代码:

    假设string文件格式为: key = "value";

    先将" = "做一个字符替换,以免等会进行字符分割时有扰乱

    替换 = 为$

    
    srcText=" = "
    
    destText="$"
    
    sed -i "" "s/${srcText}/${destText}/g" temp.strings
    
    

    去掉每行末尾的分号;

    srcText=";"
    
    destText=""
    
    sed -i "" "s/${srcText}/${destText}/g" temp.strings
    

    去掉引号

    srcText="\""
    
    destText=""
    
    sed -i "" "s/${srcText}/${destText}/g" temp.strings
    

    考虑到字符中有空格和逗号影响分割的精确度,均进行替换

    #替换空格
    srcText=" "
    
    destText="~"
    
    sed -i "" "s/${srcText}/${destText}/g" temp.strings
    

    替换逗号

    srcText=","
    
    destText="^"
    
    sed -i "" "s/${srcText}/${destText}/g" temp.strings
    

    然后逐行读取string文件,用分割出key和value,不包含的就认定为注释项,组合成key,value的形式放入数组中

    
    #逐行读取
    
    arr=()
    
    flag=0
    
    while read LINE
    
    do
    
    str=$LINE
    
    res=""
    
    #如果包含$
    
    if [[ $str == *"$"* ]]
    
    then
    
    key=`echo $str | cut -d "$" -f 1`
    
    value=`echo $str | cut -d "$" -f 2`
    
    res="${key},${value}"
    
    else
    
    if [[ $str == *"//"* ]]
    
    then
    
    pre="${str#*//}"
    
    res="${pre},"
    
    fi
    
    fi
    
    echo $res
    
    arr[flag]=$res
    
    

    最后再逐行写入文件,恢复替换掉的字符

    
    for line in ${arr[@]}; do
    
    echo $line >> reslut.csv
    
    done
    
    #恢复空格
    
    srcText='~'
    
    destText=' '
    
    sed -i "" "s/${srcText}/${destText}/g" reslut.csv
    
    #恢复逗号
    
    srcText='^'
    
    destText=','
    
    sed -i "" "s/${srcText}/${destText}/g" reslut.csv
    
    

    效果图:


    屏幕快照 2018-07-05 下午3.01.40.png 屏幕快照 2018-07-05 下午3.02.36.png

    如果想要将csv转化成string文件,步骤倒过来即可

    shell脚本下载地址: https://github.com/taozaizai/string2csvANDcsv2string.git

    如果转化中文或者其他的语言时出现乱码,请用mac自带的numbers打开。

    相关文章

      网友评论

          本文标题:iOS多语言文件与excel的互相转换

          本文链接:https://www.haomeiwen.com/subject/cfspuftx.html