Uygulamanızı yerelleştirme

Android, birçok bölgede çok sayıda cihazda çalışır. En fazla kullanıcıya ulaşmak için uygulamanızın metin, ses dosyaları, sayılar, para birimi ve grafikleri, uygulamanızın kullanıldığı yerel ayarlara uygun şekilde işlediğinden emin olun.

Bu sayfada, Android uygulamalarını yerelleştirmeyle ilgili en iyi uygulamalar açıklanmaktadır.

Kotlin hakkında temel bilgilere sahip olmanız ve Android kaynak yükleme, etkinlik yaşam döngüsü gibi geliştirme konuları ile uluslararasılaştırma ve yerelleştirmenin genel ilkelerini bilmeniz gerekir.

Uygulamanızın yerelleştirilmiş yönlerini uygulamanın temel işlevlerinden mümkün olduğunca ayırmak için Android kaynak çerçevesini kullanmak iyi bir uygulamadır.

  • Uygulamanızın kullanıcı arayüzündeki içeriklerin çoğunu veya tamamını, bu sayfada ve Uygulama kaynaklarına genel bakış bölümünde açıklandığı gibi kaynak dosyalarına yerleştirin.
  • Kullanıcı arayüzünün davranışı ise Kotlin tabanlı kodunuz tarafından yönlendirilir. Örneğin, kullanıcılar yerel ayara göre farklı şekilde biçimlendirilmesi veya sıralanması gereken veriler girerse verileri programatik olarak işlemek için Kotlin'i kullanırsınız. Bu sayfada, Kotlin tabanlı kodunuzu nasıl yerelleştireceğiniz açıklanmamaktadır.

Bu kılavuzda, tüm Android uygulamalarında kullanılan temel Android yerelleştirme sistemi ele alınmaktadır. Bu yerelleştirilmiş kaynakları Jetpack Compose kullanıcı arayüzünüze nasıl yükleyeceğinizi öğrenmek için Compose'da kaynaklar başlıklı makaleyi inceleyin.

Uygulamanızdaki dizeleri yerelleştirmeyle ilgili kısa bir kılavuz için Farklı dilleri ve kültürleri destekleme başlıklı makaleyi inceleyin.

Genel bakış: Android'de kaynak değiştirme

Kaynaklar; metin dizeleri, sesler, grafikler ve Android uygulamanızın ihtiyaç duyduğu diğer statik verilerdir. Bir uygulama, her biri farklı bir cihaz yapılandırması için özelleştirilmiş birden fazla kaynak grubu içerebilir. Kullanıcı uygulamayı çalıştırdığında Android, cihaza en uygun kaynakları otomatik olarak seçip yükler.

Bu sayfada yerelleştirme ve yerel ayar ele alınmaktadır. Kaynak değiştirme ve belirtebileceğiniz tüm yapılandırma türleri (ör. ekran yönü veya dokunmatik ekran türü) hakkında ayrıntılı bilgi için Alternatif kaynaklar sağlama başlıklı makaleyi inceleyin.

Uygulamanızı yazarken uygulamanızın kullanacağı varsayılan ve alternatif kaynaklar oluşturursunuz. Kullanıcılar uygulamanızı çalıştırdığında Android sistemi, cihazın yerel ayarına göre hangi kaynakların yükleneceğini seçer. Kaynak oluşturmak için dosyaları projenin res/ dizininin özel olarak adlandırılmış alt dizinlerine yerleştirirsiniz.

Varsayılan kaynaklar neden önemlidir?

Uygulama, yerel ayara özgü metin sağlamadığınız bir yerel ayarda çalıştığında Android, varsayılan dizeleri res/values/strings.xml konumundan yükler. Bu varsayılan dosya yoksa veya uygulamanızın ihtiyaç duyduğu bir dize eksikse uygulamanız çalışmaz ve hata gösterir. Aşağıdaki örnekte, varsayılan metin dosyası eksik olduğunda neler olabileceği gösterilmektedir.

Örnek:

Bir uygulamanın Kotlin tabanlı kodu yalnızca iki dizeye (text_a ve text_b) başvuruyor. Uygulama, text_a ve text_b öğelerini İngilizce olarak tanımlayan yerelleştirilmiş bir kaynak dosyası (res/values-en/strings.xml) içeriyor. Uygulamada ayrıca text_a için bir tanım içeren ancak text_b için tanım içermeyen varsayılan bir kaynak dosyası (res/values/strings.xml) bulunur.

  • Bu uygulama, yerel ayarı İngilizce olan bir cihazda başlatıldığında sorunsuz çalışabilir. Bunun nedeni, res/values-en/strings.xml dosyasının gerekli metin dizelerinin her ikisini de içermesidir.
  • Ancak bu uygulama, dili İngilizce dışında bir dile ayarlanmış bir cihazda başlatıldığında kullanıcı bir hata mesajı ve Zorla Kapat düğmesi görür. Uygulama yüklenmiyor.

