Python 2.7 หรือ Python 3 ควรติดตั้งบนเครื่องของคุณด้วยคำสั่ง pip ด้วย
โคลนพื้นที่เก็บข้อมูลและเรียกใช้ pip install -r requirements.txt
gslocalization ด้วย Google Sheetsservice account key จากคอนโซลผู้พัฒนา Google ของคุณGoogle Drive API และ Google Sheets APICredentials และจากเมนู Create credentials เลือก Service account keyApp Engine Admin )JSON ถูกเลือกในตัวเลือก Key typeCreateJSON จะเริ่มดาวน์โหลด บันทึกไฟล์นี้และใช้งานในภายหลังเพื่อตรวจสอบสิทธิ์ python ios-gslocalization.py -x {PATH_TO_XCODEPROJ} -o {XLIFF_OUTPUT_DIR} -a {JSON_AUTH_FILE_PATH} -e {SHARE_EMAIL_ADDRESS} -l {LOCALIZATION_LANGUAGES} -d {DEV_LANGUAGE}
PATH_TO_XCODEPROJ - พา ธ ไปยังไฟล์ .xcodeproj ของคุณxcodebuild (การส่งออกและนำเข้า localizations)XLIFF_OUTPUT_DIRXLIFF_OUTPUT_DIR - ไดเรกทอรีเอาต์พุตสำหรับไฟล์ xliff ที่สร้างขึ้นJSON_AUTH_FILE_PATH - เส้นทางไปยัง Service account key Google SheetsSHARE_EMAIL_ADDRESS - ที่อยู่อีเมลเพื่อแบ่งปันสเปรดชีตที่สร้างขึ้นService account key สเปรดชีตทั้งหมดจึงถูกสร้างและเป็นเจ้าของโดยบัญชีบริการ (เช่น [email protected])LOCALIZATION_LANGUAGES - สตริงที่มีรหัสภาษาหลายภาษาที่ใช้สำหรับการแปลDEV_LANGUAGE (ไม่บังคับ, ค่าเริ่มต้นเป็น en ) - รหัสภาษาสำหรับภาษาที่พัฒนาของโครงการ สคริปต์นี้ส่งออกการแปลปัจจุบันสำหรับโครงการของคุณโดยใช้ xcodebuild
มันแยกวิเคราะห์ไฟล์ XLIFF ที่ได้รับและอัปโหลดไปยัง Google Sheets
มีหนึ่งสเปรดชีตสำหรับทุกภาษาที่มีรูปแบบชื่อต่อไปนี้: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (เช่น MyProject_Spanish_localizations , MyProject_Russian_localizations ฯลฯ ) ภายในแต่ละสเปรดชีตมีแผ่นงานหนึ่งแผ่นต่อแพลตฟอร์ม (เช่น ios_strings , android_strings ) {PROJECT_NAME} ถูกอนุมานจากชื่อไฟล์ xcodeproj
สตริงทั้งหมดจะถูกเพิ่มลงในสเปรดชีตที่สอดคล้องกันด้วยส่วนหัวต่อไปนี้:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | Example | Comment | String Key | File Path
Source: SOURCE_LANGUAGE = ข้อความในภาษาต้นทางTarget: TARGET_LANGUAGE = ข้อความที่แปลในภาษาเป้าหมายExample = ว่างเปล่าหากสตริงมีตัวยึดตำแหน่ง ( %@, %d, etc. ) นี่คือสถานที่สำหรับตัวอย่างสำหรับนักแปลComment = NSLocalisedString ความคิดเห็นString Key = ID ของสตริงFile Path = พา ธ สัมพัทธ์ไปยังไฟล์ต้นฉบับของสตริง ( .strings file หรือ .storyboard )หลังจากอัปเดตการแปลใน Google Sheets ให้เรียกใช้สคริปต์เดียวกันอีกครั้งเพื่อนำเข้าสตริงใหม่ลงในโครงการ XCode ของคุณ
python android-gslocalization.py -p {PROJECT_NAME} -r {PATH_TO_RES_FOLDER} -a {JSON_AUTH_FILE_PATH} -e {SHARE_EMAIL_ADDRESS} -l {DEVELOPMENT_LANGUAGE}
PROJECT_NAME - ชื่อโครงการ (ใช้เพื่อนำหน้าชื่อสเปรดชีต)PATH_TO_RES_FOLDER - พา ธ ไป res Android ของคุณstrings.xml ทั้งหมดstrings.xml ใด ๆ ภาษาเป้าหมายจะถูกตรวจพบโดยชื่อโฟลเดอร์ parrent (เช่น values-es สำหรับภาษาสเปน)JSON_AUTH_FILE_PATH - เส้นทางไปยัง Service account key Google SheetsSHARE_EMAIL_ADDRESS - ที่อยู่อีเมลเพื่อแบ่งปันสเปรดชีตที่สร้างขึ้นService account key สเปรดชีตทั้งหมดจึงถูกสร้างและเป็นเจ้าของโดยบัญชีบริการ (เช่น [email protected])DEVELOPMENT_LANGUAGE - รหัสภาษาของภาษาการพัฒนาของคุณ (default = en ) สคริปต์นี้โหลดไฟล์ strings.xml ทั้งหมดภายใน PATH_TO_RES_FOLDER
มันแยกวิเคราะห์ไฟล์ XML ที่ได้รับและอัปโหลดไปยัง Google Sheets
มีหนึ่งสเปรดชีตสำหรับทุกภาษาที่มีรูปแบบชื่อต่อไปนี้: {PROJECT_NAME}_{LANGUAGE_NAME}_localizations (เช่น MyProject_Spanish_localizations , MyProject_Russian_localizations ฯลฯ ) ภายในแต่ละสเปรดชีตมีแผ่นงานหนึ่งแผ่นต่อแพลตฟอร์ม (เช่น ios_strings , android_strings )
สตริงทั้งหมดจะถูกเพิ่มลงในสเปรดชีตที่สอดคล้องกันด้วยส่วนหัวต่อไปนี้:
Source: SOURCE_LANGUAGE | Target: TARGET_LANGUAGE | String ID
Source: SOURCE_LANGUAGE = ข้อความในภาษาต้นทางTarget: TARGET_LANGUAGE = ข้อความที่แปลในภาษาเป้าหมายString ID = ID ของสตริง หลังจากอัปเดตการแปลใน Google Sheets ให้เรียกใช้สคริปต์เดียวกันอีกครั้งเพื่อเขียนทับไฟล์ strings.xml ในโฟลเดอร์ทรัพยากรของคุณ
# parsing arguments
argparse
# provides access to Google Sheets API
pygsheets
# XML parsing for XML/XLIFF files
lxml
# type hinting
typing
# colored output in consolde
colorama
# conversion between language code and language name
langcodes; python_version>'3'
langcodes-py2; python_version<'3'
Objective C ใช้ NSLocalizedStringWithDefaultValue(@"KEY", nil, [NSBundle mainBundle], @"DEFAULT_VALUE", @"COMMENT")] แทน NSLocalizedString(@"KEY", @"COMMENT")]Swift ใช้ NSLocalizedString("KEY", tableName: nil, bundle: Bundle.main, value: "DEFAULT_VALUE", comment: "COMMENT") แทน NSLocalizedString("KEY", comment: "COMMENT")NSLocalizedString เพื่อรวมค่าเริ่มต้น