ROM - APK Nasıl Türkçeleştirilir?

SmiLeToLiFe

Administrator
#1
Merhaba arkadaşlar,


Uzun bir aradan sonra yeni bir anlatım yapalım. Birçok arkadaş sürekli soruyor APK ve ROM nasıl Türkçe'leştirilir. 

Gerekli olanlar:

- ApkTool

- Java

- NotePad++

- Yeterli seviyede Android bilgisi

- Sabır :) 

Öncelikle bu konuda apk nasıl decompile edilir vs anlatımlar yapmayacağım. Ufak bir aramayla yüzlere anlatıma ulaşabilirsiniz ;) 


Genel Bilgiler:

Tema portlama yönteminde anlattığım gibi bu işin de temel anlamda nasıl olduğunu anlatarak başlamak istiyorum.

Bir rom türkçe veya diğer dilleri hangi kaynaktan alır?

- Romun dil kaynağı Framework-res.apk dır. Framework-res.apk içinde dil dosyamız varsa bu dil Ayarlar/Dil ve Giriş/ .... listesinde gözükür. Eğer Framework-res.apk içinde dil dosyası yoksa o zaman dil seçeneklerinde gözükmez.

Rom içinde yazan tüm Türkçe yazıların hepsi Framework-res.apk içindeki dil dosyasında mı?

- Hayır, değil. Romda bulunan apk ların %90 ' nın içinde apk nın görevine göre dil dosyaları mevcuttur.

İçinde dil dosyası olan her apk ya Türkçe dil dosyası eklememiz gerekir mi?

- Evet, gerekir. Eğer eklemezseniz eklemediğiniz apk nın görevi her neyse orada karşınıza çıkan şeyler Türkçe olmayacaktır. Örneğin saat uygulamasını dil eklemeyip geri kalan her şeye dil ekleseniz de saat uygulaması İngilizce olarak kalacaktır :) 

Dil dosyalarının çalışma mantığı:

Ana dil dosyamız Framework-res.apk içindedir. Genel olarak her romun temel dili İngilizcedir. Bu İngilizce dil dosyası Framework-res.apk nın içinde bulunan Values klasöründedir. Bu Values klasöründe string.xml vardır. İşte bu xml içinde İngilizce dil dosyasıdır. 

Framework-res.apk da bulunan dil dosyaları ve isimleri aşağıdaki resimde olduğu gibidir.




Önemli olan nokta Türkçe dil klasörünün adı values-tr şeklinde olmalıdır. 

Framework-res.apk içinde bulunan Values klasörü de şu şekildedir: 



Framework-res.apk içinde Values klasörü içinde bulunan string.xml şu şekildedir:



Bu bilgilerden sonra başlayalım çeviri yapmaya :) 

1. Öncelikle hangi apk da çeviri yapacaksanız onu decompile edin. Örnekteki apk framework-res.apk dır.

2. Apk mızda Türkçe dil olmadığı için yapılacak işlem:
         - framework-res.apk / res  klasörünün içinde values-tr adında (resimlerde olduğu gibi ) bir klasör oluşturun

3. Framewok-res.apk / res / values klasörünün içinde bulunan string.xml dosyasını koplayın

4. Az önce açmış olduğunuz values-tr klasörünün içine yapıştırın

5. Yapıştırdığınız bu string.xml i ve framework-res.apk / res / values klasöründe bulunan ana dil dosyası olan string.xml i notedpad++ ile açın.

6. Yanyana eşitleyin ki rahat çalışma ortamı olsun :) 

7. Tek tek tüm satırları doğru bir şekilde çevirmeye başlayın 



8. Çeviriniz bittikten sonra string.xml dosyasını kayıt edin.

9. Apk yı compile edin. İmzalamanız gerekiyorsa apk yı imzalayın. Sisteme gömün. İzinlerini ayarlayın.

Siz de framework-res.apk Türkçeleştiriyorsanız bu işlemlerden sonra Ayarlar da dil seçeneklerine Türkçe dili gelecektir.

Dil dosyası olan diğer tüm apk larıda bu şekilde Türkçeleştirmeniz gerekiyor.  Bunu yaptıktan sonra romunuz Türkçe olacaktır.


Eğer framework-res.apk hariç diğer tüm apk lara dil ekleseniz de ayarlar da dil seçeneklerinde Türkçe gözükmeyeceği için romu Türkçe olarak kullanamazsınız :) 

Dikkat edilmesi gereken nokta yaptığınız çevirilerin bu kod içinde doğru  bir şekilde yer alması gerekir.

Kod:
<string name="example"> </string>
Örneğin aşağıdaki kodlardaki gibi hatalar yaparsanız apk nız compile olmaz, hata verir.

Kod:
Örnek 1: <string name="cancel">İptal</string

Örnek 2: <string name="cancel">İptal string>
Doğrusu aşağıdaki gibidir:

Kod:
<string name="cancel">İptal</string>
 

TigerKHaN

Administrator
#4
Sen Adamin Kralisin Seyfi hoca. Android platformun Türkiye deki Gururu olan Mesut hoca ile Sen olmasaydin sanirim hala eski telefonlari kullaniyor olacaktim. Sizlerle nice güzel Yıllara inşallah.
 

Asderdd

Administrator
#6
Eline sağlık Seyfi abi, 10 numara anlatım :popcorn:
Edit: Benden de birkaç ekleme olsun; 

- Apk çevirisi yaparken values-tr klasörü içine sadece strings.xml koymak bazen yetmez. Arrays.xml vs. de gerekebilir. Hangi xml dosyalarını almanız gerektiğini anlamak için örnek olarak values-es klasörüne bakabilirsiniz.

- Ayrıca xml içerisinde kesme işareti kullanırsanız hata alırsınız. Bunu önlemek için tüm metni tırnak içerisine almalısınız. Örnek olarak aşağıdaki şekilde yapın.
Hatalı kod 
PHP:
<string name="example">TürkDevs'in</string>
Doğru kod
PHP:
<string name="example">"TürkDevs'in"</string>
 

SmiLeToLiFe

Administrator
#9
asderdd' Alıntı:
Eline sağlık Seyfi abi, 10 numara anlatım :popcorn:
Edit: Benden de birkaç ekleme olsun; 

- Apk çevirisi yaparken values-tr klasörü içine sadece strings.xml koymak bazen yetmez. Arrays.xml vs. de gerekebilir. Hangi xml dosyalarını almanız gerektiğini anlamak için örnek olarak values-es klasörüne bakabilirsiniz.

- Ayrıca xml içerisinde kesme işareti kullanırsanız hata alırsınız. Bunu önlemek için tüm metni tırnak içerisine almalısınız. Örnek olarak aşağıdaki şekilde yapın.
Hatalı kod 

PHP:
<string name="example">TürkDevs'in</string>
Doğru kod

PHP:
<string name="example">"TürkDevs'in"</string>
bu ikisini düşündüm yazmayı da misafir geldi kaldı öyle :D Eline sağlık ihsan. 
 
I

Incredible™

#10
bu anlatımla nerdeyse her romumu türkçeleştirmişimdir ve hala türkçeleştirmeye devam ediyorum :) eline sağlık hocam
 

mrtcan

Kayıtlı Üye
#13
Ama yine ayarlar dil bölümünde cıkmıyor. Mtk işlemcili bir telefon var elimde. Bu ayarlar dil bölumun olduğu apk ve dosyayı söyleyebilir misiniz.
 
Son düzenleme:
Üst