Bu durumu önlemek için bir res/values/strings.xml dosyasının mevcut olduğundan ve gerekli her dizeyi tanımladığından emin olun. Bu durum yalnızca dizeler için değil, tüm kaynak türleri için geçerlidir: Uygulamanızın çağırdığı tüm kaynakları (ör. çizilebilir öğeler, yazı tipleri veya renkler) içeren bir varsayılan kaynak dosyası grubu oluşturmanız gerekir. Test etme hakkında bilgi için Varsayılan kaynakları test etme bölümüne bakın.

Yerelleştirme için kaynakları kullanma

Bu bölümde, varsayılan kaynakların yanı sıra alternatif kaynakların nasıl oluşturulacağı açıklanmaktadır. Ayrıca, kaynaklara nasıl öncelik atandığı ve kodda kaynaklarınıza nasıl referans verdiğiniz de açıklanmaktadır.

Varsayılan kaynaklar oluşturma

Uygulamanın varsayılan metnini res/values/strings.xml içine yerleştirin. Bu dizeler için varsayılan dili, yani uygulamanızın kullanıcılarının çoğunun konuştuğunu tahmin ettiğiniz dili kullanın.

Varsayılan kaynak grubu, varsayılan çizilebilir öğeleri de içerir ve simgeler veya dizeler gibi diğer kaynak türlerini de içerebilir. Bu kaynaklar aşağıdaki dizinlere yerleştirilir:

  • res/drawable/: Uygulamanın Google Play'deki simgesi için en az bir grafik dosyası barındıran zorunlu dizin
  • res/xml/: res/xml-<qualifiers> klasörünüz varsa zorunludur
  • res/raw/: res/raw-<qualifiers> klasörünüz varsa zorunludur

Alternatif kaynaklar oluşturma

Bir uygulamayı yerelleştirmenin büyük bir kısmı, farklı diller için alternatif metinler sağlamaktır. Bazı durumlarda alternatif grafikler, sesler ve yerel ayarlara özgü diğer kaynaklar da sağlarsınız.

Bir uygulama, her biri farklı niteleyicilere sahip birçok res/<qualifiers>/ dizini belirtebilir. Farklı bir yerel ayar için alternatif kaynak oluşturmak istiyorsanız bir dili veya dil-bölge kombinasyonunu belirten bir niteleyici kullanırsınız. Kaynak dizininin adı, Alternatif kaynaklar sağlama bölümünde açıklanan adlandırma şemasına uygun olmalıdır. Aksi takdirde uygulamanız derlenemez.

Örnek:

Uygulamanızın varsayılan dilinin İngilizce olduğunu ve uygulamanızdaki tüm metinleri Fransızcaya, uygulama başlığı hariç tüm metinleri de Japoncaya yerelleştirmek istediğinizi varsayalım. Bu durumda, her biri yerel ayara özgü bir kaynak dizininde depolanan üç strings.xml dosyası oluşturursunuz:

  1. res/values/strings.xml
    title adlı dizeye ait metin de dahil olmak üzere, uygulamanın kullandığı tüm dizelerin İngilizce metnini içerir.
  2. res/values-fr/strings.xml
    title dahil olmak üzere tüm dizeler için Fransızca metin içermelidir.
  3. res/values-ja/strings.xml
    title hariç tüm dizeler için Japonca metin içermelidir.

Kotlin tabanlı kodunuz R.string.title öğesine başvuruyorsa çalışma zamanında şunlar gerçekleşir:

  • Cihaz Fransızca dışında bir dile ayarlanmışsa Android, res/values/strings.xml dosyasından title dizesini yükler.
  • Cihaz Fransızca olarak ayarlanmışsa Android, res/values-fr/strings.xml dosyasından title dizesini yükler.

Cihaz Japonca olarak ayarlanmışsa Android, res/values-ja/strings.xml dosyasında title dizesini arar. Ancak bu dosyada böyle bir dize bulunmadığından Android varsayılan seçeneğe geri döner ve res/values/strings.xml dosyasından İngilizce title dizesini yükler.

Hangi kaynaklar önceliklidir?

