Uygulamanızı yerelleştirme (Görüntülemeler)

Kavramlar ve Jetpack Compose uygulaması

Android işletim sistemi birçok bölgede pek çok cihazda çalışır. En fazla kullanıcıya ulaşabilmek için uygulamanızın metinlerle, ses dosyalarıyla, sayılarla, para birimleriyle ve grafiklerle, kullanıldığı bölgelere uygun biçimde çalıştığından emin olun.

Bu sayfada, Android uygulamalarını yerelleştirmeye yönelik bazı en iyi uygulamalar açıklanmaktadır.

Kotlin veya Java programlama dili hakkında temel bilgilere sahip olmanız ve Android kaynak yükleme, XML'de kullanıcı arayüzü öğelerini bildirme, etkinlik yaşam döngüsü gibi geliştirme hususları ile uluslararasılaştırma ve yerelleştirmenin genel ilkeleri hakkında bilgi sahibi olmanız gerekir.

Uygulamanızın yerelleştirilmiş yönlerini temel uygulama işlevselliğinden 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 veya Java tabanlı kodunuz tarafından yönlendirilir. Örneğin, kullanıcılar yerel ayara bağlı olarak farklı şekilde biçimlendirilmesi veya sıralanması gereken veriler giriyorsa verileri programatik olarak işlemek için Kotlin veya Java programlama dilini kullanırsınız. Bu sayfada, Kotlin veya Java tabanlı kodunuzu yerelleştirme konusu ele alınmamaktadır.

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

Yerelleştirme için kaynakları kullanma

Bu bölümde, varsayılan kaynakların ve alternatif kaynakların nasıl oluşturulacağı açıklanmaktadır. Ayrıca kaynaklara nasıl öncelik verildiği ve kaynaklarınıza kodda nasıl referans vereceğ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 (uygulamanızın kullanıcılarının çoğunun konuştuğu dil) kullanın.

Varsayılan kaynak kümesi, varsayılan çizilebilir öğeleri ve düzenleri de içerir. Ayrıca animasyonlar gibi diğer kaynak türlerini de içerebilir. Bu kaynaklar aşağıdaki dizinlere yerleştirilir:

  • res/drawable/: Google Play'deki uygulama simgesi için en az bir grafik dosyası içeren zorunlu dizin
  • res/layout/: varsayılan düzeni tanımlayan bir XML dosyasını içeren zorunlu dizin
  • res/anim/: res/anim-<qualifiers> klasörünüz varsa gereklidir
  • res/xml/: res/xml-<qualifiers> klasörünüz varsa gereklidir
  • res/raw/: res/raw-<qualifiers> klasörünüz varsa gereklidir

İpucu: Kodunuzda Android kaynağına yapılan her referansı inceleyin. Her biri için varsayılan bir kaynak tanımlandığından emin olun. Ayrıca varsayılan dize dosyasının eksiksiz olduğundan emin olun: Yerelleştirilmiş dize dosyası dizelerin bir alt kümesini içerebilir ancak varsayılan dize dosyası hepsini içermelidir.

Yerelleştirme ipuçları

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

Esnek bir düzen tasarlama

Düzeninizi belirli bir dile uyacak şekilde yeniden düzenlemeniz gerekiyorsa bu dil için alternatif bir düzen oluşturabilirsiniz. Örneğin, Almanca bir düzen için res/layout-de/main.xml. Ancak bu işlem, uygulamanızın bakımını zorlaştırabilir. Daha esnek tek bir düzen oluşturmak daha iyidir.

Bir diğer tipik durum ise düzeninde farklı bir şey gerektiren bir dildir. Örneğin, uygulama Japonca çalışırken iki ad alanı içeren bir iletişim formunuz olabilir ancak uygulama başka bir dilde çalışırken üç ad alanı olabilir. Bu durumu iki şekilde ele alabilirsiniz:

  • Dile bağlı olarak programatik olarak etkinleştirebileceğiniz veya devre dışı bırakabileceğiniz bir alan içeren bir düzen oluşturun.
  • Ana düzende, değiştirilebilir alanı içeren başka bir düzen olmalıdır. İkinci düzen, farklı diller için farklı yapılandırmalara sahip olabilir.

Manuel yerel ayar araması için Android Context nesnesini kullanma

Android'in kullanıma sunduğu Context nesnesini kullanarak yerel ayarı arayabilirsiniz. Aşağıdaki örnekte bu işlem gösterilmektedir:

Kotlin

val primaryLocale: Locale = context.resources.configuration.locales[0]
val locale: String = primaryLocale.displayName

Java

Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0);
String locale = primaryLocale.getDisplayName();