2011-03-18 27 views
66

Tôi vừa cập nhật lên Xcode 4.Cách bản địa hóa ứng dụng của tôi bằng Xcode 4?

Thông thường khi bản địa hóa ứng dụng, chúng tôi thêm tệp "Localizable.String" vào dự án, sau đó điều hướng đến menu "Nhận thông tin" và nhấp vào nút "Làm cho bản địa hóa".

Tuy nhiên, trong Xcode 4, không có menu "Nhận thông tin".

Khi tôi cố thêm ngôn ngữ, nó chỉ ảnh hưởng đến tệp "InfoPlist.String" (chỉ có thể bản địa hóa tên của ứng dụng).

Làm cách nào để thêm bản địa hóa vào ứng dụng của tôi trong Xcode 4?

+1

Chỉ cần thực hiện theo hướng dẫn này: http://www.raywenderlich.com/2876/how-to-localize-an-iphone-app-tutorial. Hi vọng điêu nay co ich. – SNR

+0

Kiểm tra [Sử dụng tệp bảng phân cảnh duy nhất cho Base Internationalization trong iOS 6] (http://forums.macrumors.com/showthread.php?t=1467446) – mikezang

Trả lời

13

Chọn tệp bạn muốn bản địa hóa và klick trên trình kiểm tra tệp trong phần tiện ích. Có một phần Bản địa hóa

8

Bạn có thể xem thông tin tệp (và thêm nội dung bản địa hóa) khi bạn chọn tệp và mở "Trình kiểm tra tệp" qua menu "Xem" -> "Tiện ích" của trình đơn chính -> "Trình kiểm tra tệp ".

+0

Tôi dường như không xóa các bản địa hóa hiện có từ trình kiểm tra tệp. Nó hỏi "Bạn có muốn xóa ...", nhưng khi xác nhận với nút 'Xóa' ... không có gì xảy ra. Tệp vẫn ở đó. Tuyệt quá. – DefenestrationDay

4

trước tiên bạn cần phải thêm tệp Localizable.string mới và chọn nó và đi tới Xem "->" Tiện ích "->" Trình kiểm tra tệp nhấp vào nút + để thêm ngôn ngữ trong phần bản địa hóa. cũng kiểm tra xem nó XCode 4, Adding localization

1

cách bản địa hóa trong xcode4 đã thay đổi! nhấp chuột phải vào localizable.strings và để thêm hỗ trợ cho một ngôn ngữ khác, chỉ cần nhấp vào dấu ‘+’ trong ô ‘Địa phương hóa’ ở bên phải.

209

Thật đơn giản khi bạn hiểu nó.

Nếu bạn muốn thực hiện điều này với Xcode .x và iOS 7 hoặc Xcode .x và iOS 8, hãy kiểm tra "How to localize my app with Xcode 5?" để thay thế.

Tôi thích SNR 's link, nhưng câu trả lời của anh ấy hơi ngắn.

Ngoài ra, tôi thấy rằng câu hỏi này hơi cũ và câu trả lời của tôi có thể khác với các phiên bản cũ hơn của Xcode. (Tôi đã sử dụng Xcode v. 4.3.3)

Tuy nhiên, tôi đã cập nhật câu trả lời của tôi để làm việc với cả Xcode 4.3.5 và dưới + 4.4 trở lên (và Xcode 5.x và 6.x tại đây: How to localize my app with Xcode 5?).

Để bắt đầu, bạn nên thêm "Chuỗi tệp" mới vào danh mục Tài nguyên iOS.

Strings File

Tiếp theo, tạo tệp dưới dạng "Localizable.strings". Create As

Khi tệp được tạo, hãy chọn tệp và mở Trình kiểm tra tệp.

The Localizable File File Inspector

EDIT: Mọi thứ đã thay đổi (một chút) với Xcode 4.4, 4.5 (trở lên) (hỗ trợ iOS 6) mới. Nếu you'r Không sử dụng Xcode 4.4 hoặc phía trên, hãy bỏ qua bước này.

{ Các Xcode 4.4, 4.5 (trở lên) cách:

Nhấp vào giao diện "Make cục bộ" nút Make localized button

Bây giờ đi qua trang chính của dự án của bạn. Main Project page

Và nhấp vào nút "+" trong Bản địa hóa và chọn ngôn ngữ bạn muốn hỗ trợ.

(Tôi sẽ chọn Đức/Deutsch)

List of languages

Bây giờ một cửa sổ sẽ xuất hiện yêu cầu bạn những tập tin mà bạn muốn để bản địa hoá, đảm bảo Chỉ các "Localizable.strings" tập tin được chọn và nhấn Finish.

Only the "Localizable.strings" file is selected

}

{ Các Xcode 4.3.5 và dưới cách:

Nhấp vào nút "+" dưới Localization và chọn ngôn ngữ bạn muốn ủng hộ.

(Tôi sẽ chọn Đức/Deutsch)

List of languages

}

.

.

.

.

Bây giờ bạn sẽ thấy rằng bạn có hai tệp trong tệp "Localizable.strings".

Localizable Files

Tiếp theo, thêm các chuỗi bản địa hóa của bạn bên trong cả hai tệp bản địa hóa.

English

German

Bây giờ ta trở lại phần mã hóa.

Ở đây tôi sẽ chỉ cần khai báo một số UILabel và đặt văn bản của nó thành chuỗi tệp có thể bản địa hóa.

Declare:

IBOutlet UILabel *testLabel; 

Và Bên trong viewDidLoad tôi sẽ thiết lập các văn bản sử dụng NSLocalizedString:

[testLabel setText:NSLocalizedString(@"TEST", nil)]; 

Để hoàn tất, chỉ cần kết nối testLabel của chúng tôi trong "Giao diện Builder".

Connect IBOutlet

Bây giờ bạn sẽ có thể để chạy dự án và xem chuỗi cục bộ. Và nếu bạn thay đổi ngôn ngữ, bạn cũng sẽ thấy thay đổi chuỗi được bản địa hoá.

English ResultChange the languageGerman Result

+4

Lưu ý hữu ích về Xcode 4.5 (Cần thêm nội dung bản địa từ trang thuộc tính dự án) – buskila

+1

Nhận xét của Aleksandar Azizi về Xcode 4.5 và sau đó thực sự áp dụng cho Xcode 4.4 trở lên. –

+1

Đây là một câu trả lời tuyệt vời! nó có hoạt động theo cùng cách với hình ảnh không? –

0

Hoặc bạn có thể sử dụng TraductoPro để tự động hóa quá trình này cho bạn và tiết kiệm rất nhiều oftime. Nó là một ứng dụng Mac tích hợp tốt với Xcode.

1

Bạn có thể mất tiên tiến của User Defined Runtime Các thuộc tính:

http://cupobjc.blogspot.com.es/2014/04/interfaz-builder-localization.html

Đầu tiên xác định một thể loại mới cho UILabel:

#import "UILabel+Localized.h" 

@implementation UILabel (Localized) 
-(void) setTextLocalized:(NSString *)aText{ 
    [self setText:NSLocalizedString(aText, nil)]; 
} 
@end 

Sau đó, trong xây dựng giao diện, User Defined Runtime Các thuộc tính:

textLocalized Chuỗi chuỗi của bạn thành địa phương

enter image description here

Và bạn không cần phải khai báo IBOutlet, và không cần mã này trong viewDidLoad [testLabel setText: NSLocalizedString (@ "TEST", nil)];

0

Nếu bạn muốn có một cách năng động chuyển đổi ngôn ngữ bên trong ứng dụng của bạn và sử dụng một giải pháp dựa Pods kiểm tra:

https://github.com/nullic/DPLocalizationManager

Cài đặt với: pod 'DPLocalization', '~> 1.2'

Nó hỗ trợ các tập tin định vị tiêu chuẩn tương tự nhưng cũng sử dụng liên kết động sử dụng User Defined runtime attributes và bên trong mã như viewDidLoad.

Một số ví dụ trong dự án ví dụ:

self.startup.text = DPLocalizedString(@"TITLE", nil); 
self.label.autolocalizationKey = @"LABEL_TEXT"; 
[self.label updateAutolocalizationArguments:@[@"Hello", @1234567890, [NSDate date]]]; 
self.autolocalizationKey = @"TITLE"; 

Tải về các dự án git bao gồm dự án ví dụ cho thấy một số ví dụ.

+0

Ngoài ra tôi đã sử dụng câu trả lời từ Aleksander Azizi để xây dựng một tệp bản địa hóa chuẩn bên trong dự án, nhưng cần một cách để chuyển đổi dễ dàng bên trong ứng dụng giữa các ngôn ngữ. –

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