Bir cihazın yapılandırmasıyla eşleşen birden fazla kaynak dosyası varsa Android, hangi dosyanın kullanılacağına karar verirken bir dizi kuralı uygular. Bir kaynak dizini adında belirtilebilecek niteleyiciler arasında yerel ayar neredeyse her zaman önceliklidir.

Örnek:

Bir uygulamanın varsayılan bir grafik grubu ve her biri farklı bir cihaz kurulumu için optimize edilmiş iki grafik grubu daha içerdiğini varsayalım:

  • res/drawable/
    Varsayılan grafikleri içerir.
  • res/drawable-small-land-stylus/
    Ekran kalemiyle giriş yapılabilen ve yatay yönde QVGA düşük yoğunluklu ekrana sahip bir cihazda kullanılmak üzere optimize edilmiş grafikler içerir.
  • res/drawable-ja/
    Japonca ile kullanıma uygun şekilde optimize edilmiş grafikler içerir.

Uygulama, Japonca kullanacak şekilde yapılandırılmış bir cihazda çalışıyorsa Android, cihazın ekran kalemiyle giriş bekleyen ve yatay yönde QVGA düşük yoğunluklu ekrana sahip bir cihaz olup olmadığına bakılmaksızın grafikleri res/drawable-ja/ dizininden yükler.

İstisna: Seçim sürecinde yerel ayardan öncelikli olan tek niteleyiciler mobil ülke kodu (MCC) ve mobil ağ kodudur (MNC).

Örnek:

Aşağıdaki durumda olduğunuzu varsayalım:

  • Uygulama kodu R.string.text_a gerektiriyor.
  • İki alakalı kaynak dosyası mevcuttur:
    • res/values-mcc404/strings.xml. Bu, uygulamanın varsayılan dilinde (bu örnekte İngilizce) text_a içerir.
    • res/values-hi/strings.xml, Hintçe text_a içerir.
  • Uygulama, aşağıdaki yapılandırmaya sahip bir cihazda çalışıyor:
    • SIM kart, Hindistan'daki bir mobil ağa (MCC 404) bağlıdır.
    • Dil, Hintçe (hi) olarak ayarlanmış.

Cihaz Hintçe için yapılandırılmış olsa bile Android, res/values-mcc404/strings.xml dizesini text_a kaynağından (İngilizce) yükler. Bunun nedeni, kaynak seçimi sürecinde Android'in dil eşleşmesi yerine MCC eşleşmesini tercih etmesidir.

Seçim süreci her zaman bu örneklerdeki kadar basit değildir. Sürecin daha ayrıntılı bir açıklaması için Android, en uygun kaynağı nasıl bulur? başlıklı makaleyi inceleyin. Tüm niteleyiciler, Uygulama kaynaklarına genel bakış bölümünde öncelik sırasına göre açıklanır ve listelenir.

Kodda kaynaklara başvurma

Uygulamanızın Kotlin tabanlı kodunda, kaynaklara R.resource_type.resource_name veya android.R.resource_type.resource_name. söz dizimini kullanarak başvurursunuz. Daha fazla bilgi için Uygulama kaynaklarınıza erişme başlıklı makaleyi inceleyin.

Yerelleştirme için dizeleri yönetme

Bu bölümde, yerelleştirmeyle ilgili dizelerinizi yönetmeye yönelik en iyi uygulamalar açıklanmaktadır.

Tüm dizeleri strings.xml dosyasına taşıma

Uygulamalarınızı oluştururken dizeleri sabit kodlamayın. Bunun yerine, tüm dizelerinizi varsayılan bir strings.xml dosyasında kaynak olarak tanımlayın. Böylece dizeleri kolayca güncelleyebilir ve yerelleştirebilirsiniz. strings.xml dosyasındaki dizeler kolayca ayıklanabilir, çevrilebilir ve derlenmiş kodda herhangi bir değişiklik yapılmadan uygun niteleyicilerle uygulamanıza tekrar entegre edilebilir.

Örneğin, Compose ile aşağıdaki gibi bir dize yükleyebilirsiniz:

// In the res/values/strings.xml file
// <string name="compose">Jetpack Compose</string>

// In your Compose code
Text(
    text = stringResource(R.string.compose)
)

Metin içeren yapay görüntüler oluşturuyorsanız bu dizeleri de strings.xml içine alın ve çeviriden sonra görüntüleri yeniden oluşturun.

Kullanıcı arayüzü dizeleri için Android yönergelerini uygulayın

