2009-12-13 35 views
6

Hi Tôi nộp đơn đầu tiên của tôi vào AppStore http://itunes.apple.com/at/app/section-control/id343824642?mt=8ứng dụng iPhone ngôn ngữ có sẵn trong Appstore

này sẽ hiển thị "Tiếng Anh" như Ngôn ngữ (Sprachen bằng tiếng Đức) trong "Tổng quan". Và đó là chính xác trong trường hợp này.

Tôi nghĩ điều này xuất phát từ thực tế là tôi không có tài nguyên được bản địa hóa trong ứng dụng của mình. Câu hỏi nào là: Ngôn ngữ/Sprachen được phát hiện bởi appstore như thế nào?

Nó có (tất nhiên) không có gì để làm với mô tả địa phương kể từ khi tôi sử dụng tiếng Anh và tiếng Đức trong trường hợp này.

TomTom http://itunes.apple.com/at/app/tomtom-westeuropa/id326075062?mt=8 cho ví dụ hiển thị nhiều ngôn ngữ.

Dù sao đi nữa - câu hỏi chính. Đối với ứng dụng tiếp theo của tôi, tôi lập kế hoạch "nội địa hóa theo hướng cộng đồng". Ý tưởng là một cái gì đó bạn tìm thấy trong rất nhiều ứng dụng mà bạn có thể tải về "tập tin ngôn ngữ".

Giả sử ứng dụng của tôi có danh sách các ngôn ngữ có sẵn. Điều này xuất phát từ một dịch vụ web và bạn (với tư cách người dùng) có thể tải xuống ngôn ngữ preffered của bạn (nếu có).

Và vì điều này là năng động, điều sau đây sẽ xảy ra - tôi xuất bản ứng dụng bằng tiếng Anh và tiếng Đức (ngôn ngữ mẹ đẻ của tôi). Sau đó, một người nào đó nhập văn bản tiếng Pháp - vì vậy từ thời điểm đó trên ứng dụng cũng có sẵn bằng tiếng Pháp.

Tôi không tìm cách đặt yếu tố "Ngôn ngữ/Sprachen" trong mô tả ngắn về ứng dụng (Tổng quan) hoặc tôi có phải "gửi lại" đơn đăng ký của mình để thay đổi điều này không?

Cuối cùng không kém - nếu tôi đúng và ngôn ngữ được phát hiện bằng các tài nguyên chứa trong ứng dụng - có đủ để cung cấp tệp chuỗi rỗng (hoặc chỉ giữ một chuỗi) "với ứng dụng của tôi không?

Trả lời

1

Đây là những gì bạn cần làm:

Đây là cách thư mục .app nên hình như:

+ MyApp.app

+ en.lproj

+ de.lproj

+ nl.lproj

vv ...

trong thư mục lproj, bạn nên đặt một tệp Localizable.strings.

Trong Localizable.strings tập tin này, bạn có thể đặt những thay đổi ngôn ngữ như thế này: (EN-NL)

"Giới thiệu" = "Over"

"ErrorSupport" = "Kon niet de ondersteuning contacteren . "

Vì vậy, các dòng đầu tiên như "About" không cung cấp tiếng Anh, nhưng chỉ có chức năng.

Tôi không hoàn toàn chắc chắn cách thiết lập điều này trong ứng dụng của bạn, tôi không phải là một trình lập trình ứng dụng thực sự tốt. Bạn nên kiểm tra tài liệu trợ giúp của Apple hoặc hỏi tài liệu đó cho các nhà phát triển khác.

Để tải xuống ngôn ngữ, tôi sẽ cho rằng bạn xây dựng trong webView và chuyển trực tiếp đến trang tải xuống và sau đó ứng dụng sẽ tự động sửa nó thành thư mục ngôn ngữ và cài đặt nó thành MyApp.app/<language>.lproj. Hỏi về công cụ tải xuống này cho các nhà phát triển khác hoặc kiểm tra tài liệu trợ giúp của Apple. (Tôi không biết chắc họ có đề cập đến điều đó không)

+0

Cảm ơn bạn - Tôi biết các khái niệm về tài nguyên chuỗi. Bạn có nghĩa là để hiển thị một ngôn ngữ trong appStore tôi phải thêm một tài nguyên cho mọi ngôn ngữ? Hay nói cách khác - là sự hiện diện của một tài nguyên được bản địa hóa mà appStore sử dụng để xác định các ngôn ngữ có sẵn không? Có kết quả nào - là một chuỗi đủ cho mỗi ngôn ngữ? Tải xuống cũng không có vấn đề gì - và đối với việc "tiêm" các nội dung được bản địa hóa, tôi đã có mã hoạt động. Câu hỏi này chỉ là về - làm thế nào để thỏa thuận appStore với các ngôn ngữ. – ManniAT

+0

