Thay đổi ngôn ngữ phát triển trong Xcode


81

Tôi cần đặt tiếng Tây Ban Nha làm ngôn ngữ phát triển cho ứng dụng iOS. Tôi đã sử dụng Xcode 6 và tôi đã thay đổi Localization native development regionmục nhập trong app's Info.plist( CFBundleDevelopmentRegion) từ "en" thành "es". Tuy nhiên, trong Project> Info> Localizations, tiếng Anh vẫn được đặt là Ngôn ngữ Phát triển.

Như đã nói trong Tài liệu Tham khảo Khóa Danh sách Thuộc tính Thông tin , CFBundleDevelopmentRegionchỉ định ngôn ngữ mặc định. Tôi cần đặt tiếng Tây Ban Nha thành ngôn ngữ mặc định, tôi còn thiếu gì?

Cảm ơn

Câu trả lời:


91

Đây là cách bạn có thể làm điều này:

  1. Trước tiên, hãy thêm ngôn ngữ bạn muốn làm ngôn ngữ Cơ sở của mình. Bỏ chọn tất cả các tệp mà Xcode cung cấp để bản địa hóa cho bạn.
  2. Trong Info.plist, thay đổi vùng phát triển thành ngôn ngữ mà bạn muốn làm ngôn ngữ cơ sở của mình. Lưu ý rằng thuộc tính có một chút tên hơi sai, vì giá trị của nó phải là mã ngôn ngữ (với mã quốc gia tùy chọn), chứ không phải là mã vùng hoặc quốc gia.
  3. Đóng dự án của bạn trong Xcode. Trong một trình soạn thảo mã khác, hãy mở projectname.xcodeproj/project.pbxprojvà tìm kiếm developmentRegion. Bạn sẽ thấy một dòng như thế developmentRegion = English;. Thay đổi điều này để tham chiếu cùng một ngôn ngữ mà bạn đã đặt trong Info.plisttệp của mình .
  4. Mở lại dự án trong Xcode. Xem qua tất cả các tệp có thể bản địa hóa của bạn và chọn hộp bên cạnh tiếng Anh để tạo các tài nguyên có thể bản địa hóa. Lưu ý rằng đối với bảng phân cảnh và xib, Xcode có thể tạo bảng phân cảnh thay vì tệp chuỗi. Nếu điều đó xảy ra, chỉ cần thay đổi loại tệp thành tệp chuỗi.

Đây là một ví dụ về kết quả mà tôi sử dụng frlàm ngôn ngữ Cơ sở:

Thông tin dự án

Nộp thông tin


3
Bạn đã thay đổi dòng thành developmentRegion = francais, hoặc developmentRegion = fr?
Flimm

2
fr là những gì bạn muốn sử dụng ở đây
lensovet

3
Lưu ý rằng bạn cũng có thể cần thêm mã ngôn ngữ của mình vào knownRegionsdanh sách (trong tệp .pbxproj) để nó hiển thị thuộc tính trong cài đặt dự án.
Patrick Pijnappel

1
Bạn không cần phải làm điều đó nếu bạn thêm bản địa hóa trước, đây là bước 1 của hướng dẫn trong câu trả lời này.
lensovet

2
Chỉ cần làm rõ. developmentRegionphải được đặt tại frvà không francais. Lý do: phát triển của project.pbxprojRegion được chuyển tới đích export DEVELOPMENT_LANGUAGE=frvà giá trị này thường được sử dụng như <key>CFBundleDevelopmentRegion</key<string>$(DEVELOPMENT_LANGUAGE)</string>trong Info.plist và CFBundleDevelopmentRegiontài liệu cho biết nó phải ở định dạng ISO 639-1 hoặc ISO 639-2 developer.apple.com/documentation/bundleresources /… . Vì vậy, 'fr' là đúng và 'francais' thì không.
nacho4d

53

Đối với Xcode 9 đến 11:

Đóng Xcode.

  1. Mở project.pbxproj của bạn trong trình soạn thảo văn bản
  2. Tìm kiếm developmentRegion và đặt giá trị của nó (es cho tiếng Tây Ban Nha, fr cho tiếng Pháp, ...)
  3. Tìm kiếm các cụm từ đã biết và thêm ngôn ngữ mới vào danh sách

Mở Xcode: Thông tin dự án của bạn bây giờ sẽ hiển thị tên ngôn ngữ với Ngôn ngữ phát triển bên cạnh.