Kullanıcı arayüzlerinizi tasarlayıp geliştirirken kullanıcılarınızla nasıl iletişim kurduğunuza çok dikkat edin. Genel olarak, samimi ancak kısa ve öz bir stil kullanın ve kullanıcı arayüzlerinizde tutarlı bir stil kullanın.

Yazma stili ve kelime seçimi ile ilgili Materyal Tasarım önerilerini okuyup uyguladığınızdan emin olun. Böylece uygulamalarınız kullanıcıya daha şık görünür ve kullanıcıların kullanıcı arayüzünüzü daha hızlı anlamasına yardımcı olur.

Ayrıca, uygulama çubuğu, seçenekler menüsü, sistem çubuğu ve bildirimler gibi kullanıcı arayüzü öğeleri için mümkün olduğunca her zaman Android standart terminolojisini kullanın. Android terimlerinin doğru ve tutarlı bir şekilde kullanılması, çeviriyi kolaylaştırır ve kullanıcılar için daha iyi bir nihai ürün ortaya çıkarır.

Bildirilen dizeler için yeterli bağlam bilgisi sağlama

strings.xml dosyanızda dizeleri tanımlarken dizenin kullanıldığı bağlamı açıkladığınızdan emin olun. Bu bilgiler çevirmen için çok değerlidir ve daha kaliteli çeviri yapılmasını sağlar. Ayrıca dizelerinizi daha etkili bir şekilde yönetmenize de yardımcı olur.

Örnek:

<!-- The action for submitting a form. This text is on a button that can fit 30 chars -->
<string name="login_submit_button">Sign in</string>

Aşağıdakiler gibi bağlam bilgileri sağlayabilirsiniz:

  • Bu dize ne için kullanılır? Kullanıcıya ne zaman ve nerede gösterilir?
  • Bu özellik kullanıcı arayüzünde nerede bulunur? Örneğin, düğmelerdeki çeviriler metin kutularındakilere kıyasla daha az esnektir.

Çevrilmeyecek mesaj bölümlerini işaretleme

Dizeler genellikle başka dillere çevrilmesi amaçlanmayan metinler içerir. Yaygın örnekler arasında bir kod parçası, bir değer için yer tutucu, özel bir simge veya bir ad yer alır. Dizelerinizi çeviriye hazırlarken çevrilmeden olduğu gibi kalması gereken metinleri arayın ve işaretleyin. Böylece çevirmen bu metinleri değiştirmez.

Çevrilmeyecek metni işaretlemek için <xliff:g> yer tutucu etiketini kullanın. Aşağıda, mesajın bozulmasını önlemek için çeviri sırasında "%1$s" metninin değiştirilmemesi gerektiğini belirten örnek bir etiket verilmiştir:

<string name="countdown">
  <xliff:g id="time" example="5 days">%1$s</xliff:g> until holiday
</string>

Yer tutucu etiketi tanımlarken yer tutucunun ne için olduğunu açıklayan bir kimlik özelliği ekleyin. Uygulamanız daha sonra yer tutucu değerini değiştirirse beklenen kullanımı netleştirmek için örnek bir özellik sağladığınızdan emin olun.

Aşağıda, yer tutucu etiketlerle ilgili daha fazla örnek verilmiştir:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Example placeholder for a special Unicode symbol -->
<string name="star_rating">Check out our 5
    <xliff:g id="star">\u2605</xliff:g>
</string>
<!-- Example placeholder for a URL -->
<string name="app_homeurl">
    Visit us at <xliff:g
    id="application_homepage">http://my/app/home.html</xliff:g>
</string>
<!-- Example placeholder for a name -->
<string name="prod_name">
    Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g>
</string>
<!-- Example placeholder for a literal -->
<string name="promo_message">
    Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>" to get a discount.
</string>
...
</resources>

Yerelleştirme kontrol listesi

Android uygulamalarını yerelleştirme ve dağıtma sürecine genel bir bakış için Uygulamanızı çevirme ve yerelleştirme başlıklı makaleyi inceleyin.

Yerelleştirme ipuçları

Uygulamanızı yerelleştirirken bu ipuçlarını uygulayın.

Uygulamanızı her yerel ayarda çalışacak şekilde tasarlama

Kullanıcının uygulamanızı çalıştırdığı cihaz hakkında herhangi bir varsayımda bulunmayın. Cihazda beklemediğiniz bir donanım olabilir veya cihaz, planlamadığınız ya da test edemediğiniz bir yerel ayara ayarlanmış olabilir. Uygulamanızı, çalıştığı cihaz ne olursa olsun normal şekilde çalışacak veya düzgün bir şekilde hata verecek şekilde tasarlayın.

