Debian'daki ABD uluslararası klavye düzeni neden farklı?


11

Düzenleme : "Sorun" sadece Ubuntu değil Debian kendisi ve Ubuntu sadece miras olduğunu fark, bu yüzden bu Ask Ubuntu göç vardı


Linux'u 10 yıldır açıyorum ve kapatıyorum ve son zamanlarda OSX ile daha fazla zaman geçirdim.

Ancak, başlangıçta ABD uluslararası klavye düzenini seçeceğimi ve Windows klavye düzeniyle (ve son olarak OSX ABD uluslararası düzeniyle) tam olarak aynı çıktıya sahip olacağını hatırlıyorum.

Ancak, birkaç yıl önce Ubuntu'yu kurduğumda, cedilla'nın artık basılmadığını fark ettim (ç veya Ç). Bu, aşağıdaki tuşların bir birleşimidir: '+ c. Bunun yerine, aldığım şey ć mektubu.

Ne zaman olmaya başladı ve neden diğer işletim sistemlerindeki davranışlarla arasındaki fark? Beni daha da şaşırtan şey, tam olarak aynı tuşları basan bir "ABD Uluslararası alternatifi" klavye düzeni bile var! Peki, neye alternatif?

Bu Canonical bir hata olarak bildirildi (şimdi bağlantı bulamıyorum), ancak klavye düzeni asla beklediğim gibi değişmedi. İhtiyacım olanı düzeltmek için geçici çözümleri biliyorum, ama neden / ne zaman farklı hale geldiğini bilmek istiyorum.


2
AltGr+ Kullanarak c-cedilla girebilirsiniz ,. Ama ne zaman / neden / neden değişti bilmiyorum.
Mikel

Yorumlar için teşekkürler. Soruyu burada taşınmak / birleştirmek için işaretledim. Davranışın Debian'dan miras alındığı için burada hala doğru yer olduğuna inanıyorum.
Pablo

Yanıtlar:


17

özet

  1. Ubuntu kullanıyorsanız, varsayılan karakter seti ISO 8859-1'den UTF-8'e değiştiğinde, muhtemelen 2005 civarında değişti.
  2. ABD Alternatif Uluslararası bazı ölü anahtarlar ekler.

Ölü tuş ayarları yerel ayarınıza ve karakter setinize bağlıdır.

Örneğin:

  • en_US.UTF-8 içinde tanımlandı /usr/share/X11/locale/en_US.UTF-8/Compose
  • ISO 8859-1 içinde tanımlandı /usr/share/X11/locale/iso8859-1/Compose

Bunlara kullanarak bakarsanız grep, bir fark olduğunu görebilirsiniz:

$ grep '<dead_acute> <c>' /usr/share/X11/locale/en_US.UTF-8/Compose 
<dead_acute> <c>                    : "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE

$ grep '<dead_acute> <c>' /usr/share/X11/locale/iso8859-1/Compose
<dead_acute> <c>            : "\347"    ccedilla

Yani:

  • Latince 1 kodlama: ', c=ç
  • UTF-8 kodlama: ', c=ć

Git günlükleri (( en_US.UTF-8 ) ( iso8859-1 )) en az 2004'ten bu yana olduğunu göstermektedir.


ABD Uluslararası ve ABD Alternatif Uluslararası arasındaki fark /usr/share/X11/xkb/symbols/us.

Yani, ABD Alternatif Uluslararası düzeni bu ekstra AltGr ölü anahtarlarını ekler:

  • dead_macron: AltGr-eksi
  • dead_breve: AltGr-parenleft'te
  • dead_abovedot: AltGr döneminde
  • dead_abovering: AltGr-0 üzerinde
  • dead_doubleacute: AltGr-equal üzerinde (quotedbl zaten kullanıldığından)
  • dead_caron: AltGr'siz (AltGr-shift-virgül)
  • dead_cedilla: AltGr-virgülünde
  • dead_ogonek: AltGr noktalı virgül üzerinde
  • dead_belowdot: AltGr alt çizgisinde (AltGr-shift-minus)
  • dead_hook: AltGr sorusunda
  • dead_horn: AltGr-plus'ta (AltGr-shift-eşit)
  • dead_diaeresis: AltGr-kolonunda (Alt-shift-noktalı virgül)

Örneğin:

  • ABD Uluslararası: AltGr+ -=¥
  • ABD Alternatif Uluslararası: AltGr+ -, a=ā

UTF-8 varsayılan kodlama oldu:


Keşke bu cevaba vermek için birden fazla oy alsaydım.
penguen359