2
Để tìm .pbxprojtệp dự án của bạn : stackoverflow.com/a/3054073/4084269 😉
Josselin

Rõ ràng là không cần phải đóng Xcode (ít nhất là trong Xcode 11)
Snowy_1803,

Làm cách nào để thêm một vài ngôn ngữ làm ngôn ngữ ứng dụng trong App Store? Ví dụ: ngôn ngữ ứng dụng đã xuất bản của tôi chỉ hiển thị tiếng Anh, nhưng tôi cũng muốn thêm tiếng Đức làm ngôn ngữ ứng dụng
David

@David đó là điều bạn có thể làm trên kết nối App Store
ahbou

Cảm ơn câu trả lời của bạn @ahbou. Nhưng tôi không thể tìm thấy bất kỳ nơi nào để làm điều đó. Bạn có thể vui lòng chỉ dẫn tôi không?
David

37

Trong tệp .xcodeproj của dự án, hãy tìm kiếm chuỗi developmentRegion. Được cho là, nó nói "Tiếng Anh" ngay bây giờ. Nếu bạn thay đổi nó thành "Tiếng Tây Ban Nha", Xcode 6 sẽ nhận ra tiếng Tây Ban Nha là ngôn ngữ bản địa hóa mặc định của dự án của bạn trong tab "Thông tin" miễn là bạn thêm "Tiếng Tây Ban Nha" vào danh sách.

Bạn có thể đọc thêm về chủ đề này tại http://eschatologist.net/blog/?p=224


1
Cảm ơn. Tôi vừa làm những gì bạn giải thích, và bây giờ tôi đã đặt ngôn ngữ Tây Ban Nha làm Mục tiêu phát triển trong Thông tin> Vị trí. Tuy nhiên, nếu tôi thay đổi ngôn ngữ của thiết bị sang ngôn ngữ mà tôi chưa xác định trong Bản địa hóa (giả sử như tiếng Pháp, vì tôi chỉ xác định bản địa hóa tiếng Anh và tiếng Tây Ban Nha), tôi nhận được ứng dụng vẫn được bản địa hóa bằng tiếng Anh chứ không phải tiếng Tây Ban Nha như tôi dự kiến ​​...
AppsDev

Thiết bị có thể được thiết lập để thích tiếng Anh hơn tiếng Tây Ban Nha liên quan đến dự phòng ngôn ngữ. Dưới đây là một số thông tin chi tiết về cách gói của ứng dụng được tìm kiếm cho nội dung bản địa hóa: developer.apple.com/library/ios/documentation/CoreFoundation/…
Elwisz

1
Nếu bạn muốn thay đổi ngôn ngữ mặc định và ứng dụng của bạn đã có trong cửa hàng, đừng quên thay đổi ngôn ngữ đó trong iTunes Connect.
Vive

@Arefly trong cài đặt Ngôn ngữ & Khu vực trên thiết bị, chạm vào nút Chỉnh sửa ở phía trên bên phải và sắp xếp lại danh sách ngôn ngữ sao cho tiếng Anh bên dưới tiếng Tây Ban Nha trong danh sách ngôn ngữ.
lensovet

5

mở mục tiêu của bạn -> thông tin -> thay đổi "Khu vực phát triển bản địa hóa bản địa hóa" thành ngôn ngữ của bạn


16
chỉ điều này là không đủ.
lensovet

0

Đối với một người cần trợ giúp như tôi, tôi có hai mục tiêu, một mục tiêu tôi muốn là bản địa hóa EN Base và mục tiêu thứ hai tôi cần là một ngôn ngữ khác. Tùy chọn được đề cập ở trên: "change projectname.xcodeproj / project.pbxproj và tìm kiếm developmentRegion and change ..." không hoạt động với tôi vì mục tiêu.

Điều làm việc cho tôi, Xcode 11.5, là tôi chỉ cần thay đổi mã ngôn ngữ trong "Khu vực phát triển bản địa hóa bản địa hóa" cho mục tiêu cụ thể đó và nó hoạt động, không cần thay đổi bất kỳ điều gì trong projectname.xcodeproj / project.pbxproj PS Đây " Khu vực phát triển bản địa hóa bản địa hóa "phải có mã quốc gia như fr_Fr hoặc trong trường hợp của tôi là hr cho tiếng Croatia

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.