Hintli karakterlerin karmaşık renderlerini görüntülemek için bir Android cihaz nasıl yapılır?


42

Lütfen bu sorunun uzunluğu için özür dilerim. Bunları başkalarına yardım etmek ve açıklamada bulunmadan cevap vermeleri konusunda katkıda bulunmaktan kaçınmak için bunları açıklamam gerekiyor.

Bir satırdaki gereksinim: "Bir Android telefonun Tamilce karakterlerini doğru göstermesini sağlamak".

Ayrıntılı: Tamil, diğer Hint dillerinde olduğu gibi karmaşık karakter oluşturma sistemine sahiptir. İngilizce'den veya diğer Latince tabanlı senaryolardan farklı olarak, birden fazla karakterden oluşan glifine (ekranda gördüğünüz) sahiptir. Android bu tür karmaşık komut dosyalarını (istisna dışında) oluşturma yeteneğine sahip değildir. Amacım bir Android telefon veya tablete nasıl böyle bir yetenek sağlayabileceğimi bilmek.

Şimdiye kadar topladığım küçük arkaplan: Ekranda bir glif görüntülemek için Android önce uygun bir font dosyasına ihtiyaç duyuyor. Android cihaz, birkaç tanesine sahip bir klasör / sistem / yazı tipine sahiptir. Bu klasördeki en ilginç dosya DroidSansFallback.ttf'dir. Adından da anlaşılacağı gibi, Android sistemi sistem yazı tiplerinde (DroidSans.ttf veya DroidSans-Bold.ttf vb. Gibi) bir karakter bulamadığında, DroidSansFallback.ttf'de arama yapmak için geri döner.

Uygun bir font dosyasını PC'den değiştirerek (Latha.ttf veya Lohit-Tamil.ttf - bunlar Tamil için fonttur) ve DroidSansFallback.ttf, aygıtta Tamil karakterlerini görüntülemenizi sağlar. Değiştirmesi o kadar kolay değildir ve cihazın köklendirilmesini ve sistemin yazılabilir olarak monte edilmesini içerir.

Bu sıkıntılara rağmen, DroidSansFallback.ttf değiştirilse bile, görüntülenen Tamil karakterleri doğru şekilde görüntülenmiyor. Tamil karakteri "தி" iki karakterin bir birleşimidir ve "தி" olarak gösterilmek yerine, aralarında boşluk kalmadan "த ி" olarak gösterilecektir. Bu kısa mesajları okumak için yeterli olmasına rağmen, kitap okumak için kullanılamaz.

Servislerde Android 4.0'dan, Tamil ve diğer birkaç dil, aşağıda gösterildiği gibi Android 4.x API'ye genel bakışta açıklandığı gibi tarayıcı aracılığıyla desteklenmektedir.

Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex
character support needed for combining glyphs) in WebView and the built-in Browser

Dikkat edilmesi gereken kelimeler "WebView ve yerleşik Tarayıcıda" dır, bu da Tamil karakterlerinin HTML içeriği olarak işlendiğinde mükemmel şekilde oluşturulacağı ve başka şekilde oluşturulmayacağı anlamına gelir. Opera ve diğer birkaç tarayıcı, Android 4.0'dan önce bile karakter yerine görüntüyü değiştirdi.

Hint pazarını hedef alan az sayıda cihazda (ör: LG Optimus One, Samsung telefonların ve tabletlerin çoğunun) Tamil'i hem tarayıcıda hem de kişiler, metin mesajları, dosya adları vb. Sürprizime göre bunu Android 2.3'te bile yapıyorlar. Ayrıca Android'in aynı sürümünü çalıştıran Hintli olmayan ülkeleri hedef alan aynı modelin Tamil karakter gösterimini desteklemediğini fark ettim.

Bu beni daha fazla araştırmamı sağladı ve Android'in (diğer Linux tabanlı işletim sistemleri gibi) böyle karmaşık karakterleri görüntülemek için bir yazı tipi oluşturma motoruna bağlı olduğu sonucuna vardım. Karşılaştığım iki motor Skia ve Harfbuzz. LG'nin skia kullandığını ve Samsung'un bu yeteneği sağlamak için cihazlarında Harfbuzz kütüphanelerini kullandığını fark ettim.

