home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / root / usr / share / YaST2 / modules / Encoding.ycp < prev    next >
Text File  |  2006-11-29  |  3KB  |  144 lines

  1. /**
  2.  * File:    modules/Encoding.ycp
  3.  * Package:    yast2
  4.  * Summary:    Provide the encoding stuff
  5.  * Authors:    Klaus Kaempf <kkaempf@suse.de>
  6.  *
  7.  * $Id: Encoding.ycp 20677 2005-01-07 03:23:55Z nashif $
  8.  */
  9.  
  10. {
  11.  
  12. module "Encoding";
  13. textdomain "base";
  14.  
  15. import "Stage";
  16.  
  17. /**
  18.  * Current (ISO) encoding
  19.  */
  20. global string console = "ISO-8859-1";
  21. global string lang = "en_US";
  22. global boolean utf8 = true;
  23.  
  24. /**
  25.  * Restore data to system
  26.  * @return console encoding
  27.  */
  28. global define string Restore() {
  29.  
  30.     console = (string) SCR::Read (.sysconfig.console.CONSOLE_ENCODING);
  31.     if(console == nil) console = "";
  32.  
  33.     map m = (map) SCR::Execute( .target.bash_output, "locale -k charmap" );
  34.     if(m == nil) m = $[];
  35.  
  36.     list<string> out = splitstring(m["stdout"]:"", "\n");
  37.     y2milestone( "list %1", out );
  38.  
  39.     out = filter( string e, out, ``(find(e, "charmap=")==0) );
  40.     y2milestone( "list %1", out );
  41.  
  42.     if(size(out[0]:"") > 0) {
  43.     string enc = substring( out[0]:"", 8 );
  44.     y2milestone( "enc %1", enc );
  45.     enc = deletechars( enc, "\" " );
  46.     y2milestone( "enc %1", enc );
  47.     if(size(enc) > 0)
  48.         console = enc;
  49.     }
  50.     y2milestone( "encoding %1", console );
  51.     return console;
  52. }
  53.  
  54. /**
  55.  * Set Encoding Language
  56.  * @param new_lang New Language
  57.  * @return void
  58.  */
  59. global void SetEncLang( string new_lang )
  60.     ``{
  61.     lang = new_lang;
  62.     y2milestone( "SetEncLang %1", lang );
  63.     }
  64.  
  65. /**
  66.  * Get Encoding Language
  67.  * @return Language
  68.  */
  69. global string GetEncLang() 
  70. {
  71.     string ret = lang;
  72.     y2milestone( "GetEncLang ret %1", ret );
  73.     return( ret );
  74. }
  75.  
  76. /**
  77.  * Set UTF8 Language
  78.  * @param  new_utf8 New UTF8 Language
  79.  * @return void
  80.  */
  81. global void SetUtf8Lang( boolean new_utf8 )
  82. {
  83.     utf8 = new_utf8;
  84.     y2milestone( "SetUtf8Lang %1", utf8 );
  85. }
  86.  
  87. /**
  88.  * Get UTF8 Language
  89.  * @return boolean
  90.  */
  91. global boolean GetUtf8Lang()
  92.     ``{
  93.     boolean ret = utf8;
  94.     y2milestone( "GetUtf8Lang ret %1", ret );
  95.     return( ret );
  96.     }
  97.  
  98. map enc_map = $[ "euc-jp" : "932",
  99.                  "sjis"   : "932",
  100.          "gb2312" : "936",
  101.          "iso8859-2" : "852",
  102.          "big5" : "950",
  103.          "euc-kr" : "949" ];
  104.  
  105. map lang_map = $[ "ja_JP" : "932",
  106.                   "zh_CN" : "936",
  107.                   "zh_TW" : "950",
  108.                   "zh_HK" : "950",
  109.                   "ko_KR" : "949" ];
  110.  
  111.  
  112.  
  113. /**
  114.  * Get Code Page
  115.  * @param enc Encoding
  116.  * @return string
  117.  */
  118. global define string GetCodePage( string enc ) 
  119.     ``{
  120.     string code = enc_map[enc]:"";
  121.     if( size(code)==0 && lang != nil)
  122.     {
  123.     string l = substring( lang, 0, 5 );
  124.     code = lang_map[l]:"";
  125.     }
  126.     y2milestone( "GetCodePage enc %1 lang %2 ret %3", enc, lang, code );
  127.     return code;
  128.     }
  129.  
  130.  
  131. /**
  132.  * Constructor
  133.  * does nothing in initial mode
  134.  * restores console encoding from /etc/sysconfig
  135.  * in normal mode
  136.  */
  137. global define void Encoding() {
  138.     if(!Stage::initial ()) Restore();
  139.     return;
  140. }
  141.  
  142. /* EOF */
  143. }
  144.