Saya melokalkan bagian dari aplikasi saya dengan membuat storyboard base.lproj dan 3 file string untuknya. Itu sebulan yang lalu dan setelah itu saya menambahkan controller tampilan baru ke aplikasi, tetapi tombol dan label controller ini tidak muncul dalam file string
Apakah mungkin untuk memperbarui file string 3 storyboard terlampir ini atau saya harus menambahkan terjemahan string baru secara terprogram dengan menggunakan NSLocalizableString dan Localizable.strings?
Jawaban:
Ada dua opsi:
Pilihan 1
Xcode dapat "memuat kembali" file dengan mengonversi file tersebut menjadi tipe file [Interface Builder Cocoa Touch Storyboard] atau tipe file [Localizable Strings] .
pilihan 2
Gunakan ibtool untuk mengekstrak string di storyboard Anda.
Buka aplikasi Terminal
Temukan direktori Base.lproj Anda
Gunakan baris ini untuk mengekstrak string:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
Setelah ibtool mengekstrak string ke file_name.strings, Anda dapat menyalin dan menempelkannya ke file .strings Anda yang asli
Kunjungi untuk info lebih lanjut: https://conyac.cc/business/columns/localization_guide_ios
sumber
Lihat BartyCrouch , itu menyelesaikan masalah Anda dengan sempurna. Ini juga open source , dipelihara secara aktif dan dapat dengan mudah diinstal dan terintegrasi dalam proyek Anda.
Instal BartyCrouch melalui Homebrew :
Atau, instal melalui Mint :
Perbarui file Storyboards / XIBs Strings Anda secara bertahap:
Ini akan melakukan apa yang Anda cari.
Dalam rangka untuk menjaga Storyboard Anda / XIBs Strings files diperbarui dari waktu ke waktu saya sangat merekomendasikan menambahkan membangun script (petunjuk tentang cara menambahkan membangun script di sini ):
Selain memperbarui file Storyboards / XIBs Strings Anda secara bertahap, ini juga akan memastikan
Localizable.strings
file Anda tetap diperbarui dengan kunci yang baru ditambahkan dalam kode menggunakanNSLocalizedString
dan menunjukkan peringatan untuk kunci duplikat atau nilai kosong.Pastikan untuk memeriksa BartyCrouch di GitHub atau artikel terperinci ini untuk informasi tambahan.
sumber
Anda dapat secara manual menambahkan kunci dalam file pelokalan Anda. Anda dapat menemukan objek utama dengan memilihnya di editor storyboard. Mari kita lihat di
Object-ID
inspektur identitas. Itu terlihat seperti"nwc-b2-19c"
Pada pembaruan pelokalan Anda atau tambahkan terjemahan. Sebagai contoh :
sumber
Yang ini bukan untuk semua orang, tetapi tidak memerlukan alat tambahan di terminal dan mudah untuk perubahan manual kecil. (Jangan pertimbangkan ini ketika Anda ingin mengotomatiskan proses Anda.)
Langkah 0: Pengaturan bahasa Storyboard
Langkah ini dilakukan hanya sekali.
Sekarang ketika saya menambahkan sesuatu ke storyboard saya melakukan hal berikut
Langkah 1: tambahkan file string English localizable
cukup tandai item baris bahasa Inggris.
Ini menciptakan file string bahasa Inggris yang benar-benar baru dilokalisasi dengan semua baris
Langkah 2: salin item baris baru ke file bahasa lainnya
dan terjemahkan
Langkah 3: hapus tanda Bahasa Inggris, hapus file string yang dapat dilokalisasi yang sesuai
file hanya diperlukan untuk mendapatkan item baris baru
Ini adalah proses yang mudah dan cepat, semuanya dilakukan di editor storyboard
Edit:
Proses ini bekerja sangat baik dengan storyboard kecil. Misalnya, saya memiliki proyek berbasis tab dan saya memiliki papan cerita untuk setiap tab.
Cari "referensi storyboard" untuk menemukan tutorial.
Contoh yang bagus: Referensi Storyboard dalam Xcode, di mana kita harus menggunakannya?
Jadi setiap storyboard kecil hanya memiliki beberapa string untuk dilokalisasi.
sumber
Akhirnya, solusi saya adalah (belum sempurna tetapi efektif) salin terjemahan sebelumnya dan tempel di file baru yang dibuat dengan menghapus centang dan memeriksa kotak bahasa Lokalisasi.
Ini akan berguna dalam beberapa kasus seperti milik saya ketika Anda harus mengubah hanya satu atau dua teks.
sumber
Saya pikir cara terbaik adalah dengan menggunakan Pelokalan ekspor / impor bawaan:
PS Jika Anda tidak ingin mengedit di XLIFF Editor dan telah melewatkan langkah 3, XCode tidak dapat menyimpan string baru. Dalam hal ini, buka .xliff di XLIFF Editor, simpan kembali tanpa perubahan dan impor file baru.
sumber
/* Class = "UILabel"; text = "a basic text"; ObjectID = "HFW-aN-MTb"; */
, tetapi label baru TIDAK dibuat dalam file Main.strings. Kemudian saya mengedit file .xliff untuk menambahkan terjemahan untuk label baru. Saya mengimpornya lagi. Label baru sekarang dimasukkan dalam file Main.strings.Ketika Anda mengklik di storyboard Anda, Main.storyboard misalnya ... Di sisi kanan Anda dapat melihat menu pelokalan (lihat gambar di atas). Jika Anda menghapus centang dan memeriksa lagi bahasa, file akan dihasilkan lagi. Jadi saya biasanya menyalin konten, saya menghasilkan file lagi dan kemudian saya tempel konten yang saya salin dan sudah diterjemahkan.
Ini adalah cara yang saya gunakan untuk memperbarui kamus.
sumber
Saya punya storyboard besar dengan banyak string di sana. Dua bahasa berbasis bahasa Inggris dan bahasa Arab lainnya. Tugasnya adalah menambahkan beberapa bidang dan label ke storyboard dan menambahkan lokalisasi untuk mereka tanpa skrip dan NSLocalizableStrings.
Untuk saya bantu selanjutnya:
Pertama : Pastikan, Anda memiliki git untuk mencegah perubahan yang tidak terduga.
Editor
->Export For Localization...
. Simpan file ar.xliff di suatu tempat.sumber
Ada
aplikasialat baris perintah dari Apple bernama AppleGlot yang mendukung pelokalan tambahan. Saya belum mencobanya, tetapi sepertinya alat yang Anda cari (beberapa waktu yang lalu).sumber
appleglot
Alat ini bekerja sama dengan bundel aplikasi akhir. Ini adalah pendekatan yang sangat berbeda untuk aplikasi terjemahan.Ini skripnya untuk mengekstrak string dari storyboard dan xibs, dan menggabungkannya dengan terjemahan yang ada.
Untuk menjalankan skrip secara otomatis saat Anda membangun sebuah proyek, masukkan skrip ke direktori root proyek Anda, dan tambahkan fase Jalankan Skrip dengan baris berikut ke fase build target dalam pengaturan proyek Anda.
Atau Anda dapat menjalankan skrip di Terminal secara manual saat Anda mau.
Script berjalan
ibtool
saat Tha Leang menjawab. Itu juga berjalangenstrings
untuk mengekstrak dan menggabungkan string yang ditandai denganNSLocalizedString
dalam kode sumber Anda. Skrip ini didasarkan pada skrip dalam posting ini , yang menggabungkan string setelah dijalankangenstrings
.sumber
Pendekatan termudah dan sangat berisiko adalah, cukup salin ID Obyek dari storyboard dan tambahkan kunci baru untuk kunci dalam file yang dilokalkan seperti contoh di bawah ini:
1: Salin id objek seperti di bawah ini dari storyboard untuk komponen:
2: Tambahkan kunci baru dalam file lokal seperti di bawah ini:
Catatan: Ini adalah pendekatan yang sangat tidak berisiko jika Anda ingin memperbarui hanya beberapa komponen jika tidak, Anda dapat membuat ulang file lokal untuk storyboard.
sumber
Xlifftool tersedia sebagai aplikasi Mac dan berfungsi dengan baik. Ini menunjukkan semua string dan objek yang dapat diterjemahkan dari info.plist, string yang dapat dilokalisasi, dan storyboard.
Dapatkan di sini untuk mac: https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12
Langkah 1: di Xcode, pilih folder proyek Anda di navigator proyek. Kemudian pilih Editor / Ekspor untuk Pelokalan ...
String yang dapat diterjemahkan Anda akan dimasukkan dalam file xliff di bawah bahasa yang Anda pilih untuk pelokalan dalam Xcode.
Langkah 2: Buka file itu dengan xlifftool dan terjemahkan atau perbarui terjemahan Anda di sana yang telah dilakukan sebelumnya.
Langkah 3: Kemudian unggah kembali ke proyek Anda dengan Editor / Impor Lokasi ...
sumber
Ini adalah cara mudah saya untuk memperbarui teks baru dari storyboard atau xib ke string pelokalan
1- gunakan skrip ini http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2- pilih string pelokalan Anda yang ingin Anda perbarui dan alihkan string bahasa Anda dari "String " ke "storyboard builder interface"
3- beralih kembali :)
Selesai
sumber
Pilihan 1
Xcode dapat "memuat kembali" file dengan mengonversi file ke
[Interface Builder Cocoa Touch Storyboard]
tipe file atau[Localizable Strings]
tipe file.Pilih file storyboard dasar Anda dari Project Navigator Temukan bagian Pelokalan di Inspektur File . Jika file Anda saat ini a
[Localizable Strings]
, ubah ke[Interface Builder Cocoa Touch Storyboard]
atau sebaliknya.Xcode seharusnya mengkonversi storyboard Anda ke versi saat ini, sambil mempertahankan upaya lokalisasi lama Anda. Di sini Anda dapat mengubah file kembali ke jenis file asli jika Anda mau.
Opsi 2
Gunakan
ibtool
untuk mengekstrak string di storyboard Anda.Buka aplikasi Terminal
Temukan
Base.lproj
direktori AndaGunakan baris ini untuk mengekstrak string:
Setelah ibtool mengekstrak string
file_name.strings
, Anda dapat menyalin dan menempelkannya ke.strings
file asli Anda .sumber