Bu kütüphaneleri ve yazı tiplerini değiştirmeyi öneren birçok web sitesine rastladım. İşe yaramadı ve donmayla sonuçlandı. Neyse ki clockwork modunu kullanarak yedekleme yaptım ve telefonumu geri yükledim.

Bunu Tamil ile açıklamış olmama rağmen, bu Hint dillerinin çoğu için geçerlidir.

İşte benim sorum geliyor (eğer hala okuyorsanız;)) Şimdi, karakterleri sağlamak için bir TTF dosyasının mevcut olması gerektiği ve bunları doğru şekilde oluşturmak için uygun bir kütüphanenin (libskia.so veya libharfbuzz.so) gerekli olduğu kesin. Herhangi biri bu üreticilerin bu yeteneği nasıl sağlayabildiğini biliyor mu? AOSP'den kendi ROM'umu oluşturmaya bile hazırım (Android Açık Kaynak Projesi).


Cyanogenmod, metinlerin sağdan sola doğru oluşturulmasını gösterme yeteneklerine sahiptir. Skia, grafiklerin gösterimi için standarttır. Sonuçlar bir Skia kütüphanesini bir ROM'dan almak ve bir başkasına koymak, AOSP kaynağını alarak sıfırdan inşa etmeyi gerektirecek şekilde felaket olabilir ve Skia'yı harfbuzz ve yeniden derleme ile değiştirebilir (“Sadece giremezsiniz” Bu kitaplıkta yerleşik olmayan başka bir ROM'a harfbuzz - kitaplıklar birbirine bağlanır, bu nedenle eğer ROM'un yapısı harfbuzz'dan habersiz, işe yaramazsa)
t0mm13b 7:12

1
Bazı nedenlerden dolayı @narayanan , m.oneindia.in/tamil sitesi tamil'i Android 4.1.2'de Chrome'da mükemmel kılıyor . Bu web sitesi başkalarının yapmadığı şekilde ne yapıyor?
FMFF

Yanıtlar:


9

Köklü Telefon

Klasörün altındaki Android /system/fonts, tüm dil karakterlerini içermesi beklenen "DroidSansFallback.ttf" adlı bir dosya içeriyor. Şu anda Tamil dahil birçok kişiye destek vermemektedir.

Bir dosya her zaman Tamil karakterleri içeren bir dosya ile değiştirebilir, böylece Tamil'in telefonunuzda kullanılmasına izin verilir.

Gönderen XDA Developers Konu - DroidSans Fallback Hint Yazı Tipi , kullanıcıların denedim ve başarıyla telefonlarında Tamil kullandı.

Bu yöntemi gerçekleştirmek için, /systemFallback dosyasına erişmek ve bunları değiştirmek için telefonunuza kök erişiminiz gerekir :

  • Oku Cihazımı nasıl rootlarım? telefonunuz henüz köklü değilse
  • Dosyanın nasıl değiştirileceğini görmek için XDA Developers başlığını izleyin :

    Using and Android SDK environment:
    
    First Copy the DroidSansFallback.ttf file into your sdcard,
    then issue the following commands:
    
    adb shell
    su
    mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
    cd /sdcard
    busybox cp DroidSansFallback.ttf /system/fonts
    mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
    exit
    exit
    
    Lastly, rebooted the phone
    

    Not: Bağlantı noktası tüm telefonlar için aynı değildir.


Android uygulaması

Yukarıdaki yöntem bazı kullanıcılara hitap edebilse de, mümkün olduğunda bir APP tercih ediyorum.

Ayrıca, Tamil'in toplam 247 karakterden oluşan bir klavyesi var, İngilizcenin ise sadece 26'ya ihtiyacı var.

Bkz Vikipedi :: Tamilce dili - Yazma Sistemi

Mevcut Tamil senaryosu 12 ünlü, 18 ünsüz ve bir özel karakter olan characterytam'dan oluşmaktadır. Ünlüler ve ünsüzler, toplam 247 karakter vererek (12 + 18 + 1 +) 216 bileşik karakter oluşturur.


Krishan sayesinde ve bu konuda çalışıyor, zaten her iki konuyla ilgilenmek için bir APP, Tamil'in sistem genelinde kullanılması ve Tamil Karakterlerini yazmak için kullanılabilecek bir klavye var.

Krishan'ın Android için Tamil Unicode Font başlıklı yazısını okuyun - Bu çözümün gelişimi hakkında ayrıntılı bilgi için çalışın.

Özetlemek

Krishan, Google Play'de Tamil'de tüm bir Android işletim sistemine sahip olma sorunu ile ilgilenen iki APP geliştirdi ve yayınladı :


4
Yazı tipini değiştirmenin yalnızca konjonktür olmayan karakterleri gösterecek ve konjonktür karakterlerini doğru şekilde oluşturmayacak kısmi bir çözüm olduğunu daha önce belirtmiştim. Ve uygulama ile ilgili ikinci çözüm benim için kabul edilmiş bir çözüm değildir. Tamilce metinleri İngilizce olarak yazarak ve web sayfalarını çevirerek ve alıntı yaparak, beklentilerime göre dediğim gibi kabul edilemez. Çabalarınız ve zamanınız için teşekkürler.
Narayanan

3

Android'de bilinen bir hata olan 4153 numaralı sorunu açıklıyor gibi görünüyorsunuz .

Jelly Bean'de bu sorunun çözüldüğü bildirildi. Bu ekran görüntüsü doğruysa, sorunun çözülmesi gerekir. (Kendime gerçekten söyleyemiyorum, ancak Jelly Bean'e erişebiliyorum ve bundan ekran görüntüsü alabiliyorum.)

