
Halo, nama saya Alexander dan saya adalah pengembang aplikasi Android. Suatu ketika saya mendapatkan proyek yang memiliki 11 bahasa antarmuka dan lebih dari 600 baris. Tidak ada programmer di sisi pelanggan, jadi mereka menyimpan semuanya dalam spreadsheet Excel. Ketika mereka mengubah sesuatu di dalamnya, maka mereka mengirim tabel ini kepada kami dengan kata-kata "Kami menyoroti sel-sel dengan perubahan warna kuning, memperbarui aplikasi Android dan iOS, masing-masing." Setelah itu, dua pengembang kehilangan beberapa jam, membuat perubahan secara manual. Dan kemudian ternyata seseorang telah melupakan sesuatu di suatu tempat, membuat kesalahan atau tidak menyelesaikannya, ada perbedaan antara platform, pelanggan gelisah, para pengembang ketakutan. Situasi ini tidak sesuai dengan saya di root, saya mulai mencari cara untuk mengotomatiskan pembongkaran baris dari Excel. Hasilnya adalah kode VBScript yang hebat, yang masih kami nikmati. Sekarang saya akan menyajikan skrip ini kepada Anda. Di bawah potongan, sejumlah gambar dan kode skrip.
Jadi, pertama-tama lihatlah tabel itu sendiri dan evaluasi skala masalahnya:

Itu dia, cantik! Seperti yang dapat kita lihat, ada beberapa kolom layanan, nama jalur global, dan terjemahannya. Selain itu, beberapa baris disajikan hanya dalam bahasa Inggris dan Jerman, karena dalam versi 2.0 aplikasi, pelanggan memutuskan untuk meninggalkan hanya dua bahasa untuk saat ini dan menambahkan sisanya nanti. Atau mungkin dia mengasihani uang untuk penerjemah. Tapi ini urusannya, tapi kita harus memperhitungkannya. Artinya, skrip harus melewati sel kosong dan tidak membuat garis kosong untuk bahasa seperti itu. Selain itu, memformat karakter seperti "% s" di sel F5 harus dipertimbangkan. Mereka harus bekerja dengan, karena apa yang baik Android di iOS harus diganti dengan "% @". Saya akan memberi tahu Anda tentang nuansa lain di sepanjang jalan.
Agar tidak merana dan tidak menarik ekor kucing, saya akan memposting seluruh skrip sekarang:
VBScript dengan segala kemuliaan Sekarang saatnya untuk melewati nuansa.
Aplikasi kita membutuhkan beberapa izin pengguna. Di iOS, baris untuk meminta izin ini disimpan tidak seperti biasanya di Localizable.strings, tetapi di InfoPlist.strings, jadi di bagian paling awal skrip kami, kami menetapkan nama-nama baris yang akan dikirimkan ke InfoPlist:
Const NsCameraUsageDescription = "NsCameraUsageDescription" Const NSLocationAlwaysAndWhenInUseUsageDescription = "NSLocationAlwaysAndWhenInUseUsageDescription" Const NSLocationAlwaysUsageDescription = "NSLocationAlwaysUsageDescription" Const NSLocationWhenInUseUsageDescription = "NSLocationWhenInUseUsageDescription" Const NSPhotoLibraryAddUsageDescription = "NSPhotoLibraryAddUsageDescription" Const NSPhotoLibraryUsageDescription = "NSPhotoLibraryUsageDescription"
Fragmen penting berikutnya adalah nama-nama folder di mana semua file akan disimpan. Di iOS, semua folder diberi nama dengan penunjukan bahasa dua huruf, seperti "en.lproj", "de.lproj". Semuanya kecuali bahasa Rusia, di sini adalah "ru-RU". Dan dalam tabel itu sendiri, kolom-kolomnya ada dalam notasi Android. Oleh karena itu, parsim:
If objFSOandroid = "values" Then objFSOios = "en" & ".lproj" ElseIf objFSOandroid = "values-ru" Then objFSOios = "ru-RU" & ".lproj" Else objFSOios = Right(objFSOandroid,2) & ".lproj" End If
Dan tugas terakhir, mengganti dan melarikan diri karakter. Untuk iOS, kami akan mengubah, seperti yang saya katakan, % s menjadi % @ dan keluar dari kutipan dan apostrof:
iOSString = Replace(oTranslations.Sheets(1).Cells(nCounter, LanguageColumnIndex).Value, "%s", "%@") iOSString = Replace(iOSString, "'", "\'") iOSString = Replace(iOSString, chr(34), "\" & chr(34))
Untuk Android, kami juga lolos dari tanda kutip dan mengganti apa yang disebut karakter Umpan Garis ( Chr (10) ) dengan karakter Baris Baru yang biasa \ n . Dan ada alasan untuk ini. Di salah satu sel kami memiliki teks yang agak besar, dikompilasi oleh pelanggan di MS Word dan ditempatkan di sel Excel menggunakan pasta salin teknis. Dan sementara kami tidak menemukan penggantian yang tepat dengan coba-coba, di iOS teks ditampilkan dalam paragraf yang diperlukan, dan di Android digabungkan menjadi satu paragraf.
Kesimpulan
Seperti yang mungkin sudah Anda tebak, skrip berjalan di baris perintah Windows. Untuk mempermudah, kami menempatkan skrip dan file .xlsx di satu folder, buka baris perintah di sana dan tulis perintah:
cscript ConvertExcelToTXTandXML.vbs <filename>.xlsx
Selanjutnya, tekan Enter dan nikmati visualisasi skrip yang indah dalam bentuk titik-titik yang muncul di jendela perintah untuk setiap langkah program. Hasil karya raksasa skrip kami adalah dua folder, "ios" dan "res", yang isinya tetap disalin ke proyek iOS dan Android.
Itu saja. Saya harap skrip ini akan bermanfaat bagi seseorang dan menghemat banyak waktu.