Changeset 38713

Show
Ignore:
Timestamp:
12/07/10 01:31:11 (3 years ago)
Author:
NeoCat
Message:

Switch language in Preferences

Location:
websites/twicli
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • websites/twicli/lang.js

    r38710 r38713  
    1 var langList = ['ja']; 
    2  
     1var langNames = { 'en': 'English', 'ja': '日本語 (Japanese)' }; 
     2var langList = ['ja']; // 'en' shouldn't be added here 
    33var langResources = { 
    44        'Twitter / user': ['Twitter / ユーザ'], 
     
    2020        'Log out':      ['ログアウト'], 
    2121        'Preferences':  ['設定'], 
     22        'language':     ['言語'], 
    2223        'max #msgs in TL':      ['TLの最大表示数'], 
    2324        '#msgs in TL on update (max=200)':      ['起動時のTL取得数(最大200)'], 
  • websites/twicli/twicli.js

    r38710 r38713  
    77        ele.innerHTML = s; 
    88        return ele.firstChild.nodeValue; 
    9 } 
    10 // 言語リソースをルックアップ 
    11 var browserLang = navigator.browserLanguage || navigator.language || navigator.userLanguage; 
    12 browserLang = browserLang ? browserLang.split('-')[0] : 'en'; 
    13 var lang; 
    14 for (lang = 0; lang < langList.length; lang++) 
    15         if (langList[lang] == browserLang) break; 
    16 function _(key) { 
    17         if (!langResources[key]) 
    18                 alert("no langResource\n\n"+key); 
    19         else 
    20                 key = langResources[key][lang] || key; 
    21         var args = arguments; 
    22         return key.replace(/\$(\d+)/, function(x,n){ return args[parseInt(n)] }); 
    239} 
    2410// フォームをシリアライズ 
     
    237223        return this; 
    238224}; 
     225// 言語リソースをルックアップ 
     226var browser_lang = navigator.browserLanguage || navigator.language || navigator.userLanguage; 
     227browser_lang = browser_lang ? browser_lang.split('-')[0] : 'en'; 
     228var user_lang = readCookie('user_lang') || browser_lang; 
     229var lang; 
     230for (lang = 0; lang < langList.length; lang++) 
     231        if (langList[lang] == user_lang) break; 
     232function _(key) { 
     233        if (!langResources[key]) 
     234                alert("no langResource\n\n"+key); 
     235        else 
     236                key = langResources[key][lang] || key; 
     237        var args = arguments; 
     238        return key.replace(/\$(\d+)/, function(x,n){ return args[parseInt(n)] }); 
     239} 
    239240// user-defined CSS 
    240241var user_style = readCookie('user_style') || ""; 
     
    12041205                                        '<div id="pref"><a href="javascript:togglePreps()">▼<b>'+_('Preferences')+'</b></a>' + 
    12051206                                        '<form id="preps" onSubmit="setPreps(this); return false;" style="display: none;">' + 
     1207                                        _('language')+': <select name="user_lang">'+(['en'].concat(langList)).map(function(x){ 
     1208                                                        return '<option value="'+x+'"'+(x==user_lang?' selected':'')+'>'+langNames[x]+'</option>'; 
     1209                                                })+'</select><br>' + 
    12061210                                        _('max #msgs in TL')+': <input name="limit" size="5" value="' + nr_limit + '"><br>' + 
    12071211                                        _('#msgs in TL on update (max=200)')+': <input name="maxc" size="3" value="' + max_count + '"><br>' + 
     
    12391243                                return; 
    12401244         
     1245        user_lang = frm.user_lang.value; 
    12411246        nr_limit = frm.limit.value; 
    12421247        max_count = frm.maxc.value; 
     
    12541259        resetUpdateTimer(); 
    12551260        writeCookie('ver', 11, 3652); 
     1261        writeCookie('user_lang', user_lang, 3652); 
    12561262        writeCookie('limit', nr_limit, 3652); 
    12571263        writeCookie('max_count', max_count, 3652);