[Aptitude-devel] Bug#1067704: #1067704 -- aptitude source code need to be updated for UTF-8

H.-R. Oberhage oberhage at Uni-Duisburg-Essen.DE
Sat Feb 14 20:50:51 GMT 2026


Hello,

On 14.02.2026 17:28, Osamu Aoki wrote:
> Hi,
> 
> I find the same problem quite annoying, too.
> 
> Very simple patch as below solved this problem for the most annoying 
> part of
> this bug.

thanks!

> But as I see the source, there are few more places to be fixed and also 
> change
> encoding of text data.
> 
> help-zh_TW.txt is not in UTF-8 (help-zh_CN.txt is in UTF-8)
> help-de.txt is latin1

For "unstable" help-de.txt has already been converted to UTF-8.
[aptitude 0.8.13-8]

And here are files converted by "recode" to UTF-8:
  o mine-help-fi.txt mine-help-fr.txt

I did the same for
  o help-zh_TW.txt

but am not able to tell, if this is correct or meaningful
text.

> I don't see any one working on this on salsa.
> https://salsa.debian.org/apt-team/aptitude/-/merge_requests
> 
> 
> Let me make a fork and send MR via salsa when I find a time.
> 
> ---
> 
> Description: README is UTF-8
>  aptitude (0.8.13-7.1) unstable; urgency=medium
>  .
>    * Non-maintainer upload.
>    * UTF-8
> Author: Osamu Aoki <osamu at debian.org>
> 
> --- aptitude-0.8.13.orig/src/ui.cc
> +++ aptitude-0.8.13/src/ui.cc
> @@ -1181,13 +1181,13 @@ static void do_help_readme()
>    // Look up the translation of README.
>    // TRANSLATORS: You can translate README and set the filename here.
>    std::string readme_file = ssprintf(HELPDIR "/%s", P_("Localized
> file|README"));
> -  const char *encoding    = P_("Encoding of README|ISO_8859-1");
> +  const char *encoding    = P_("Encoding of README|UTF-8");
> 
>    // Deal with missing localized docs.
>    if(access(readme_file.c_str(), R_OK)!=0)
>      {
>        readme_file = HELPDIR "/README";
> -      encoding    = "ISO_8859-1";
> +      encoding    = "UTF-8";
>      }
> 
>    setup_fileview(readme_file,

Thanks again, and all the best,
  Ruediger Oberhage
-- 
Dr. H.-R. Oberhage
Mail: Univ. Duisburg-Essen	E-Mail: oberhage at Uni-Duisburg-Essen.DE
       Faculty of physics
-------------- next part --------------
                              Curses-miinaharava

  Miinaharavaa pelataan ruutulaudalla, joka sisältää kätkettyjä
miinoja.  Kullakin vuorolla paljastat yhden ruudun sisällön;
voittaaksesi sinun on selvitettävä kaikkien miinojen sijainti
paljastamatta yhtäkään niistä.  Voit asettaa "lippuja" laudalle, jotta
muistat missä miinat ovat; lipullisia ruutuja ei voi paljastaa ennen
kuin lippu on poistettu.  Voitat pelin kun kaikki miinattomat ruudut
on paljastettu.

  Paljastamalla miinallisen ruudun häviät pelin heti.  Miinattoman
ruudun paljastaminen näyttää sen sisällön: luvun, joka kertoo kuinka
monta miinaa on ruudun naapuriruuduissa.  Jos ruudun naapuriruuduissa
ei ole miinoja, kaikki naapuriruudut paljastuvat automaattisesti.

  Nuolinäppäimet liikuttavat kohdistinta pelilaudalla.  Kohdistimen
osoittamaan ruutuun asetetaan lippu painamalla "f".  Kohdistimen
osoittama ruutu paljastetaan painamalla "Enter":iä.  Jos paljastetun
ruudun naapuriruuduissa on yhtä monta lippua kuin miinaa, "Enter":n
painaminen tässä ruudussa paljastaa kaikki naapuriruudut (huomaa, että
jos jokin lipuista on väärässä paikassa, häviät pelin).

  Uuden pelin voit aloittaa painamalla "n".

  Pelitilanteen voi tallettaa painamalla "S" ja ladata myöhemmin
painamalla "L".  Kumpikin näistä komennoista kysyy tiedostoa, johon
tilanne tallennetaan tai josta se ladataan.

  Pelin voit lopettaa painamalla "q".
-------------- next part --------------
                         Démineur en mode « Curses »

Dans le Démineur, on vous présente un plateau comportant un certain nombre de
mines cachées. A chaque tour vous découvrez une ou plusieurs cases afin de voir 
leur contenu ; pour gagner vous devez déduire l'emplacement de chacune des 
mines sans en découvrir une seule. Vous pouvez placer des « drapeaux » sur le
plateau pour vous rappeler où sont les mines ; les cases ainsi marquées ne 
doivent pas être découvertes jusqu'à ce que le drapeau ne soit enlevé. Vous avez
gagné lorsque toutes les cases ne contenant pas de mine ont été découvertes.

Découvrir une case qui contient une mine vous fait perdre la partie
immédiatement. Découvrir une case qui ne contient pas de mine vous révèle son
contenu : un chiffre indiquant indiquant combien de mines se trouvent dans les
cases adjacentes à la case en cours. S'il n'y a pas de mines dans les cases
adjacentes, toutes les cases adjacentes sont alors automatiquement découvertes.

Pour déplacer le curseur sur le plateau, utilisez les flèches de curseur.
Presser la touche « f » placera ou enlèvera un drapeau à la position du
curseur. Presser « Entrée » à l'emplacement d'une  case recouverte la 
découvrira. Presser « Entrée » à l'emplacement d'une case découverte qui a
exactement le même nombre de drapeaux adjacents que de mines découvrira toutes
les cases qui l'entourent (notez que si vous faites une erreur lors du
positionnement des drapeaux, vous perdrez la partie en exécutant cette action).
  
Pour démarrer une nouvelle partie, pressez « n ».
  
L'état des parties peut être enregistré et restauré en pressant « S » et
« L » respectivement et en entrant ensuite le nom du fichier où vous voulez
enregistrer votre partie ou d'où vous voulez la restaurer..

Pour quitter, pressez « q ».
-------------- next part --------------
                             Aptitude ½u¤W»¡©ú

  ½Ð¨Ï¥Î¤è¦VÁä©M PageUp/PageDown ½­¶¥H¾\Ū¦¹»¡©ú¤å¥ó¡A­Y­n°h¥X½ÐÁä¿é¤JÁä¡C

  ¦b¹w³]³]¸m¤¤¡A¥H¤U¬O¥i¥H¦b aptitude ªº°T®§¬É­±¤¤¨Ï¥Îªº«öÁä¡C¦Ü©ó¨ä¥¦¥i¨Ï