Önemli: Uygulamanızın eksiksiz bir varsayılan kaynak seti içerdiğinden emin olun: Klasör adlarında ek değiştiriciler olmadan res/drawable/ ve res/values/ klasörlerini ekleyin. Bu klasörler, uygulamanızın ihtiyaç duyduğu tüm resimleri ve metinleri içermelidir.

Bir uygulamada varsayılan kaynaklardan biri bile eksikse uygulama, desteklenmeyen bir yerel ayara ayarlanmış cihazlarda çalışmaz. Örneğin, res/values/strings.xmlvarsayılan dosyada uygulamanın ihtiyaç duyduğu bir dize eksikse uygulama desteklenmeyen bir yerel ayarda çalıştırılıp res/values/strings.xml yüklenmeye çalışıldığında kullanıcı bir hata mesajı ve Zorla Kapat düğmesi görür.

Daha fazla bilgi için Varsayılan kaynakları test etme bölümüne bakın.

İhtiyacınız olandan daha fazla kaynak dosyası ve metin dizesi oluşturmaktan kaçının.

Uygulamanızdaki her kaynak için yerel ayara özgü bir alternatif oluşturmanız gerekmeyebilir. Örneğin, res/drawable/ dizininde tanımlanan bir uygulama logosu her yerel ayarda çalışabilir. Bu durumda alternatif grafik dosyaları oluşturmanız gerekmez.

Ayrıca, her dize için alternatif metin oluşturmanız gerekmeyebilir. Örneğin, aşağıdakileri varsayalım:

  • Uygulamanızın varsayılan dili Amerikan İngilizcesidir. Uygulamanın kullandığı her dize, Amerikan İngilizcesi yazım kurallarına göre res/values/strings.xml içinde tanımlanır.
  • Birkaç önemli ifade için İngiliz İngilizcesi yazımını kullanmak istiyorsunuz. Uygulamanız Birleşik Krallık'taki bir cihazda çalıştırıldığında bu alternatif dizelerin kullanılmasını istiyorsunuz.

Bunun için, yalnızca uygulama Birleşik Krallık'ta çalışırken farklı olan dizeleri içeren res/values-en-rGB/strings.xml adlı küçük bir dosya oluşturun. Diğer tüm dizeler için uygulama varsayılanlara geri döner ve res/values/strings.xml içinde tanımlananları kullanır.

Manuel yerel ayar araması için LocalConfiguration kullanın

Aşağıdaki örnekte gösterildiği gibi, Android'in sunduğu LocalConfiguration öğesini kullanarak yerel ayarı arayabilirsiniz:

val locale = LocalConfiguration.current.locales[0]

Geliştirici Konsolu'ndaki uygulama

Uygulama Çeviri Hizmeti, Google Play Console'a entegre edilmiştir. Bu sayede anında fiyat teklifi alabilir ve bir çeviri şirketine sipariş verebilirsiniz. Uygulama kullanıcı arayüzü dizeleri, Google Play Store girişi metni, uygulama içi satın alma adları ve reklam kampanyası metni için bir veya daha fazla dilde çeviri siparişi verebilirsiniz.

Uygulama dizelerini çevirmek için Gemini'ı kullanma

Android Studio'da Gemini'ı kullanarak uygulamanızın dize kaynaklarını doğrudan projenizde çevirebilirsiniz. Daha fazla bilgi için Uygulamanızı çevirme ve yerelleştirme başlıklı makaleyi inceleyin.

Yerelleştirilmiş uygulamaları test etme

Yerelleştirilmiş uygulamanızı bir cihazda veya Android Emulator'ı kullanarak test edin. Özellikle, uygulamanızı test ederek gerekli tüm varsayılan kaynakların dahil edildiğinden emin olun.

Cihazda test etme

Test ettiğiniz cihazın, diğer yerlerdeki tüketicilerin kullandığı cihazlardan önemli ölçüde farklı olabileceğini unutmayın. Cihazınızda kullanılabilen yerel ayarlar, diğer cihazlarda kullanılabilenlerden farklı olabilir. Ayrıca cihaz ekranının çözünürlüğü ve yoğunluğu farklı olabilir. Bu da kullanıcı arayüzünüzdeki dizelerin ve çizilebilir öğelerin görünümünü etkileyebilir.

Bir cihazda yerel ayarı veya dili değiştirmek için Ayarlar uygulamasını kullanın.

