Türkçe sistem - Wine - Steam çalışma hataları [ÇÖZÜM]

Başlatan loradona, 14 Haziran 2018 - 14:05:05

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

loradona

Öncelikle manjaro kullanıyorum lakin eskiden Ubuntu kullanırkende aynı sorunlarım vardı herkese yardımcı olması açısından burada da paylaşmak istedim !


Arkadaşlar bir iki hafta içinde yaşadığım sıkıntıdan çektiğim çileden bahsedeceğim biraz.
Wine ile lol, hots yüklerken mi dersiniz, Steam üzerinden çoğu yazının görülmemesi hala bazı oyunları açamamak mı dersiniz nasıl başımı ağrıttı anlatamam.

Dikkat ettiğiniz üzere bu takım sorunlar sadece biz Türklerde ortaya çıktığını fark ettim.(Önceki postlarımdan da görebileceğiniz üzere.) Ve dil ayarları ile oynadım. O da ne ? Bir anda hiç bir problem kalmadı herşey olması gerektiği gibi gidiyor. Ama neden ne alak olabilir diye biraz daha araştırdım...

Locale çıktısı aşağıdadır. (Eski)
```
[loradona@Yaman-Pc ~]$ locale
LANG=tr_TR.UTF-8
LC_CTYPE=tr_TR.UTF-8
LC_NUMERIC=tr_TR.UTF-8
LC_TIME=tr_TR.UTF-8
LC_COLLATE="tr_TR.UTF-8"
LC_MONETARY=tr_TR.UTF-8
LC_MESSAGES="tr_TR.UTF-8"
LC_PAPER=tr_TR.UTF-8
LC_NAME="tr_TR.UTF-8"
LC_ADDRESS="tr_TR.UTF-8"
LC_TELEPHONE="tr_TR.UTF-8"
LC_MEASUREMENT=tr_TR.UTF-8
LC_IDENTIFICATION="tr_TR.UTF-8"
LC_ALL=
```
Hepsini teker teker değiştirmek yerine C ile alakalı olduğunu düşünüp "LC_CTYPE=" değerini en_US.UTF-8 olarak ayarladım.

Locale (Yeni)

```
[loradona@Yaman-Pc ~]$ locale
LANG=tr_TR.UTF-8
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=tr_TR.UTF-8
LC_TIME=tr_TR.UTF-8
LC_COLLATE="tr_TR.UTF-8"
LC_MONETARY=tr_TR.UTF-8
LC_MESSAGES="tr_TR.UTF-8"
LC_PAPER=tr_TR.UTF-8
LC_NAME="tr_TR.UTF-8"
LC_ADDRESS="tr_TR.UTF-8"
LC_TELEPHONE="tr_TR.UTF-8"
LC_MEASUREMENT=tr_TR.UTF-8
LC_IDENTIFICATION="tr_TR.UTF-8"
LC_ALL=
```

İlginçtir ki sorunum çözüldü.Umarım sizinde bu şekilde çözülebilir..
Eğer ufak bir test yapmak istiyorsanız :

Steam ayarları üzerinden arayüz ve dil değiştirme bölümü tr_TR.UTF-8 de gözükmüyor arkadaşlar belki neden olduğunu bilmiyordunuz daha önceden..

> LANG=en_US.UTF-8 steam

komutu ile çalıştırıp tekrar deneyin !

Tabiki bu geçici bir çözümdür kendi dilimizin ayarlarını kullanamamak bir nebze üzücü. Buna nasıl bir çözüm üretebiliriz kalıcı olarak fikirlerinizi beklemekteyim !

[Wine üzerinden de bir çok hatanın çözümü budur arkadaşlar ! Sadece locale ayarlarını değiştirin veyahut başına LANG=en_US.UTF-8 ekleyerek çalıştırın]

Manjaro orjinal postumdan kopyadır arkadaşlar daha çok kişiye ulaşması için yayıyorum..

bugra9

Bu sorun, Türkçede bulunan i ve I harflerinin İngilizcede bulunan i ve I harfleriyle aynı olmamasına rağmen bizlerin aynı şeyi kullanmamızdan kaynaklanıyor. Örneğin İngilizcedeki i harfini büyüttüğünde I olurken bizde İ oluyor. Bu durumda tüm dilleri desteklemek için çıkarılan unicode (UTF-8, UTF-16, ...) Türkçe için ayrı diğer tüm diller için ayrı olmak üzere iki defa derleniyor. Bu farklılık Türk kullanıcıların bir sürü sorun yaşamasına neden oluyor.

Aslında tüm sorun bu durumu bilmeyen uygulama geliştirilerinden kaynaklanıyor. Kodunda bir değişken ya da yapılandırma ismi yazıyor, örneğin 'invalid'. Sonra bunu büyütme fonksiyonuna sokuyor ve 'INVALID' şeklinde büyüceğini düşünerek işlemlerine devam ediyor. Diğer dillerde sorun olmazken uygulama bizde patlıyor çünkü o değişken 'İNVALİD' şeklinde değişiyor. Parçalanma arızaları, dosya bulunamaması, sertifika hataları vs. vs. gibi sorunlarla yüzleşmek zorunda kalıyoruz.

Bu sorunun hep devam etmesi yani çözümsüz kalmasının nedeni uygulanması gereken çözümün beraberinde bir sürü zorluk getirecek olmasından dolayı şu anki durumu kabullenmemiz. Örneğin çözümlerden biri şu olabilir;
Unicode karakter tablosuna Türkçe i ve Türkçe I için iki yeni harf ekleriz ve "Türkçe Q" şablonu üzerindeki i ve I harflerini bunlarla değiştiririz. Bir de ingilizcedeki i ve I harflerini de 'alt gr' + harf şeklinde basınca yazacak şekilde uygularız. Normal yazımlarda i ve I harflerini kullanırken İngilizce yazacağımızda ya da kod yazarken bu harfleri 'alt gr' tuşu yardımıyla oluştururuz. Tüm Türk kullanıcıları bu durumu öğrenir ve ona göre davranır. Bu şekilde tüm hatalardan kurtulmuş oluruz ama böyle bir değişikliği kaç kişi kabul eder? :)

Evrensel Kod Konsorsiyumunun (Unicode Consortium) bu durum için verdiği cevap;
http://unicode.org/faq/casemap_charprop.html
Alıntı Yap
Q: Why aren't there extra characters encoded to support locale-independent casing for Turkish?

A: The Turkish language, like other Turkic languages, distinguishes a dotted letter 'i' from a dotless letter 'ı' (U+0131 LATIN SMALL LETTER DOTLESS I). In these languages, each has an equivalent uppercase mapping: U+0131 maps to the ordinary letter 'I', while 'i' maps to U+0130 (LATIN CAPITAL LETTER I WITH DOT ABOVE).

Historically, users generally did not distinguish between the ASCII letters and their Turkish equivalents, so legacy character encodings, such as ISO 8859-9, which support the Turkic languages, did not separately encode characters to serve as the basis for locale-independent casing. These character encodings are often used for both Turkish and non-Turkish text. Transcoding this data to Unicode would be intolerably difficult if users had to somehow identify which 0x49 characters (for example) were ordinary "I" and which were CAPITAL LETTER DOTLESS I. In addition, because users are not used to making the distinction, it is unlikely that they would input the "correct" additional letters, even if they existed.