¥Îªº«öÁä¡A½Ð°Ñ¦Ò README¡C

  "q":          °h¥X
  "?":          Åã¥Ü¦¹°T®§

  "f":          ²M°£¡§·s¡¨³nÅé®M¥ó¦Cªí(¡§f¡¨¥Nªí¡§§Ñ°O(forget)¡¨)

  Up ©Î "k":    ²¾¨ì¤W­Ó¿ï¶µ
  Down ©Î "j":  ²¾¨ì¤U­Ó¿ï¶µ
  "^":          ²¾¨ì·í«e¶µ¥Øªº¤W¼h¿ï¶µ
  Enter:        ®i¶}©Î§éÅ|¤@²Õ³nÅé®M¥ó
  "[":          ®i¶}¤@²Õ³nÅé®M¥ó¤Î¨ä©Ò¦³¤l²Õ
  "]":          §éÅ|¤@²Õ³nÅé®M¥ó¤Î¨ä©Ò¦³¤l²Õ

  Enter:        ¬d¬Ý³nÅé®M¥óªº°T®§
  "C":          À˵ø®M¥óªº­×§ï¬ö¿ý
  "+":          ¦w¸Ë©Î¤É¯Å³nÅé®M¥ó¡A©ÎªÌ¬O²¾°£¨ä¡§­n¨D³Q«O¯d(hold)¡¨ª¬ºA
  "-":          ²¾°£³nÅé®M¥ó
  "=":          «O«ù³nÅé®M¥óªº·í«eª©¥»¡Aªý¤î¨ä³Q¤É¯Å
  ":":          ºû«ù¤@­Ó®M¥óªº·í«eª©¥»¡A¤£¹³¬O«O«ù(hold)¡A¥¦¤£·|¨¾¤î¥¼¨Óªº¤É¯Å
  "_":          ²¾°£³nÅé®M¥ó¨Ã§R°£¨ä³]©wÀÉ®×
  "L":          ­«·s¦w¸Ë³nÅé®M¥ó
  "M":          ±N³nÅé®M¥ó¼Ð¬°³Q¡§¦Û°Ê¦w¸Ë¡¨ªº³nÅé®M¥ó
                ¦pªG¨S¦³¥ô¦ó¡§¤â°Ê¦w¸Ë¡¨®M¥ó»Ý­n¥¦¡A³o­Ó¡§¦Û°Ê¦w¸Ë¡¨®M¥ó±N·|³Q
                §R°£¡C
  "m":          ±N³nÅé®M¥ó¼Ð¬°³Q¡§¤â°Ê¦w¸Ë¡¨ªº³nÅé®M¥ó
  "F":		¸T¤î®M¥ó¦Û°Ê¤É¯Å¨ì¯S©wª©¥»¡F·sÂIªºª©¥»±N·|³Q¦w¸Ë

  "u":          §ó·s¥i¥Îªº³nÅé®M¥ó¦Cªí
  "U":		¼Ðª`©Ò¦³§ó·sª©®M¥ó¬°¥i¤É¯Å
  "g":          °õ¦æ©Ò¦³µ¥«Ý°õ¦æªº¦w¸Ë¡B²¾°£©M¤É¯Å¥ô°È

  Control-u:    ´_­ì³Ì«áªº¤@¦¸©Î¤@¨t¦C°Ê§@
  "/":          °õ¦æ·j´M¥ô°È¡C(¹w³]¬O¥H³nÅé®M¥ó¦W¬°·j´M±ø¥ó¡F½Ð¬d¬Ý README 
                ©Î¨Ï¥ÎªÌ¤â¥U¥HÀò¨ú§ó¦h°T®§)
  "\":          ­«½Æ³Ì«á¤@¦¸·j´M
  "b":          ·j´M¤U¤@µ§·lÃa(broken)®M¥ó

  "v":          Åã¥Ü³nÅé®M¥óªº©Ò¦³¥i¥Îª©¥»
  "d":          Åã¥Ü³nÅé®M¥óªº¨Ì¿àÃö¨t
  "r":          Åã¥Ü©Ò¦³¨Ì¿à©ó«ü©w®M¥óªº³nÅé®M¥ó

  "D":          Åã¥Ü©ÎÁôÂ鵦ù´y­z°Ï
  "a":          ¦V¤Wºu°Ê©µ¦ù´y­z°T®§
  "z":          ¦V¤Uºu°Ê©µ¦ù´y­z°T®§
  "i":          ¤Á´«®M¥ó°T®§°Ïªº¸ê°T

	³nÅé®M¥óªº¡§ª¬ºA¡¨¼Ðñ¦³¥H¤U¥i¯àªº­È¡G

   v - µêÀÀ
   B - ·lÃa
   u - "¥¼¸ÑÀ£ÁYªº"
   C - °t¸m§¹¦¨¤@¥b
   H - ¦w¸Ë§¹¦¨¤@¥b
   c - ²¾°£¡A¦ý·|«O¯d³]©wÀÉ®×(§Y¡A«D¡§²M°£¡¨)
   i - ¦w¸Ë
   E - ¤º³¡¿ù»~(³o¤£À³¸Óµo¥Í)

	³nÅé®M¥óªº¡§°Ê§@¡¨¼Ð°O¦³¥H¤U¥i¯àªº­È¡G

   h - «O«ù
   p - ²M°£
   d - ²¾°£
   B - ·lÃa
   i - ¦w¸Ë
   r - ­«·s¦w¸Ë
   u - ¤É¯Å
   F - ¥i¥Îªº¤É¯Å¤w¸gª©¥»¤w¸g³Q¤U¹F "F" «ü¥O¸T¤î¤É¯Å


More information about the Aptitude-devel mailing list