Unicode için ICS Test Sayfası


1
Teşekkürler, bu Tamil renderleme uygulamasının üreticiden bir tür müdahale ile Android 2.3.3 telefonlarda bile çalıştığını belirttiğim gibi bir hata gibi görünmüyor.
Narayanan

1
20 Temmuz 2012'de Google’ın gGay'lerine katılıyorum ve Android JellyBean 4.1’in tarayıcıda bile Tamil karakterleri gösterdiğine tanık oldum. Maalesef hiçbir şeyi daha fazla test edemedim.
Narayanan

Android.stackexchange.com/questions/26797/… sorusuyla ilgili bir yorum yaparak Tamil'i ThinkFree Office Mobile Viewer aracılığıyla web sayfalarında, metin dosyalarında, SMS'lerde, kişilerde, dosya adlarında, DOCX dosyalarında okuyabildiğimi söyleyebilirim. Bunun Telugu, Kannada, Bengalce ve Hintçe için de aynı olması gerektiğini gözlemledim.
Narayanan

1

Opera Mini web tarayıcısını kurun

Opera Mini Web Tarayıcısına "about: Config" yazın

karmaşık komut dosyaları için bitmap fontları kullanın: Evet'i seçin

Tüm siteleri tamil fontunda herhangi bir marka cep telefonunda görüntüleyebilirsiniz.

Saygılarımızla


5
Bu, tarayıcı iç bitmaptir ve OS çapında bir çözüm değildir (örneğin, Tamil veya diğer Hint karakterlerini SMS'lerde yazamaz veya göremezsiniz). Btw, önerdiğin şey zaten ana gönderide belirtildi:> "Opera ve diğer birkaç tarayıcı, Android 4.0'dan önce bile karakter yerine görüntü değiştirerek bunu yaptı."

0

Android sistemde yazı tipini köklemeniz ve değiştirmeniz gerekmez.

Devanagari yazı tipini doğru şekilde oluşturmak için cihazınızın donanım yazılımını benzer Hint bölgesinin donanım yazılımı ile değiştirin. Diğer bölgelerin üretici yazılımı Devanagari yazı tiplerini doğru şekilde oluşturmaz. Devanagari yazı tipleri, Indian Region'un Android sürüm 2.x'inde doğru bir şekilde oluşturuluyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.