Yerel ayarınız pt_BR ise (yerine ) <dead_acute> <c>yeniden eşleştirildiğini belirtmek gerekir . Bakınız:çć/usr/share/X11/locale/pt_BR.UTF-8/Compose
Denilson Sá Maia

4

Vítor Souza cevabını tamamlama

İngilizce OS dili ile ABD uluslararası klavye düzenini kullanma ve güzel bir cedilla sahip .

İngilizce dilinin ç/Çgüzel 'cçalışabilmesi için ( -> cedilla) oluşturma dosyalarını değiştirmek gerekmez. Yapılması gereken, LC_CTYPEbu tanımı içeren bir yerel ayar ile ayarlamaktır :

<dead_acute> <c>            : "\347"    ccedilla.

Pt_BR.UTF-8 gibi (Brezilya Portekizcesi / Português Brasileiro).

X klavye haritası:

# setxkbmap -layout us -variant intl

/etc/locale.conf

# nano /etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE="en_US"
LC_CTYPE=pt_BR.UTF-8

Yerel ayarı güncelleyin

# source /etc/profile

Ve tty için:

Sağ tuş haritasını, yazı tipi ve yazı tipi haritasını, ör.

# nano /etc/vconsole.conf
KEYMAP=us-acentos
FONT=ter-114n
FONT_MAP=8859-1

OP bunu nasıl düzeltebileceğimizi sormuyordu ama neden ilk başta bu şekilde oldu. Aksi takdirde bunu iptal ederim.
2013'te Strugee

@strugge, haklısın. Ancak devam filmleri yapıyor ve OP'ye göre, Mikel güzelce yanıtladı.
Geyslan G. Bem

Birisi bu yanıtı yararlı görürse, lütfen ayarlayın.
Geyslan G. Bem

3

Gönderen http://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10-10-maverick-meerkat/ ve http://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10- 04-berrak-vaşak / :

Çedilla ile ilgili sorun:

Bazı iyi adamlar, aksanlı bir c'nin (“ć”) bir cedilla (“ç”) olan c'den daha önemli olduğuna karar verdiler. Brezilyalı olduğum ve Rumen falan olmadığım için bu kesinlikle beni rahatsız ediyor. '+ c, “ç” yi bir kerede çıkarmak için kullanılır.

Düzeltmek için /usr/lib/gtk-2.0/2.10.0/gtk.immodules dosyasını kök olarak düzenleyin , şu satırı bulun:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

Ve şunu ekleyin: en after: wa, şöyle görünür:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

Ubuntu 12.10 için düzenleme ( kaynak ):

düzenlenecek gtk.immodules dosyası şu konumda bulunur:

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules veya /usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules


Debian Wheezy için düzenleme (ve muhtemelen diğer gtk 3 şeyler)

Düzenlenmesi gereken dosya şimdi

/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache

gtk20Hatlarında artık gtk30ama ekleyerek :ensonunda sadece aynıdır.


GTK olmayan uygulamalar için de düzeltmek için, /usr/share/X11/locale/en_US.UTF-8/ dosyasını kök olarak düzenleyin ve ć ile ç olan tüm örnekleri ve Ç ile Ć ile ilgili tüm örnekleri değiştirin ve değiştirin.

Sisteminizi yükselttiğinizde ve yapılandırma dosyalarını orijinal içeriklerine geri döndürdüğünüzde, bir veya iki işlemi zaman zaman tekrarlamanız gerekebilir.


Paket yöneticisinin değişikliklerinize basmasını önlemek için (root olarak) çalıştırabilirsiniz dpkg-divert /usr/lib/gtk-2.0/2.10.0/gtk.immodules. Paket sistemi daha sonra gtk.immodules.distribbunun yerine yazacaktır . Bunu geri almak için --removebayrağı aynı komuta ekleyin ve .distrib dosyasını orijinalin üzerine kopyalayın. Daha fazla bilgi için man dpkg-divert,.
Jander

Ubuntu 12.10'da dosya farklı bir konuma sahiptir: /usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules veya /usr/lib/i386-linux-gnu/gtk-2.0/ 2.10.0 / gtk.immodules

0

Bu Vítor Souza'nın cevabının bir tamamlayıcısı olarak geliyor .

Xfce Quantal'da (Xubuntu 12.10, Mint 14 Xfce) daha önce belirtilen yöntemlerle bunu çözemedi (aşağıya bakınız). İşe yarayan ibuspaket ve bağımlılıklarını kurmaktı.

( Kaynak - daha tam burada .)


Eski çözüm benim için çalışmadı: Ubuntu 12.10'da dosyanın gtk.immoduleskonumu farklı:

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

veya

/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

(Bunun için kaynağım burada .)

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.