2012-12-18 5 views
13

Tôi muốn bắt đầu thấy mức độ toàn diện của chúng tôi trong mã iOS của chúng tôi khi bản địa hóa chuỗi. Chúng tôi chưa sẵn sàng cho người dịch, nhưng tôi muốn bắt đầu thử nghiệm với pseudo localization. Tự động hóa quá trình này trong một tập tin Localizable.strings nên dễ dàng, nhưng tôi dường như không thể tìm thấy bất kỳ công cụ làm điều đó. Thành thật mà nói, tôi sẽ hài lòng với một kịch bản mà chỉ cần thay đổi tất cả các chuỗi của tôi thành "KHÔNG TIẾNG ANH!" nếu một thứ như vậy tồn tại.Có bất kỳ công cụ tốt nào cho bản địa hóa giả của iOS không?

+0

+1, mặc dù người khác có thể cờ này như một [mua sắm] (http://blog.stackoverflow.com/2010/11/qa-is-hard-lets-go- mua sắm /) câu hỏi. – newenglander

Trả lời

18

Bạn có thể đạt được điều này với Translate Toolkit.

Trước tiên, bạn cần phải chuyển đổi .strings tập tin để PO sử dụng prop2po chuyển đổi:

$ prop2po Localizable.strings en.po 

này sẽ tạo ra một PO tập tin với các dây của Localizable.strings tập tin như là chuỗi nguồn (trong trường hợp này tôi đang sử dụng tiếng Anh như một nguồn).

Khi bạn có tệp PO, hãy viết lại bằng cách sử dụng podebug trong desired rewrite format.

$ podebug --rewrite=unicode en.po en_rewritten.po 

Cuối cùng chuyển đổi nó trở lại .strings định dạng (lưu ý rằng bạn cần phải vượt qua bản gốc Localizable.strings tập tin làm mẫu):

$ po2prop en_rewritten.po rewritten.strings -t Localizable.strings 

Kết quả là tập tin sẽ xem xét một cái gì đó như thế này:

"Account: %@" = "Ȧƈƈǿŭƞŧ: %@"; 

"Add command" = "Ȧḓḓ ƈǿḿḿȧƞḓ"; 

"Add connection." = "Ȧḓḓ ƈǿƞƞḗƈŧīǿƞ." 
+0

CÓ! Điều này thật đúng với gì mà tôi đã tìm kiếm. Nếu bất cứ ai nhìn vào điều này tại một số điểm và có vấn đề cài đặt (tôi đã làm), nơi mà các hướng dẫn nói sử dụng "su ./setup.py install", sử dụng "sudo python ./setup.py install" để thay thế. – Mike

+0

Vì vậy gần, tôi nhận được hai bước đầu tiên để làm việc nhưng không phải là thứ ba: '% po2prop -t Localizable.strings en_rewritten.po rewritten.strings ' ' xử lý 1 file ...' 'po2prop: cảnh báo: lỗi khi xử lý: en_rewritten.po đầu vào, đầu ra rewritten.strings, mẫu Localizable.strings: 'ascii' codec không thể mã hóa ký tự ở vị trí 10-11: thứ tự không trong phạm vi (128) [######## ##############################] 100% ' –

+0

Tệp PO của bạn có các ký tự không phải ascii trong nhận xét về vị trí? Nếu vậy, [bug 2101] (http://bugs.locamotion.org/show_bug.cgi?id=2101) có thể liên quan. – julen

-1

Bạn có thể sử dụng công cụ genstrings do Apple cung cấp. Tất cả được giải thích trong phần chuỗi của Resource Programming Guide

+0

'genstrings' sẽ tạo tệp Localizable.strings của tôi, mà tôi đã làm, nhưng nó thực hiện như vậy với một trong hai khóa dưới dạng giá trị hoặc giá trị mặc định của tôi. Tôi đang tìm cái gì đó sẽ lấy đầu ra của genstrings và sau đó thay đổi các giá trị cho bản địa hóa psuedo. – Mike

1

Chúng tôi cung cấp bản địa giả như một phần của dịch vụ của chúng tôi tại Tethras (www.tethras.com). Bản địa hóa giả là miễn phí. Chúng tôi nhấn mạnh tất cả các ký tự trong chuỗi của bạn và kéo dài độ dài của văn bản lên 30%. Điều này sẽ giúp bạn kiểm tra không chỉ cho các chuỗi được mã hóa cứng mà còn cho phép bạn xem điều gì xảy ra với bố cục của bạn do mở rộng văn bản trong khi dịch.

Ví dụ:

Plain Text

Chúng tôi cung cấp giả nội địa hóa như là một phần của chúng tôi ôƒ dịch vụ tại Tèthrás (www.tèthrás.çôm). ôñè twô thrèè ƒôúr ƒïvè sïx Psèúdô lôçálïzátïôñ ïs ƒrèè. ôñè twô thrèè Wè áççèñt áll ôƒ thè çháráçtèrs ïñ ¥ ôúr strïñgs áñd èxtèñd thè lèñgth ôƒ thè tèxt b ¥ 30%. một hai ba ƒôúr ƒïvè Sáu này sẽ giúp ¥ ou kiểm tra không onl ¥ ƒôr cứng mã hoá chuỗi, nhưng cũng sẽ Hãy ¥ ou xem những gì xảy ra với chúng tôi ¥ lá ¥ outs do văn bản mở rộng trong dịch. ôñè twô thrèè ƒôúr ƒïvè sïx sèvèñ èïght ñïñè tèñ

Có thể bản địa hóa.strings

"Bring All to Front" = "Brïñg Áll tô ƒrôñt ôñè twô"; 
"Hide" = "Hïdè 12"; 
"Quit" = "Qúït 12"; 
"Hide Others" = "Hïdè Óthèrs ôñè "; 

Kêu gọi muốn kiểm tra tính khả dụng của ứng dụng trước khi dịch. Điều này sẽ giúp bạn tiết kiệm rất nhiều thời gian và năng lượng trong quá trình dịch thuật thực tế.

3

mặc dù Dịch Bộ công cụ có thể cung cấp giải pháp mà tôi đã tìm cách tiếp cận đơn giản hơn bằng cách sử dụng tập lệnh bash. tạo [changesDictionary.txt] tập tin (xem định dạng ở phần cuối của bài viết này) và chạy các kịch bản sau đây với các tập tin ngôn ngữ như tham số:

# This script translate iOS strings file into pseudo languge for texting usage. 
# the script create a sed change and replace file based on [changesDictionary.txt]. 
# the loop run across the input string file (ie. myFyle.strings) 
# and replace the secong strings with the dictionary values. 
# since the strings file is in BOM format (http://en.wikipedia.org/wiki/Byte_order_mark) 
# the input is converted from UTF16 to UTF8. 
sed -e 's/^"\(.*\)" = "\(.*\)"$/s\/\1\/\2\/g/' changesDictionary.txt > changesDictionary.sed 

FILENAME=$1 

while read -r; do 
if [[ $REPLY = '/*'* ]] ; then 
    echo "$REPLY" 
else 
    if [[ $REPLY = '' ]] ; then 
     echo "$REPLY" 
    else 
     if [[ $REPLY = '"'* ]] ; then 
      changes2=$(echo "$REPLY" | cut -d= -f2 | sed -f changesDictionary.sed) 
      changes1=$(echo "$REPLY" | cut -d= -f1) 
      echo "$changes1=$changes2" 
         echo "$REPLY" 
     fi 
    fi 
fi 
done < <(iconv -f UTF-16 -t UTF-8 $FILENAME) | iconv -f UTF-8 -t UTF-16 >$FILENAME.new 

Kịch bản nhìn cho một [changeDictionary.txt] tập tin trong định dạng sau:

"a" = "á" 
"b" = "β" 
"c" = "ç" 
"d" = "δ" 
"e" = "è" 
"f" = "ƒ" 
"g" = "ϱ" 
"h" = "λ" 
"i" = "ï" 
"j" = "J" 
"k" = "ƙ" 
"l" = "ℓ" 
"m" = "₥" 
"n" = "ñ" 
"o" = "ô" 
"p" = "ƥ" 
"q" = "9" 
"r" = "ř" 
"s" = "ƨ" 
"t" = "ƭ" 
"u" = "ú" 
"v" = "Ʋ" 
"w" = "ω" 
"x" = "ж" 
"y" = "¥" 
"z" = "ƺ" 
"\ñ" = "\n" 
"$δ" = "$d" 
"$ï" = "$i" 

bạn có thể sử dụng ví dụ này hoặc tạo của riêng bạn, xin lưu ý tp 3 chuỗi thay đổi cuối cùng trong tệp. điều này là để khôi phục kết thúc của các dòng và các thông số về trạng thái thông thường của chúng. Tôi đã chọn cách tiếp cận này để đơn giản hóa kịch bản (tôi nghĩ rằng hiệu suất không được tối ưu hóa).

3

Tôi đã xem qua hai giải pháp mà chưa được đề cập ở đây:

  • Một ứng dụng miễn phí có tên trên các cửa hàng Mac App mà tạo ra file .strings pseudolocalized dựa trên mã nguồn của bạn (drag-và- rơi vãi). Nó tạo ra các chuỗi tương tự với các chuỗi OP được cung cấp trong câu hỏi.

    https://itunes.apple.com/us/app/pseudolocalizer/id503026674?mt=12

  • Các dịch vụ dịch thuật trực tuyến Babble-on cung cấp miễn phí .strings pseudolocalized tập tin dựa trên .strings file đang tồn tại (tùy chọn khác có sẵn). Họ có thêm tùy chọn tạo chuỗi dài hơn tiếng Anh gốc để kiểm tra GUI của bạn.

    http://www.ibabbleon.com/pseudolocalization.html

+1

Lợi thế của dịch vụ miễn phí của Babble-on là bạn có thể lấy lại hai tệp: ASIAN (với các ký tự tiếng Trung) giúp dễ dàng phát hiện các chuỗi chưa được dịch, cũng như CHÂU ÂU, dài hơn 30% để bắt chước các ngôn ngữ như tiếng Pháp và tiếng Đức . Thật tuyệt vời khi thử nghiệm GUI của bạn. – Localizer

+0

Một công cụ nhanh chóng và miễn phí khác là http://www.pseudolocalize.com - Một cú nhấp chuột để có được phiên bản pseudolocalized trở lại – JerSchneid

+0

@JerSchneid không thể làm việc với một tệp Localizable.strings –