CÓ, App Store sử dụng những thứ này để xác định ngôn ngữ. Tôi biết chắc chắn 99,99%. Nếu bạn muốn tổng số xác nhận, bạn có thể muốn liên hệ với Apple. và, như bạn thấy, nó không phải appStore, nhưng App Store. Bạn, là nhà phát triển, nên biết điều đó. (Tôi xin lỗi nếu bạn cảm thấy bị xúc phạm.) –

+0

Và có, một chuỗi là đủ. –

16

Tôi đã sử dụng sự cố hỗ trợ kỹ thuật để đặt câu hỏi này trực tiếp cho Apple. Đây là câu trả lời:

"Danh sách ngôn ngữ được ứng dụng hỗ trợ, như được hiển thị trong ảnh chụp màn hình cửa hàng iTunes bạn đã gửi, được xác định tự động bằng cách kiểm tra gói ứng dụng đã gửi. Thông thường, điều này đến từ thư mục .lproj , vì quá trình (và iOS) sử dụng điều này để xác định ngôn ngữ nào ứng dụng có thể hỗ trợ. Tuy nhiên, bạn cũng có thể cung cấp hệ thống hỗ trợ bản địa hóa riêng của mình trong ứng dụng mà không cần sử dụng thư mục .lproj (mặc dù điều này thường hoạt động nhiều hơn) - trong trường hợp này, danh sách các ngôn ngữ được hỗ trợ được chỉ định trong tệp plist của ứng dụng, thông qua khóa CFBundleLocalizations.Xem các tài liệu sau (và hướng dẫn được liên kết trong tài liệu) để biết thêm thông tin về điều này:

http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html%23//apple_ref/doc/uid/TP40009249-109552-TPXREF111 "

1

Tôi cũng gặp vấn đề tương tự, ứng dụng của tôi chỉ hỗ trợ một ngôn ngữ, nhưng trong Appstore, ứng dụng của tôi hỗ trợ nhiều ngôn ngữ. Tôi đã nhầm lẫn và sau này sau khi đọc bài đăng này, tôi nhận ra rằng những người đang đến tự động từ các vỏ mà tôi đang sử dụng. Sau đó tôi tìm thấy plugin này (cocoapods-prune-localizations) sẽ giúp loại bỏ lproj không mong muốn. Hy vọng nó sẽ giúp, nhưng tôi cảm thấy có một số cách để chỉnh sửa thông tin trực tiếp trong Appstore, nhưng như tôi biết tôi không thể tìm thấy tùy chọn đó. Nếu có một tùy chọn như vậy, hãy cho tôi biết.

cocoapods-prune-localizations

2

Tôi đã thua khi làm điều này. Tôi bản địa hóa trò chơi Unity của mình trong nội bộ, không sử dụng .lproj hoặc .xliff. Câu trả lời của Jeremy đưa ra một số ánh sáng về điều này. Tôi đã mở Info.plist để chỉnh sửa, nhưng Xcode đã tự động chuyển đổi khóa CFBundleLocalizations thành khóa "Localizations" (Điều này có ý nghĩa, nhưng khi câu trả lời của anh là vào năm 2010, tôi đã tự hỏi liệu xcode có đang chơi thủ thuật cho tôi không haha)

Phím Địa chỉ hóa là một mảng có chuỗi là mục 0: "Tiếng Anh" Vì vậy, tôi đã thêm chuỗi mới bằng "tiếng Tây Ban Nha" và "tiếng Bồ Đào Nha Braxin".

Khi tôi nhập, xcode trình bày một số tùy chọn như tiếng Trung và các ngôn ngữ khác mà tôi không cần, điều này đã kích hoạt nhiều nghi ngờ hơn. Vì vậy, tôi đã mở info.plist dưới dạng văn bản:

<key>CFBundleLocalizations</key> 
    <array> 
     <string>en</string> 
<string>Spanish</string> 
<string>Brazilian Portuguese</string> 
    </array> 

Có vẻ không đúng, uh?Với nghiên cứu lil tôi thấy rằng tôi phải thêm như ISO 639-1 (với một số catch):

<key>CFBundleLocalizations</key> 
    <array> 
     <string>en</string> 
     <string>es</string> 
     <string>pt</string> 
    </array> 

Việc nắm bắt được rằng Bồ Đào Nha Brazil trong ISO 639-1 nên là: pt-BR nhưng như đã thấy ở đây: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/LocalizingYourApp/LocalizingYourApp.html

"ID ngôn ngữ cho các kịch bản hay tiếng địa phương sử dụng thẻ phụ, như trong pt-PT nơi pt là mã cho Bồ Đào Nha và PT là mã cho Bồ Đào Nha. Ví dụ, sử dụng pt như ID ngôn ngữ cho Bồ Đào Nha như được sử dụng trong Braxin và PT-PT làm ID ngôn ngữ cho tiếng Bồ Đào Nha như được sử dụng trong Bồ Đào Nha ".

Điều này phù hợp với tôi!

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