2013-03-01 50 views
6

Tôi có ứng dụng Phonegap, nơi tôi sử dụng plugin máy ảnh. Vấn đề là, các nút không sử dụng ngôn ngữ iOS gốc, thay vào đó chúng chỉ là tiếng Anh ('Làm lại' và 'Sử dụng', v.v.).Ngôn ngữ thay đổi Phonegap của nhãn?

Ứng dụng tôi đang thực hiện là ứng dụng cho trẻ em, nhưng chúng không phải là người nói tiếng Anh bản ngữ. Vì vậy, tôi muốn có nó bằng ngôn ngữ mẹ đẻ của họ.

Có cách nào để tôi có thể dịch các nút đó sang ngôn ngữ chính xác không?

+0

Bạn đã giải quyết vấn đề này chưa? Vì một số lý do ứng dụng của tôi hiển thị các nút bằng tiếng Đức, hãy đọc tại đây http://stackoverflow.com/questions/25245093/wrong-language-on-native-controls-ios-html5-cordova-app – Mirko

+1

Xem câu hỏi này. Tôi đã giải quyết vấn đề này tại đây: http://stackoverflow.com/questions/34286524/how-to-change-cordova-camera-plugin-language-in-ios/34574301#34574301 – Perfection

Trả lời

0

Cordova may mắn là mã nguồn mở.
Bước đầu tiên là báo cáo lỗi trên Apache Cordova bug tracker. Sau đó, sao chép cordova source code để tìm hiểu lý do tại sao plugin không hiển thị đúng ngôn ngữ.

Nó không quá phức tạp. Plugins chỉ là một keo giữa một hàm javascript và một hàm gốc.

+0

Toàn bộ điểm sử dụng Cordova không thay đổi mã nguồn – Mirko

1

Nếu bạn đang sử dụng XCode làm IDE để phát triển dự án của mình, bạn có thể bản địa hóa nó như một dự án iOS bình thường. Để biết cách bạn có thể kiểm tra trong số other post này. Bạn sẽ không cần phải cung cấp bản dịch cho những "từ" (Retake, Use và vv), chỉ cần thiết lập các bản địa hoá thích hợp sẽ cho iOS biết sử dụng ngôn ngữ mẹ đẻ.

Nhưng, nếu bạn đang sử dụng PhoneGap Build để biên dịch dự án của mình, hãy kiểm tra this topic trong diễn đàn PhoneGap Build. Tương tự như thủ tục XCode, bạn sẽ cần phải tạo một thư mục có tên là "miền địa phương" trong thư mục/www của bạn và đặt ở đó các ngôn ngữ bạn muốn sử dụng. Một lần nữa, bạn không cần cung cấp bản dịch cho các nút đó. IOS sẽ tự làm.

2

Tôi có thể thay đổi ngôn ngữ nhãn bằng cách sửa đổi plist dự án (platforms/ios/ProjectName/ProjectNAme-Info.plist).

tôi đã thay đổi CFBundleDevelopmentRegionEnglish-fr_FR và thêm mảng này:

<key>CFBundleLocalizations</key> 
<array> 
    <string>fr</string> 
</array> 
0

Trong thực tế, CFBundleDevelopentRegion có vẻ là một dự phòng nếu iOS không thể tìm thấy tin cục bộ được khai báo trong CFBundleLocalizations.

Bạn không cần thay đổi khóa đó. Chỉ cần thêm mảng mã quốc gia ISO vào .plist (như Michaël đã làm) đủ rồi.

1

Nếu bạn không muốn tự thay đổi ngôn ngữ trong XCode sau mỗi lần xây dựng, bạn có thể làm các bản cập nhật sau trong mã nguồn PhoneGap/cordova trên máy Mac của bạn:

(Ví dụ với cordova 3.6.3 và miền địa phương của Pháp, bạn cần phải nâng cấp lên phiên bản ngôn ngữ của bạn &)

Folder : ~\.cordova\lib\npm_cache\cordova-ios\3.6.3\package\bin\templates\project\__PROJECT_NAME__\ 
File : __PROJECT_NAME__-Info.plist 
Update : 
    => Change <key>CFBundleDevelopmentRegion</key> 
       <string>English</string> 
     to  <key>CFBundleDevelopmentRegion</key> 
       <string>France</string> 

    => Add after it 
       <key>CFBundleLocalizations</key> 
       <array> 
        <string>fr</string> 
       </array> 

Folder : ~\.cordova\lib\npm_cache\cordova-ios\3.6.3\package\bin\templates\project\__PROJECT_NAME__\Resources\ 
Update : 
    => Create a 'fr.lproj' folder by Copy/Paste of the 'en.lproj' folder 
    => Complete the translation in 'fr.lproj/Localizable.strings' file (not required) 

này sẽ ảnh hưởng đến tất cả các dự án mà bạn xây dựng với phiên bản cordova này.

Sao lưu thư mục cordova của bạn trước và không để các tệp không mong muốn trong thư mục 'mẫu' hoặc chúng sẽ được sao chép trong gói cuối cùng.

Hy vọng điều đó sẽ hữu ích.

0

Giải pháp là để khai báo các ngôn ngữ trong file plist của bạn như:

<key>CFBundleLocalizations</key> <array> <string>it</string> <string>es</string> </array>

Nếu bạn không muốn làm điều đó bằng tay, bởi vì bạn có khả năng không theo dõi các tập tin plist, bạn có thể sử dụng Cordova Custom Config plugin để thêm các phím bị thiếu vào tệp plist khi bạn chạy cordova prepare

Các vấn đề liên quan