Oluşturulabilir önizlemelerle test etme

Cihazda test etmeden önce Android Studio'da composable önizlemeleri kullanarak yerelleştirilmiş kullanıcı arayüzlerini emülatöre dağıtmadan test edebilirsiniz. Kullanıcı arayüzünüzü farklı dillerde önizlemek için @Preview ek açıklamasını (@Preview(locale = "fr") gibi) kullanın. Ayrıca @Preview(locale = "ar") gibi bir RTL yerel ayarı belirterek sağdan sola (RTL) düzenleri de test edebilirsiniz.

Emülatörde test etme

Emülatörü kullanma hakkında ayrıntılı bilgi için Android Emulator'da uygulama çalıştırma başlıklı makaleyi inceleyin.

Özel yerel ayar oluşturma ve kullanma

"Özel" yerel ayar, Android sistem görüntüsünün açıkça desteklemediği bir dil veya bölge kombinasyonudur. Uygulamanızın özel bir yerel ayarda nasıl çalıştığını test etmek için emülatörde özel bir yerel ayar oluşturabilirsiniz. Bunu yapmanın iki yolu vardır:

  • Uygulama sekmesinden erişilebilen Custom Locale uygulamasını kullanın. Özel bir yerel ayar oluşturduktan sonra yerel ayar adına dokunup basılı tutarak bu ayara geçin.
  • Aşağıdaki bölümde açıklandığı gibi adb kabuğundan özel bir yerel ayara geçin.

Emülatörü Android sistem görüntüsünde bulunmayan bir yerel ayara ayarladığınızda sistem, varsayılan dilinde görüntülenir. Ancak uygulamanız düzgün bir şekilde yerelleştiriliyor.

adb kabuğundan emülatör yerel ayarını değiştirme

adb kabuğunu kullanarak emülatördeki yerel ayarı değiştirmek için aşağıdakileri yapın:

  1. Test etmek istediğiniz yerel ayarı seçin ve BCP-47 dil etiketini belirleyin (ör. Kanada Fransızcası için fr-CA).
  2. Bir emülatör başlatın.
  3. Ana makinedeki bir komut satırı kabuğundan aşağıdaki komutu çalıştırın:
    adb shell
    Alternatif olarak, bağlı bir cihazınız varsa -e seçeneğini ekleyerek emülatörü istediğinizi belirtin:
    adb -e shell
  4. adb kabuk isteminde (#) şu komutu çalıştırın:
    setprop persist.sys.locale [BCP-47 language tag];stop;sleep 5;start
    Köşeli parantez içindeki bölümleri 1. adımdaki uygun kodlarla değiştirin.

    Örneğin, Kanada Fransızcasında test etmek için:
    setprop persist.sys.locale fr-CA;stop;sleep 5;start

Bu işlem, emülatörün yeniden başlatılmasına neden olur. Ana ekran tekrar göründüğünde uygulamanızı yeniden başlatın. Uygulama yeni yerel ayarla başlatılır.

Varsayılan kaynakları test etme

Bir uygulamanın ihtiyaç duyduğu her dize kaynağını içerip içermediğini test etmek için aşağıdakileri yapın:

  1. Emülatörü veya cihazı, uygulamanızın desteklemediği bir dile ayarlayın. Örneğin, uygulamada res/values-fr/ dizininde Fransızca dizeler varsa ancak res/values-es/ dizininde İspanyolca dize yoksa emülatörün yerel ayarını İspanyolca olarak ayarlayın. Özel Yerel Ayar uygulamasını kullanarak emülatörü desteklenmeyen bir yerel ayara ayarlayabilirsiniz.
  2. Uygulamayı çalıştırın.
  3. Uygulamada bir hata mesajı ve Zorla Kapat düğmesi gösteriliyorsa mevcut olmayan bir dize aranıyor olabilir. res/values/strings.xml dosyanızın, uygulamanın kullandığı her dize için bir tanım içerdiğinden emin olun.

Test başarılı olursa diğer yapılandırma türleri için de testi tekrarlayın. Örneğin, uygulamada res/values-land/strings.xml adlı bir dize dosyası varsa ancak res/values-port/strings.xml adlı bir dosya yoksa emülatörü veya cihazı dikey yöne ayarlayın ve uygulamanın çalışıp çalışmadığını kontrol edin.

Ek kaynaklar

Yerelleştirme hakkında daha fazla bilgi için aşağıdaki ek kaynaklara bakın:

Belgeler

İçerik görüntüleme