├── README.md └── i18n ├── readme.md ├── zh.hson ├── cs.hson ├── en.hson ├── it.hson ├── de.hson └── fr.hson /README.md: -------------------------------------------------------------------------------- 1 | # Waltheri's go pattern search 2 | 3 | This repository serves as a public place for [Waltheri's go pattern search](http://ps.waltheri.net) web app. For now you can post here a bug report, feature request or manage translations. 4 | 5 | ## Localization 6 | 7 | The newest version of the pattern search (v3) can be translated into any language. A guide how to do it is [here](https://github.com/waltheri/go-pattern-search/tree/master/i18n). 8 | 9 | ## Issues 10 | 11 | For bug reports, feature requests and other stuff use [issue section](https://github.com/waltheri/go-pattern-search/issues). GitHub account is required, but we can discuss the issue there freely. If you don't want to use GitHub, you can send me an email on address thebestgoplayer@gmail.com. 12 | -------------------------------------------------------------------------------- /i18n/readme.md: -------------------------------------------------------------------------------- 1 | # Localization guide 2 | 3 | This guide will help you to translate Waltheri's go pattern search into your language. It is preferred to use GitHub and its features to manage translations. You will need GitHub account for it. However I will survive, if you send me files on email thebestgoplayer@gmail.com. 4 | 5 | ## Add translations 6 | 7 | 1) Click on **New file** button in top right corner of this page. 8 | 9 | 2) Put content of [en.hson](https://github.com/waltheri/go-pattern-search/blob/master/i18n/en.hson) into the new file and translate all text strings between brackets `"` into your language. Name of the new file should be **[lang_code].hson**, where **[lang_code]** stands for [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) code of your language. 10 | 11 | 3) When your translation file is ready, continue with **Propose new file** and then click on **Create pull request** button. It is not necessary to fill any description or comment. 12 | 13 | 4) And that should be it. I will get notified and upload the translation on the pattern search. 14 | 15 | ## Edit translations 16 | 17 | 1) On this page select translation file you want to edit and open it. 18 | 19 | 2) Click on the pencil in top right corner (Fork this project and edit the file). 20 | 21 | 3) Edit the file, save changes and continue with **Create pull request**. 22 | 23 | ## Translation guidelines 24 | 25 | * Don't translate texts literally - texts should feel as naturally as possible in your language. 26 | * Feel free to edit English file as well to improve English and fix typos. 27 | * If you want to use characters `"` or `\` you have to use their escaped form `\"` or `\\`. 28 | * Include name of your language in that language as well (at the top of the file). 29 | 30 | ### Pluralization ### 31 | 32 | The pattern search uses [polyglot.js](http://airbnb.io/polyglot.js/) library for localization and it supports pluralization systems of more than 30 languages. For example in Czech, there are three separate forms: 1, 2 through 4, and 5 and up; so translation string in Czech can look like this `"%{count} (one) |||| %{count} (a few) |||| %{count} (a lot)"`. German on the other side has only two plural form, so translation string will look like this `"%{count} (one) |||| %{count} (two or more)"`. Of course this only matters if there is some number to display. 33 | -------------------------------------------------------------------------------- /i18n/zh.hson: -------------------------------------------------------------------------------- 1 | // Chinese(zh) localization of ps.waltheri.net 2 | // Localized name: 中文 3 | 4 | { 5 | // Top navigation 6 | nav: { 7 | pattern_search: "棋谱模式搜索", 8 | database: "浏览数据库", 9 | about: "关于", 10 | facebook: "Facebook 页面" 11 | }, 12 | 13 | // tooltips for blue buttons in top right corner 14 | menu: { 15 | settings: "设置", 16 | share: "分享本次搜索", 17 | help: "点击此处寻求支持", 18 | }, 19 | 20 | // selection group 21 | selection: { 22 | title: "范围:", 23 | full: "全棋盘", 24 | around: "棋子周围", 25 | tooltips: { 26 | full: "选择全棋盘范围", 27 | around: "选择棋子周围" 28 | } 29 | }, 30 | 31 | // filter (search in) group 32 | filter: { 33 | title: "搜索范围:", 34 | all: "所有棋谱", 35 | modern: "现代棋谱", 36 | new: "最新棋谱", 37 | tooltips: { 38 | button: "搜索范围", 39 | all: "在整个数据库中搜索", 40 | modern: "从2000年以后对局谱中搜索", 41 | new: "从1年以内的对局谱中搜索" 42 | } 43 | }, 44 | 45 | // big blue control buttons 46 | control: { 47 | title: "搜索控制:", 48 | clear: "清除", 49 | undo: "上一次", 50 | redo: "下一次", 51 | search_w: "搜索 白", 52 | search_b: "搜索 黑", 53 | tooltips: { 54 | clear: "清除本步", 55 | undo: "上一次搜索", 56 | redo: "下一次搜索", 57 | search_w: "寻找白棋连续招法", 58 | search_b: "寻找黑棋连续招法", 59 | auto: "自动搜索", 60 | stop: "停止搜索" 61 | } 62 | }, 63 | 64 | // continuation block 65 | continuations: { 66 | title: "寻找连续招法", 67 | caption: "%{games} 职业棋谱在 %{time} 秒内完成搜索", 68 | games: "棋谱数", 69 | winrate: "胜率" 70 | }, 71 | 72 | // matching games block 73 | games: { 74 | title: "棋谱匹配", 75 | caption: "目前 %{smart_count} 棋谱匹配显示中 在 %{games} 棋谱中 |||| 目前 %{smart_count} 棋谱匹配显示中 在 %{games} 棋谱中", 76 | year: "年", 77 | tip: "选择上面棋谱进行查看", 78 | black: "黑", 79 | white: "白", 80 | back: "回到搜索界面" 81 | }, 82 | 83 | // statistics block 84 | statistics: { 85 | title: "单步统计", 86 | caption: "针对目前这一步的更高级统计", 87 | probability: "胜率", 88 | popularity: "人气指标", 89 | black_wins: "就此步棋黑棋赢了 %{count} 对局, |||| 就此步棋黑棋赢了 %{count} 对局,", // this string and the 'statistics.white_wins' string are rendered in row (divided by space) 90 | white_wins: "白棋赢了 %{count} 对局. |||| 白棋赢了 %{count} 对局.", 91 | popularity_desc: "本图标显示此步棋在历年的人气指标.", 92 | lost: "输的对局", 93 | won: "赢得对局", 94 | unknown: "未知结果", 95 | games: "已查看对局" 96 | }, 97 | 98 | // kifu player and info 99 | player: { 100 | title: "重播棋谱", 101 | edit_mode: "可编辑模式", 102 | score_mode: "点目模式", 103 | coordinates: "显示棋谱坐标", 104 | about: "关于", 105 | about_desc: "此棋谱基于GOOL技术开发完成,方便广大围棋爱好者使用和参考学习。怀旧空吟闻笛赋,到乡翻似烂柯人!", // write some pretty advert for me in your language :-) 106 | game_info: "棋谱信息", 107 | date: "日期", 108 | event: "赛事", 109 | komi: "贴目", 110 | result: "对局结果", 111 | tooltips: { 112 | first: "第一步", 113 | previous: "上一步", 114 | move_number: "目前手数", 115 | next: "下一步", 116 | last: "最后一步", 117 | menu: "菜单" 118 | }, 119 | }, 120 | 121 | // settings modal dialog 122 | settings: { 123 | title: "设置", 124 | board: "棋盘:", 125 | coordinates: "显示棋盘的坐标", 126 | plots: "图表:", 127 | continuation_plot: "显示连续招法的图表", 128 | language: "语言:", 129 | language_auto: "自动检测", 130 | other: "其他:", 131 | sound: "当下一步棋时发出声音", 132 | litemode: "轻便模式", 133 | litemode_desc: "(为更好效果)", 134 | save: "保存本变化" 135 | }, 136 | 137 | // share modal dialog 138 | share: { 139 | title: "分享本次搜索", 140 | text: "本次棋谱模式的搜索", 141 | link: "本次搜索的链接地址:", 142 | html: "HTML:", 143 | social: "在社交平台上分享:", 144 | facebook: "在 Facebook 上分享", 145 | twitter: "在 Twitter 上分享", 146 | twitter_text: "查阅此步!", 147 | copy_confirm: "已复制!", 148 | error: "在分享过程中出现一些问题." 149 | }, 150 | 151 | // help popovers 152 | help: { 153 | selection: { 154 | title: '选择模式', 155 | content: '您有三个选择。 全棋盘 按钮用于选择整个棋盘范围, 这样在棋盘的每一个区域和子都会考虑进来。 棋子周围 按钮用于选择棋子周围区域。当您只是在研究局部定式的时候非常有用。第三个选择是 手动选择 - 你可以按需选择棋谱任何部分,只需通过鼠标拖拽区域即可。' 156 | }, 157 | filter: { 158 | title: '特定搜索', 159 | content: '您以将搜索限制在不同的时间范围。如果您选择现代棋谱, 会在21世纪以后的棋谱中搜索。 而选项最新棋谱则为1年内的棋谱范围.' 160 | }, 161 | board: { 162 | title: '选择棋步', 163 | content: '通过在棋谱中 点击 ,您可以按照需要选择棋步. 在每一次点击和模式搜索之后,从职业对局中找到关于此步的所有结果。 您也可以通过按住 shift (或 ctrl) 键来即时插入黑棋(或白棋).' 164 | }, 165 | continuations: { 166 | title: '寻找连续招法', 167 | content: '在本表中您可以看到一系列的在职业对局中的连续招法. 您也可以看到一些相关统计以及胜率越高的下法。' 168 | }, 169 | games: { 170 | title: '匹配对局', 171 | content: '

在本表中您可以看到一系列包含被搜索步的棋谱,通过点击来看到实际对局中的这一步情况. 从而您可以通过鼠标滚轮重播此棋谱, 或者通过双击小棋谱显示在大棋谱中. 考虑到服务器效能,最多可显示50个棋谱。

现在就尝试在右上角点击 %{icon} .

' 172 | }, 173 | statistics: { 174 | title: '统计', 175 | content: '

在本列中你可以看到当前步的所有变化统计数据.

现在就尝试在右上角点击 %{icon} .

' 176 | }, 177 | games_button: { 178 | title: '匹配对局', 179 | content: '点击此按钮来看匹配的对局,您也可以重播这些对局.' 180 | }, 181 | control: { 182 | title: "控制按钮", 183 | clear: "清除棋盘 (所有之前搜索记录都会丢失)", 184 | undo: "获得上一次搜索 (undo)", 185 | redo: "获得下一次搜索 (redo)", 186 | search_w: "寻找白棋连续招法以及匹配对局", 187 | search_b: "寻找黑棋连续招法", 188 | auto: "启动/取消自动搜索. 如果本状态启动,则在每一步时都会自动实行搜索. 如果您只希望在棋谱上尝试您自己的变化,那么可以取消本状态。" 189 | }, 190 | share: { 191 | title: '分享您的搜索', 192 | content: '如果您点击此按钮,您本次搜索会保存并可分享在各个社交平台中.' 193 | }, 194 | fb_like: { 195 | title: '我喜欢', 196 | content: '如果您喜欢本棋谱模式搜索服务,可以点击此处.', 197 | } 198 | }, 199 | 200 | // error messages 201 | errors: { 202 | timeout: { 203 | title: "搜索时间发生超时.", 204 | text: "目前服务器可能处于巨大受访压力下,请过段时间再尝试." 205 | }, 206 | offline: { 207 | title: "搜索失败.", 208 | text: "可能您处于离线状态,请查看您的上网情况。" 209 | }, 210 | other: { 211 | title: "搜索失败.", 212 | text: "服务器端可能存在一些未知问题,请稍后再试." 213 | }, 214 | javascript: { 215 | title: "在应用层出现问题.", 216 | text: "如果您希望能够解决此问题,请稍后再试." 217 | } 218 | }, 219 | 220 | // general stuff used on multiple places 221 | general: { 222 | close: "关闭", 223 | na: "不可行", 224 | back: "返回", 225 | next: "下一步" 226 | } 227 | } -------------------------------------------------------------------------------- /i18n/cs.hson: -------------------------------------------------------------------------------- 1 | // Czech(cs) localization of ps.waltheri.net 2 | // Localized name: Čeština 3 | 4 | { 5 | // Top navigation 6 | nav: { 7 | pattern_search: "Vyhledávání pozic", 8 | database: "Databáze", 9 | about: "O applikaci", 10 | facebook: "Facebook stránka" 11 | }, 12 | 13 | // tooltips for blue buttons in top right corner 14 | menu: { 15 | settings: "Nastavení", 16 | share: "Sdílet aktuální hledání", 17 | help: "Pokud si nevíte rady, klikněte sem", 18 | old: "Stará verze" 19 | }, 20 | 21 | // selection group 22 | selection: { 23 | title: "Výběr:", 24 | full: "Celá deska", 25 | around: "Okolo kamenů", 26 | tooltips: { 27 | full: "Celá deska bude brána v úvahu", 28 | around: "V úvahu bude brána pouze oblast kolem kamenů" 29 | } 30 | }, 31 | 32 | // filter (search in) group 33 | filter: { 34 | title: "Omezit hledání:", 35 | all: "Všechny hry", 36 | modern: "Moderní hry", 37 | new: "Nové hry", 38 | tooltips: { 39 | button: "Omezit hledání", 40 | all: "Hledat v celé databázi", 41 | modern: "Hledat mezi hrami z roku 2000 a novějšími", 42 | new: "Hledat mezi nejnovějšími hrami" 43 | } 44 | }, 45 | 46 | // big blue control buttons 47 | control: { 48 | title: "Nastavení vyhledávání:", 49 | clear: "Reset", 50 | undo: "Zpět", 51 | redo: "Vpřed", 52 | search_w: "Hledat B", 53 | search_b: "Hledat Č", 54 | tooltips: { 55 | clear: "Vyčistit desku a hledání", 56 | undo: "Vrátit se na předchozí hledání", 57 | redo: "Znovu vyhledat poslední hledání", 58 | search_w: "Najít odpovědi bílého", 59 | search_b: "Najít odpovědi černého", 60 | auto: "Automatické vyhledávání", 61 | stop: "Ukončit hledání" 62 | } 63 | }, 64 | 65 | // continuation block 66 | continuations: { 67 | title: "Nalezené odpovědi", 68 | caption: "Bylo prohledáno %{games} profesionálních her během %{time} s", 69 | games: "Počet her", 70 | winrate: "Úspěšnost" 71 | }, 72 | 73 | // matching games 74 | games: { 75 | title: "Nalezené hry", 76 | caption: "Zobrazen %{smart_count} výskyt z %{games} hry |||| Zobrazeny %{smart_count} výskyty ze %{games} her |||| Zobrazeno %{smart_count} výskytů z %{games} her", 77 | year: "Rok", 78 | tip: "Vyberte hru ze seznamu výše", 79 | black: "Černý", 80 | white: "Bílý", 81 | back: "Zpět na vyhledávání" 82 | }, 83 | 84 | // statistics block 85 | statistics: { 86 | title: "Statistiky", 87 | caption: "Pokročilé statistiky o aktuální pozici", 88 | probability: "Pravděpodobnost výhry", 89 | popularity: "Oblíbenost", 90 | black_wins: "V této pozici černý vyhrál %{count} hru, |||| V této pozici černý vyhrál %{count} hry, |||| V této pozici černý vyhrál %{count} her,", // this string and the 'statistics.white_wins' string are rendered in row (divided by space) 91 | white_wins: "bílý %{count} hru. |||| bílý %{count} hry. |||| bílý %{count} her.", 92 | popularity_desc: "Tento graf ukazuje četnost výskytu dané pozice během let.", 93 | lost: "Prohrané hry", 94 | won: "Vyhrané hry", 95 | unknown: "Výsledek neznámý", 96 | games: "Odehraných her", 97 | popularity_na: "Pro zobrazení grafu hledejte ještě jednou. |||| Pro zobrazení grafu hledejte ještě přibližně %{smart_count}×. |||| Pro zobrazení grafu hledejte ještě přibližně %{smart_count}×." 98 | }, 99 | 100 | // game browser and info 101 | player: { 102 | title: "Přehrát partii", 103 | edit_mode: "Editace", 104 | score_mode: "Počítání skóre", 105 | coordinates: "Zobrazit souřadnice", 106 | about: "O přehrávači", 107 | about_desc: "Tento přehrávač go partií je postaven na knihovně WGo.js. Pomocí této knihovny můžete podobný přehrávač snadno vložit do stránek a upravit podle svých představ.", 108 | game_info: "Informace o hře", 109 | date: "Datum", 110 | event: "Událost", 111 | komi: "Komi", 112 | result: "Výsledek", 113 | score_help: "Mrtvé kameny označíte kliknutím na ně. Dále je možné označit neutrály kliknutím na volné pole. Území musí být kompletně ohraničené.", 114 | share: "Sdílet", 115 | pernament_link: "Permanentní odkaz", 116 | tooltips: { 117 | first: "Na začátek", 118 | previous: "Předchozí tah", 119 | move_number: "Aktuální číslo tahu / Skočit na tah", 120 | next: "Další tah", 121 | last: "Na konec", 122 | menu: "Menu" 123 | } 124 | }, 125 | 126 | 127 | // settings modal dialog 128 | settings: { 129 | title: "Nastavení", 130 | board: "Deska:", 131 | coordinates: "Zobrazit souřadnice okolo desky", 132 | plots: "Grafy:", 133 | continuation_plot: "Zobrazit graf odpovědí", 134 | language: "Jazyk:", 135 | language_auto: "Automaticky detekovat", 136 | other: "Další:", 137 | sound: "Zahrát zvuk po kliknutí na desku", 138 | litemode: "Lite mód", 139 | litemode_desc: "(pro lepší výkonnost)", 140 | save: "Uložit změny" 141 | }, 142 | 143 | // share modal dialog 144 | share: { 145 | title: "Sdílet aktuální hledání", 146 | text: "Pozice na Waltheri's go pattern search", 147 | link: "Odkaz:", 148 | html: "HTML:", 149 | social: "Sdílet na sociálních sítí:", 150 | facebook: "Sdílet na Facebooku", 151 | twitter: "Sdílet na Twitteru", 152 | twitter_text: "Mrkněte na tuhle pozici!", 153 | copy_confirm: "Zkopírováno!", 154 | error: "Vyskytla se nějaká chyba a sdílení teď není možné. Zkuste za chvíli." 155 | }, 156 | 157 | // help popovers 158 | help: { 159 | selection: { 160 | title: 'Nastavení výběru', 161 | content: 'Můžete si vybrat ze tří možností. Celá deska - hledá se po celé desce a záleží na každém průsečíku. Okolo kamenů - hledání probíhá pouze v okolí položených kamenů, ostatní průsečíky jsou ignorovány. Poslední možnost je manuální výběr - pomocá myši a tahnutí sami zvolíte, ve které oblasti se má hledat a které prusečíky mají být brány v úvahu.' 162 | }, 163 | filter: { 164 | title: 'Filtrovat hledání', 165 | content: 'Zde můžete omezit hledání podle stáří her. Pokud vyberete moderní hry, hledat se bude pouze mezi hrami z roku 2000 a mladšími. Možnost nové hry omezí hledání na nejnovější hry v databázi.' 166 | }, 167 | board: { 168 | title: 'Nastavte pozici', 169 | content: 'Klikáním na desku nastavíte pozici, kterou chcete vyhledat. Barva kamenů se normálně střídá, ale pokud společně s kliknutím podržíte klávesu shift (nebo ctrl) ihned se vloží černý, nebo bílý kámen.' 170 | }, 171 | continuations: { 172 | title: 'Nalezené odpovědi', 173 | content: 'V této tabulce je seznam tahů, které v dané situaci hráli profesionální hráči. Také je zde uvedeno, v kolika procentech daný tah vedl k vítězství.' 174 | }, 175 | games: { 176 | title: 'Nalezené hry', 177 | content: '

V této tabulce uvidíte hry, které obsahují hledanou pozici. Kliknutím na hru se hra zobrazí na malé desce, kde si jí můžete přehrát pomocí kolečka myši. Když kliknete na malou desku otevře se veliký přehrávač partií na celou obrazovku. Pro lepší výkon se zobrazuje maximálně 50 her.

Teď klikněte na %{icon} v pravém horním rohu.

' 178 | }, 179 | statistics: { 180 | title: 'Statistiky', 181 | content: '

V tomto bloku jsou ruzné statistiky o aktuální pozici.

Teď klikněte na %{icon} v pravém horním rohu.

' 182 | }, 183 | games_button: { 184 | title: 'Nalezené hry', 185 | content: 'Tímto tlačítkem se zobrazí seznam nalezených her a přehravač, pomocí kterého si budete moci hry přehrát.' 186 | }, 187 | control: { 188 | title: "Ovládací tlačítka", 189 | clear: "Vyčistit hledání (dosavadní hledání budou ztraceny)", 190 | undo: "Předchozí hledání", 191 | redo: "Znovu hledat", 192 | search_w: "Najít odpovědi bílého", 193 | search_b: "Najít odpovědi černého", 194 | auto: "Zapnout/vypnout automatické hledání. Pokud je automatické hledání aktivováno, hledání proběhne po každém tahu. To je náročnější pro server, takže pokud si jentak přehráváte varianty, vypněte prosím tuto možnost." 195 | }, 196 | share: { 197 | title: 'Sdílet hledání', 198 | content: 'Po kliknutí na toto tlačítko se aktuální hledání uloží a vy ho budete moci sdílet se svými přáteli na Facebooku, Twitteru nebo kdekoli jinde.' 199 | }, 200 | fb_like: { 201 | title: 'Dejte like', 202 | content: 'Pokud se vám tato webová aplikace líbí, budu rád, když jí olikujete na Facebooku.', 203 | } 204 | }, 205 | 206 | // error messages 207 | errors: { 208 | timeout: { 209 | title: "Sakra! Vypršel časový limit.", 210 | text: "Uběhl časový limit a server nevrátil žádný výsledek, pravděpodobně je pod velikým tlakem. Zkuste prosím znovu." 211 | }, 212 | offline: { 213 | title: "Sakra! Hledání se nepovedlo.", 214 | text: "Vypadá to, že nejste připojeni k internetu. Zkontrolujte svoje připojení a zkuste znovu." 215 | }, 216 | other: { 217 | title: "Sakra! Hledání se nepovedlo.", 218 | text: "Pravděpodobně se vyskytl nějaký dočasný problém na straně serveru. Pokud ale tato zpráva pořád vyskakuje, napište prosím na e-mailovou adresu thebestgoplayer@gmail.com." 219 | }, 220 | javascript: { 221 | title: "Sakra! V aplikaci vznikla chyba.", 222 | text: "

Pokud chcete pomoci vyřešit tento problém, napište prosím na e-mailovou adresu thebestgoplayer@gmail.com a uveďte následující text.

%{stack}
" 223 | } 224 | }, 225 | 226 | // general stuff used on multiple places 227 | general: { 228 | close: "Zavřít", 229 | na: "není dostupné", 230 | back: "Zpět", 231 | next: "Dále" 232 | }, 233 | 234 | // database section 235 | db: { 236 | sections: { 237 | recent: "Naposled přidané", 238 | players: "Seznam hráčů", 239 | advanced: "Pokročilé vyhledávání" 240 | }, 241 | game_list: { 242 | title: "Hry", 243 | count: "(%{count} hra) |||| (%{count} hry) |||| (%{count} her)", 244 | load_more: "Načíst další hry", 245 | list_view: "Seznam", 246 | tile_view: "Dlaždice", 247 | table_view: "Tabulka", 248 | recent: "Nejnovější hry", 249 | advanced: "Pokročilé vyhledávání" 250 | }, 251 | player_info: { 252 | na: "Currently we don't know anything about %{player}. Learn how to add some info.", 253 | loading: "Načítání informací...", 254 | origin: "Tento text pochází z %{name}. Tam najdete ještě více informací o hrači a možnost je upravit." 255 | }, 256 | browser: { 257 | more_between: "Další hry mezi %{player1} a %{player2}", 258 | more: "Další hry %{player}" 259 | }, 260 | players: { 261 | title: "Seznam hráčů" 262 | }, 263 | filter: { 264 | player1: "Hráč 1", 265 | player2: "Hráč 2", 266 | older_than: "Starší než %{year}", 267 | newer_than: "%{year} - do teď", 268 | black_won: "Černý vyhrál", 269 | white_won: "Bílý vyhrál", 270 | black_half: "B + 0,5", 271 | white_half: "W + 0,5", 272 | black_res: "B + Vzd", 273 | white_res: "W + Vzd", 274 | jigo: "Remíza" 275 | } 276 | }, 277 | } -------------------------------------------------------------------------------- /i18n/en.hson: -------------------------------------------------------------------------------- 1 | // English(en) localization of ps.waltheri.net 2 | // Localized name: English 3 | 4 | { 5 | // Top navigation 6 | nav: { 7 | pattern_search: "Pattern search", 8 | database: "Browse the database", 9 | about: "About", 10 | facebook: "Facebook page" 11 | }, 12 | 13 | // tooltips for blue buttons in top right corner 14 | menu: { 15 | settings: "Settings", 16 | share: "Share current search", 17 | help: "Click here, if you don't know what to do", 18 | old: "Old version of the pattern search", 19 | }, 20 | 21 | // selection group 22 | selection: { 23 | title: "Selection:", 24 | full: "Full board", 25 | around: "Around stones", 26 | tooltips: { 27 | full: "Full board selection", 28 | around: "Selection around placed stones" 29 | } 30 | }, 31 | 32 | // filter (search in) group 33 | filter: { 34 | title: "Search in:", 35 | all: "All games", 36 | modern: "Modern games", 37 | new: "New games", 38 | tooltips: { 39 | button: "Search in", 40 | all: "Search in the whole database", 41 | modern: "Games from year 2000 and newer", 42 | new: "Games not older than a year" 43 | } 44 | }, 45 | 46 | // big blue control buttons 47 | control: { 48 | title: "Search control:", 49 | clear: "Clear", 50 | undo: "Undo", 51 | redo: "Redo", 52 | search_w: "Search W", 53 | search_b: "Search B", 54 | tooltips: { 55 | clear: "Clear the position", 56 | undo: "Previous search", 57 | redo: "Next search", 58 | search_w: "Find white continuations", 59 | search_b: "Find black continuations", 60 | auto: "Autosearch", 61 | stop: "Stop searching" 62 | } 63 | }, 64 | 65 | // continuation block 66 | continuations: { 67 | title: "Found continuations", 68 | caption: "%{games} pro games searched in %{time} s", 69 | games: "Number of games", 70 | winrate: "Winning ratio" 71 | }, 72 | 73 | // matching games block 74 | games: { 75 | title: "Matching games", 76 | caption: "Displaying %{smart_count} occurrence from %{games} game |||| Displaying %{smart_count} occurrences from %{games} games", 77 | year: "Year", 78 | tip: "Select any game above to view it.", 79 | black: "Black", 80 | white: "White", 81 | back: "Back to the search" 82 | }, 83 | 84 | // statistics block 85 | statistics: { 86 | title: "Position statistics", 87 | caption: "Advanced statistics about current position", 88 | probability: "Winning probability", 89 | popularity: "Popularity", 90 | black_wins: "In this position black managed to win %{count} game, |||| In this position black managed to win %{count} games,", // this string and the 'statistics.white_wins' string are rendered in row (divided by space) 91 | white_wins: "white won %{count} game. |||| white won %{count} games.", 92 | popularity_desc: "This plot shows popularity of this position through years.", 93 | lost: "Lost games", 94 | won: "Won games", 95 | unknown: "Unknown result", 96 | games: "Games played", 97 | popularity_na: "Search again one more time to render the plot. |||| Search again ±%{smart_count} more times to render the plot." 98 | }, 99 | 100 | // kifu player and info 101 | player: { 102 | title: "Replay the game", 103 | edit_mode: "Edit mode", 104 | score_mode: "Score mode", 105 | coordinates: "Toggle coordinates", 106 | about: "About this viewer", 107 | about_desc: "This sgf / go kifu viewer is based on WGo.js library. It is easy to use and you can insert into your website.", // write some pretty advert for me in your language :-) 108 | game_info: "Game information", 109 | date: "Date", 110 | event: "Event", 111 | komi: "Komi", 112 | result: "Result", 113 | score_help: "Click on stones to mark them dead or alive. You can also set and unset territory points by clicking on them. Territories must be completely bordered.", 114 | share: "Share", 115 | pernament_link: "Permanent link", 116 | share_twitter_text: "Check this game between %{black} and %{white}!", 117 | download: "Download SGF", 118 | tooltips: { 119 | first: "First move", 120 | previous: "Previous move", 121 | move_number: "Current move number / Jump to move", 122 | next: "Next move", 123 | last: "Last move", 124 | menu: "Menu" 125 | }, 126 | }, 127 | 128 | // settings modal dialog 129 | settings: { 130 | title: "Settings", 131 | board: "Board:", 132 | coordinates: "Display board's coordinates", 133 | plots: "Plots:", 134 | continuation_plot: "Display continuation plot", 135 | language: "Language:", 136 | language_auto: "Auto detect", 137 | other: "Other:", 138 | sound: "Play sound when placing a stone", 139 | litemode: "Lite mode", 140 | litemode_desc: "(for better performance)", 141 | save: "Save changes" 142 | }, 143 | 144 | // share modal dialog 145 | share: { 146 | title: "Share current search", 147 | text: "Position on Waltheri's go pattern search", 148 | link: "Link of the search:", 149 | html: "HTML:", 150 | social: "Share on social sites:", 151 | facebook: "Share on Facebook", 152 | twitter: "Share on Twitter", 153 | twitter_text: "Check out this position!", 154 | copy_confirm: "Copied!", 155 | error: "There is some error and sharing service is not currently working." 156 | }, 157 | 158 | // help popovers 159 | help: { 160 | selection: { 161 | title: 'Choose selection mode', 162 | content: 'You have three options. Full board button selects the whole board, so every field and stone on the board matters. Around stones button selects only area around stones. This is useful, when you are looking for joseki. Third option is a manual selection - you can select any part of the board you want, just click on the board with mouse and drag.' 163 | }, 164 | filter: { 165 | title: 'Specify search', 166 | content: 'You can restrict your search to games of certain age. If you select modern games, a position will be searched only in pro games played in 21st century. Option new games narrows a search set even more.' 167 | }, 168 | board: { 169 | title: 'Setup position', 170 | content: 'By clicking on the board you can setup position you want. After each click the pattern search will find all occurrences of the position among professional go games. You can also hold shift (or ctrl) key while clicking to immediately insert black (or white) stone.' 171 | }, 172 | continuations: { 173 | title: 'Found continuations', 174 | content: 'In this table you can see list of continuations, which have been played in professional games. You can also see some statistics, the higher winning ratio the more successfull move.' 175 | }, 176 | games: { 177 | title: 'Matching games', 178 | content: '

In this table you can see list of games, which contain searched position. Click on them to see your position in actual game. Then you can replay them on the small board using mouse wheel, or on a big board which will open after tapping the small board. For performance reasons there is 50 games at the most.

Now try to click on %{icon} in the top right corner.

' 179 | }, 180 | statistics: { 181 | title: 'Statistics', 182 | content: '

In this column you can see various statistics for the current position.

Now try to click on %{icon} in the top right corner.

' 183 | }, 184 | games_button: { 185 | title: 'Matching games', 186 | content: 'Click on this button to see matching games. You will be able to replay them as well.' 187 | }, 188 | control: { 189 | title: "Control buttons", 190 | clear: "Clear board (all previous searches will be lost)", 191 | undo: "Get previous search (undo)", 192 | redo: "Get next search (redo)", 193 | search_w: "Find white continuations (and matching games)", 194 | search_b: "Find black continuations", 195 | auto: "Enable/disable auto search. If checked searching will start after each move automatically. Please uncheck this option, if you want just try your variantion on the board." 196 | }, 197 | share: { 198 | title: 'Share your search', 199 | content: 'If you click on this button, your search gets saved and you will be able to share your search with your friends on Facebook, Twitter or whatever social site kids now use.' 200 | }, 201 | fb_like: { 202 | title: 'Like it', 203 | content: 'If you enjoy Waltheri\'s go pattern search I\'d be happy if you liked it on Facebook and shared it with your friends.', 204 | } 205 | }, 206 | 207 | // error messages 208 | errors: { 209 | timeout: { 210 | title: "Oh snap! Searching reached timeout.", 211 | text: "It seems the server is under big pressure. Please try again in a moment." 212 | }, 213 | offline: { 214 | title: "Oh snap! Search failed.", 215 | text: "It seems you are offline. Check your internet connection and try again." 216 | }, 217 | other: { 218 | title: "Oh snap! Search failed.", 219 | text: "There's probably some temporary error on the server side. However if this message keeps poping out, or displays just for the current position, please send message on this email: thebestgoplayer@gmail.com." 220 | }, 221 | javascript: { 222 | title: "Oh snap! An error occured in the application.", 223 | text: "

If you would like to help to solve it, please send information about how it happend and the following message on this email: thebestgoplayer@gmail.com.

%{stack}
" 224 | } 225 | }, 226 | 227 | plots: { 228 | error: "Plot couldn't be loaded.", 229 | loading: "Loading cool plot..." 230 | }, 231 | 232 | // general stuff used on multiple places 233 | general: { 234 | close: "Close", 235 | na: "not available", 236 | back: "Back", 237 | next: "Next" 238 | }, 239 | 240 | // database section 241 | db: { 242 | sections: { 243 | recent: "Recently added", 244 | players: "Browse by players", 245 | advanced: "Advanced search" 246 | }, 247 | game_list: { 248 | title: "Games", 249 | count: "(%{count} game) |||| (%{count} games)", 250 | load_more: "Load more games", 251 | list_view: "List view", 252 | tile_view: "Tile view", 253 | table_view: "Table view", 254 | recent: "Recent games", 255 | advanced: "Advanced search", 256 | replay_game: "Replay game", 257 | download_sgf: "Download game as SGF" 258 | }, 259 | player_info: { 260 | na: "Currently we don't know anything about %{player}. Learn how to add some info.", 261 | loading: "Loading info...", 262 | origin: "This text comes from %{name}. You can find more info there or edit it." 263 | }, 264 | browser: { 265 | more_between: "More games between %{player1} and %{player2}", 266 | more: "More games of %{player}" 267 | }, 268 | players: { 269 | title: "List of players" 270 | }, 271 | filter: { 272 | player1: "Player 1", 273 | player2: "Player 2", 274 | older_than: "Older than %{year}", 275 | newer_than: "%{year} - present", 276 | black_won: "Black won", 277 | white_won: "White won", 278 | black_half: "B + 0.5", 279 | white_half: "W + 0.5", 280 | black_res: "B + Res", 281 | white_res: "W + Res", 282 | jigo: "Jigo" 283 | } 284 | }, 285 | } 286 | -------------------------------------------------------------------------------- /i18n/it.hson: -------------------------------------------------------------------------------- 1 | // Italian(it) localization of ps.waltheri.net 2 | // Localized name: Italiano 3 | 4 | { 5 | // Top navigation 6 | nav: { 7 | pattern_search: "Ricerca pattern", 8 | database: "Sfoglia il database", 9 | about: "Informazioni", 10 | facebook: "Pagina Facebook" 11 | }, 12 | 13 | // tooltips for blue buttons in top right corner 14 | menu: { 15 | settings: "Opzioni", 16 | share: "Condividi ricerca attuale", 17 | help: "Clicca qui se non sai cosa fare", 18 | old: "Vecchia versione della ricerca pattern", 19 | }, 20 | 21 | // selection group 22 | selection: { 23 | title: "Seleziona:", 24 | full: "Globale", 25 | around: "Locale", 26 | tooltips: { 27 | full: "L'intero goban è selezionato", 28 | around: "Seleziona le aree adiacenti alle pietre già posizionate" 29 | } 30 | }, 31 | 32 | // filter (search in) group 33 | filter: { 34 | title: "Cerca in:", 35 | all: "Tutte le partite", 36 | modern: "Partite moderne", 37 | new: "Partite recenti", 38 | tooltips: { 39 | button: "Cerca in", 40 | all: "Cerca in tutto il database", 41 | modern: "Partite dall'anno 2000 in poi", 42 | new: "Partite non più vecchie di un anno" 43 | } 44 | }, 45 | 46 | // big blue control buttons 47 | control: { 48 | title: "Controlli ricerca:", 49 | clear: "Azzera", 50 | undo: "Annulla", 51 | redo: "Ripeti", 52 | search_w: "Cerca B", 53 | search_b: "Cerca N", 54 | tooltips: { 55 | clear: "Azzera la posizione", 56 | undo: "Precedente", 57 | redo: "Successivo", 58 | search_w: "Trova continuazioni per bianco", 59 | search_b: "Trova continuazioni per nero", 60 | auto: "Ricerca automatica", 61 | stop: "Ferma ricerca" 62 | } 63 | }, 64 | 65 | // continuation block 66 | continuations: { 67 | title: "Trova continuazioni", 68 | caption: "%{games} partite professionali analizzate in %{time} s", 69 | games: "Num. partite", 70 | winrate: "Perc. vittoria" 71 | }, 72 | 73 | // matching games block 74 | games: { 75 | title: "Partite corrispondenti", 76 | caption: "Visualizzata %{smart_count} situazione da %{games} partita |||| Visualizzate %{smart_count} situazioni da %{games} partite", 77 | year: "Anno", 78 | tip: "Seleziona una delle partite per visualizzarla.", 79 | black: "Nero", 80 | white: "Bianco", 81 | back: "Torna alla ricerca" 82 | }, 83 | 84 | // statistics block 85 | statistics: { 86 | title: "Statistiche posizione", 87 | caption: "Statistiche avanzate sulla posizione attuale", 88 | probability: "Probabilità di vittoria", 89 | popularity: "Popolarità", 90 | black_wins: "In questa posizione nero è riuscito a vincere %{count} partita, |||| In questa posizione nero è riuscito a vincere %{count} partite,", // this string and the 'statistics.white_wins' string are rendered in row (divided by space) 91 | white_wins: "Bianco vince %{count} partita. |||| Bianco vince %{count} partite.", 92 | popularity_desc: "Popolarità della posizione negli anni.", 93 | lost: "Partite perse", 94 | won: "Partite vinte", 95 | unknown: "Risultato sconosciuto", 96 | games: "Partite giocate", 97 | popularity_na: "Cerca ancora una volta per aggiornare il grafico. |||| Cerca ancora ±%{smart_count} per aggiornare il grafico." 98 | }, 99 | 100 | // kifu player and info 101 | player: { 102 | title: "Guarda la partita", 103 | edit_mode: "Modalità modifica", 104 | score_mode: "Modalità punteggio", 105 | coordinates: "Coordinate", 106 | about: "Info visualizzatore", 107 | about_desc: "Questo visualizzatore di sgf è basato sulla libreria WGo.js. E' facile da usare e puoi inserirlo nel tuo sito.", // write some pretty advert for me in your language :-) 108 | game_info: "Informazioni partita", 109 | date: "Data", 110 | event: "Evento", 111 | komi: "Komi", 112 | result: "Risultato", 113 | score_help: "Clicca sulla pietre per segnarle come morte o come vive. Puoi anche aggiungere/sottrarre i punti territorio cliccando su di essi. I territori debbono essere completamente chiusi per essere conteggiati.", 114 | share: "Share", 115 | pernament_link: "Permanent link", 116 | share_twitter_text: "Guarda questa partita tra %{black} and %{white}!", 117 | download: "Download SGF", 118 | tooltips: { 119 | first: "Prima mossa", 120 | previous: "Mossa precedente", 121 | move_number: "Numero mossa corrente / Vai alla mossa", 122 | next: "Prossima mossa", 123 | last: "Ultima mossa", 124 | menu: "Menù" 125 | }, 126 | }, 127 | 128 | // settings modal dialog 129 | settings: { 130 | title: "Opzioni", 131 | board: "Goban:", 132 | coordinates: "Mostra coordinate", 133 | plots: "Grafici:", 134 | continuation_plot: "Mostra continuazione grafico", 135 | language: "Lingua:", 136 | language_auto: "Rilevata automaticamente", 137 | other: "Altro:", 138 | sound: "Riproduci il suono delle pietre", 139 | litemode: "Modalità leggera", 140 | litemode_desc: "(per prestazioni migliori)", 141 | save: "Salva cambiamenti" 142 | }, 143 | 144 | // share modal dialog 145 | share: { 146 | title: "Condividi situazione corrente", 147 | text: "Situazione da Waltheri's go pattern search", 148 | link: "Link della ricerca:", 149 | html: "HTML:", 150 | social: "Condividi sui social:", 151 | facebook: "Condividi su Facebook", 152 | twitter: "Condividi su Twitter", 153 | twitter_text: "Guarda questa situazione!", 154 | copy_confirm: "Copiato!", 155 | error: "C'è qualche errore, il servizio di condivisione non è attualmente funzionante." 156 | }, 157 | 158 | // help popovers 159 | help: { 160 | selection: { 161 | title: "Scegli modalità selezione", 162 | content: "Hai tre opzioni: Il bottone Globale seleziona tutta la tavola, riguarda ogni zona di essa e ogni pietra posizionata. Il bottone Locale seleziona le aree adiacenti alle pietre posizionate, utile se vuoi approfondire uno joseki. La terza opzione è una selezione manuale - puoi selezionare qualunque parte del goban, semplicemente tenendo premuto il tasto del mouse sull'area interessata e trascinando per definire la selezione." 163 | }, 164 | filter: { 165 | title: "Ricerca specifica", 166 | content: "Puoi restringere la tua ricerca a partite di un certo periodo. Selezionando Partite moderne, la posizione sarà cercata solo nelle partite professionali giocate dal 2000 in poi. L'opzione Partite recenti restringe la ricerca a partite giocate nell'ultimo anno." 167 | }, 168 | board: { 169 | title: "Posizioni", 170 | content: "Con pochi click sulla tavola potrai rappresentare qualunque situazione. Dopo ogni click la ricerca pattern troverà e confronterà la posizione con le partite professionali. Puoi tenere premuto shift (o ctrl) mentre clicchi per inserire immediatamente una pietra, nera o bianca, a prescindere dal turno." 171 | }, 172 | continuations: { 173 | title: "Trova continuazioni", 174 | content: "Qui potrai vedere la lista delle continuazioni, che sono state giocate in partite professionali. Potrai anche vedere alcune statistiche, come la percentuale di vittorie, per determinare le mosse migliori." 175 | }, 176 | games: { 177 | title: "Confronta partite", 178 | content: "

Qui potrai vedere una lista di partite che contengono la posizione cercata. Cliccale per vedere la tua posizione nella partita attuale. Potrai rivedere le partite intere nel piccolo goban in basso usando la rotella del mouse, o ,cliccando su di esso, allargare la visuale su un goban di grandi dimensioni. Per ragioni di prestazioni ci saranno al massimo 50 partite.

Ora prova a cliccare su %{icon} nell'angolo in alto a destra.

" 179 | }, 180 | statistics: { 181 | title: "Statistiche", 182 | content: "

In questa colonna vedrai varie statistiche per la posizione corrente.

Prova a cliccare su %{icon} nell'angolo in alto a destra.

" 183 | }, 184 | games_button: { 185 | title: "Confronta partite", 186 | content: "Clicca su questo bottone per confrontare le partite. Potrai anche rivedere l'intero match." 187 | }, 188 | control: { 189 | title: "Pulsanti di controllo", 190 | clear: "Azzera la posizione (tutte le precedenti ricerche andranno perse)", 191 | undo: "Mossa precedente (annulla)", 192 | redo: "Mossa successiva (ripeti)", 193 | search_w: "Trova continuazioni per bianco (e confronta le partite)", 194 | search_b: "Trova continuazioni per nero", 195 | auto: "Attiva/disattiva ricerca automatica. Se selezionato partirà automaticamente dopo ogni mossa. Disattiva l'opzione, se vuoi provare le tue varianti sul goban." 196 | }, 197 | share: { 198 | title: "Condividi ricerca", 199 | content: "Se clicchi questo pulsante, potrai condividere la ricerca con i tuoi amici su Facebook, Twitter o qualunque altro social." 200 | }, 201 | fb_like: { 202 | title: "Mi piace", 203 | content: "Se apprezzi la ricerca pattern di Waltheri, segui la pagina Facebook e condividi questo progetto con i tuoi amici.", 204 | } 205 | }, 206 | 207 | // error messages 208 | errors: { 209 | timeout: { 210 | title: "Ouch! La ricerca ha raggiunto il tempo limite.", 211 | text: "Sembra che il server sia sottoposto ad una grande mole di lavoro. Per favore riprova tra un attimo." 212 | }, 213 | offline: { 214 | title: "Ouch! Ricerca fallita.", 215 | text: "Sembra che tu sia offline. Controlla la tua connessione e riprova." 216 | }, 217 | other: { 218 | title: "Ouch! Ricerca fallita.", 219 | text: "Probabilmente c'è qualche errore momentaneo sul server. Se questo errore persiste, o appare sempre alla corrente posizione, per favore segnalalo a questa mail: thebestgoplayer@gmail.com." 220 | }, 221 | javascript: { 222 | title: "Ouch! Errore nell'applicazione.", 223 | text: "

Se vuoi aiutare a risolvere il problema, manda informazioni su cosa è successo a questa mail: thebestgoplayer@gmail.com. Grazie.

%{stack}
" 224 | } 225 | }, 226 | 227 | plots: { 228 | error: "Il grafico non può essere caricato.", 229 | loading: "Caricamento grafico..." 230 | }, 231 | 232 | // general stuff used on multiple places 233 | general: { 234 | close: "Chiudi", 235 | na: "non disponibile", 236 | back: "Indietro", 237 | next: "Avanti" 238 | }, 239 | 240 | // database section 241 | db: { 242 | sections: { 243 | recent: "Ordine cronologico", 244 | players: "Elenco giocatori", 245 | advanced: "Ricerca avanzata" 246 | }, 247 | game_list: { 248 | title: "Partite", 249 | count: "(%{count} partita) |||| (%{count} partite)", 250 | load_more: "Altre partite", 251 | list_view: "Lista", 252 | tile_view: "Griglia", 253 | table_view: "Elenco", 254 | recent: "Partite recenti", 255 | advanced: "Ricerca avanzata", 256 | replay_game: "Guarda partita", 257 | download_sgf: "Scarica SGF" 258 | }, 259 | player_info: { 260 | na: "Al momento non ci sono informazioni su %{player}. Scopri come aggiungerne.", 261 | loading: "Caricamento informazioni...", 262 | origin: "Questo testo viene da %{name}. Seguendo il link puoi trovare altre informazioni o modificarle." 263 | }, 264 | browser: { 265 | more_between: "Altre partite tra %{player1} e %{player2}", 266 | more: "Altre partite di %{player}" 267 | }, 268 | players: { 269 | title: "Elenco giocatori" 270 | }, 271 | filter: { 272 | player1: "Giocatore 1", 273 | player2: "Giocatore 2", 274 | older_than: "Prima del %{year}", 275 | newer_than: "%{year} - presente", 276 | black_won: "Nero vince", 277 | white_won: "Bianco vince", 278 | black_half: "N + 0.5", 279 | white_half: "B + 0.5", 280 | black_res: "N + Res", 281 | white_res: "B + Res", 282 | jigo: "Jigo" 283 | } 284 | }, 285 | } 286 | -------------------------------------------------------------------------------- /i18n/de.hson: -------------------------------------------------------------------------------- 1 | // German(de) localization of ps.waltheri.net 2 | // Localized name: Deutsch 3 | 4 | { 5 | // Top navigation 6 | nav: { 7 | pattern_search: "Pattern Suche", 8 | database: "Datenbank durchschauen", 9 | about: "Über", 10 | facebook: "Facebook Seite" 11 | }, 12 | 13 | // tooltips for blue buttons in top right corner 14 | menu: { 15 | settings: "Einstellungen", 16 | share: "Aktuelle Suche teilen", 17 | help: "Klick hier, wenn du nicht weißt, was zu tun ist", 18 | old: "Alte Version der Pattern Suche", 19 | }, 20 | 21 | // selection group 22 | selection: { 23 | title: "Auswahl:", 24 | full: "Ganzes Brett", 25 | around: "Lokale Situation", 26 | tooltips: { 27 | full: "Auswahl des gesamten Brettes", 28 | around: "Auswahl von lokalen Situationen" 29 | } 30 | }, 31 | 32 | // filter (search in) group 33 | filter: { 34 | title: "Suche in:", 35 | all: "Allen Spielen", 36 | modern: "Modernen Spielen", 37 | new: "Neuen Spielen", 38 | tooltips: { 39 | button: "Suche in", 40 | all: "Suche in der gesamten Datenbank", 41 | modern: "Alle Spiele seit dem Jahr 2000", 42 | new: "Spiele, die nicht älter als ein Jahr sind" 43 | } 44 | }, 45 | 46 | // big blue control buttons 47 | control: { 48 | title: "Suchkontrolle:", 49 | clear: "Zurücksetzen", 50 | undo: "Zurück", 51 | redo: "Vor", 52 | search_w: "Such W", 53 | search_b: "Such S", 54 | tooltips: { 55 | clear: "Die Position zurücksetzen", 56 | undo: "Schritt zurück", 57 | redo: "Schritt vor", 58 | search_w: "Finde die Fortsetzung für Weiß", 59 | search_b: "Finde die Fortsetzung für Schwarz", 60 | auto: "Automatische Suche", 61 | stop: "Suche beenden" 62 | } 63 | }, 64 | 65 | // continuation block 66 | continuations: { 67 | title: "Gefundene Fortsetzungen", 68 | caption: "%{games} Pro-Spiele in %{time} Sek. durchschucht", 69 | games: "Anzahl der Spiele", 70 | winrate: "Gewinnquote" 71 | }, 72 | 73 | // matching games block 74 | games: { 75 | title: "Passende Spiele", 76 | caption: "Zeige %{smart_count} Ergebnis von %{games} Spiel |||| Zeige %{smart_count} Ergebnisse von %{games} Spielen", 77 | year: "Jahr", 78 | tip: "Wähle eines der aufgelisteten Spiele, um es anzuzeigen", 79 | black: "Schwarz", 80 | white: "Weiß", 81 | back: "Zurück zur Suche" 82 | }, 83 | 84 | // statistics block 85 | statistics: { 86 | title: "Statistiken zur Position", 87 | caption: "Erweiterte Statistiken zur aktuellen Position", 88 | probability: "Gewinnwahrscheinlichkeit", 89 | popularity: "Popularität", 90 | black_wins: "In dieser Position konnte schwarz %{count} Spiel gewinnen, |||| In dieser Position konnte schwarz %{count} Spiele gewinnen,", // this string and the 'statistics.white_wins' string are rendered in row (divided by space) 91 | white_wins: "Weiß gewann %{count} Spiel. |||| Weiß gewann %{count} Spiele.", 92 | popularity_desc: "Diese Grafik zeigt die Popularität dieser Position im Verlauf der Jahre.", 93 | lost: "Verlorene Spiele", 94 | won: "Gewonnene Spiele", 95 | unknown: "Unbekanntes Ergebnis", 96 | games: "Gespiele Spiele", 97 | popularity_na: "Suche erneut, um eine neue Grafik zu erzeugen. |||| Suche erneut ±%{smart_count} mal, um eine neue Grafik zu erzeugen." 98 | }, 99 | 100 | // kifu player and info 101 | player: { 102 | title: "Replay the game", 103 | edit_mode: "Bearbeiten Modus", 104 | score_mode: "Zähle Modus", 105 | coordinates: "Koordinaten an-/ausschalten", 106 | about: "Über diesen Viewer", 107 | about_desc: "Dieser SGF / Go-Kifu Viewer basiert auf der WGo.js Library. Diese lässt sich auch einfach in deine Webseite integrieren.", // write some pretty advert for me in your language :-) 108 | game_info: "Spielinformationen", 109 | date: "Datum", 110 | event: "Veranstaltung", 111 | komi: "Komi", 112 | result: "Ergebnis", 113 | score_help: "Klicke auf die Steine, um sie als tot oder lebendig zu markieren. You can also set and unset territory points by clicking on them. Territories must be completely bordered.", 114 | share: "Teilen", 115 | pernament_link: "Dauerhafter Link", 116 | share_twitter_text: "Schau dir dieses Spiel zwischen %{black} und %{white} an!", 117 | download: "SGF runterladen", 118 | tooltips: { 119 | first: "Erster Zug", 120 | previous: "Vorheriger Zug", 121 | move_number: "Aktueller Zug / Spring zum Zug", 122 | next: "Nächster Zug", 123 | last: "Letzter Zug", 124 | menu: "Menü" 125 | }, 126 | }, 127 | 128 | // settings modal dialog 129 | settings: { 130 | title: "Einstellungen", 131 | board: "Brett:", 132 | coordinates: "Zeige Brett Koordinaten", 133 | plots: "Grafiken:", 134 | continuation_plot: "Zeigte Fortsetzungsgrafik", 135 | language: "Sprache:", 136 | language_auto: "Automatisch", 137 | other: "Sonstige:", 138 | sound: "Spiele einen Sound, wenn ein Stein plaziert wird", 139 | litemode: "Lite Modus", 140 | litemode_desc: "(für bessere Leistung)", 141 | save: "Änderungen speichern" 142 | }, 143 | 144 | // share modal dialog 145 | share: { 146 | title: "Aktuelle Suche teilen", 147 | text: "Position on Waltheri's go pattern search", 148 | link: "Link zu der Suche:", 149 | html: "HTML:", 150 | social: "Auf sozialen Seiten teilen:", 151 | facebook: "Auf Facebook teilen", 152 | twitter: "Auf Twitter teilen", 153 | twitter_text: "Schau dir diese Position an!", 154 | copy_confirm: "Kopiert!", 155 | error: "Es gab einen Fehler, teilen ist zur Zeit nicht möglich!" 156 | }, 157 | 158 | // help popovers 159 | help: { 160 | selection: { 161 | title: 'Wähle einen Auswahl-Modus', 162 | content: 'Du hast drei Optionen. Der Komplettes Brett Button zeigt dir das ganze Brett an, so dass jedes Feld und jeder Stein auf dem Brett zählen. Umgebende Steine wählt nur die Steine in einem ausgewählten Bereich aus. Dies ist nützlich, wenn du ein Joseki nachschlagen möchtest. Die drite Option ist die manuelle Auswahl - du kannst jede Stelle von Brett aussuchen die du möchtest, klicke einfach auf die Stelle und ziehe mit der Maus über den Bereich der dich interessiert..' 163 | }, 164 | filter: { 165 | title: 'Specify search', 166 | content: 'Du kannst die Suchergebnisse auf Spiele eines bestimmten Alters einschränken. Wenn du Moderne Spiele auswählst, wird die Position nur in Pro-Spielen aus dem 21. Jahrhundert durchsucht. Die OptionNeue Spiele schränkt die Suchergebnisse weiter ein.' 167 | }, 168 | board: { 169 | title: 'Position vorbereiten', 170 | content: 'Durch klicken auf das Brett kannst du die Spielsituation aufbauen, die du haben möchtest. Nach jedem klicken sucht die Pattern Suche die gleiche Position in professionellen Go-Partien. Du kannst auch die Shift- (bzw. STRG) Taste während des klicken gedrückt halten um schwarze (bzw. weiße) Steine zu setzen.' 171 | }, 172 | continuations: { 173 | title: 'Finde Fortsetzung', 174 | content: 'In dieser Tabelle siehst du eine Liste von Fortsetzungen, die in Profi-Spielen gespielt wurden. Du findest auch einige Statistiken und Gewinnrate für den erfolgreichsten Zug.' 175 | }, 176 | games: { 177 | title: 'Passende Spiele', 178 | content: '

In dieser Tabelle findest du eine Liste von Spielen, die die aktuelle Position enthalten. Klicke darauf, um die Position in dem Spiel zu sehen. Dann kann du die Partie auf dem kleinen Brett nachspielen, indem du das Mausrad benutzt oder auf dem großen Brett nachspielen, nachdem du es durch einen klick auf as kleine Brett geöffnet hast. Aus Leistungsgründen werden maximal 50 Spiele angezeigt.

Klicke nun auf %{icon} in der rechten oberen Ecke.

' 179 | }, 180 | statistics: { 181 | title: 'Statistiken', 182 | content: '

In dieser Spalte siehst du einige Statistiken zur aktuellen Position.

Klicke auf %{icon} in der oberen rechten Ecke.

' 183 | }, 184 | games_button: { 185 | title: 'Passende Spiele', 186 | content: 'Klicke den Button, um passende Spiele anzuzeigen. Du kannst diese auch nachspielen.' 187 | }, 188 | control: { 189 | title: "Kontrolle", 190 | clear: "Brett leeren (Alle vorherigen Suchen gehen dadurch verloren)", 191 | undo: "Schritt zurück (Zurücknehmen)", 192 | redo: "Schritt vor (Wiederholen)", 193 | search_w: "Finde die Fortsetzung für Weiß (und passende Spiele)", 194 | search_b: "Finde die Fortsetzung für Schwarz", 195 | auto: "Aktiviere/Deaktiviere die automatische Suche. Wenn angehakt, beginnt die Suche automatisch nach jedem Zug. Bitte diese Option abwählen, wenn du deine Variationen auf dem Brett ausprobierst." 196 | }, 197 | share: { 198 | title: 'Teile deine Suche', 199 | content: 'Wenn du auf diesen Button klickst, wird deine Suche gespeichert und du kannst diese mit deinen Freunden auf Facebook, Twitter oder was auch immer die Kids heute nutzen teilen.' 200 | }, 201 | fb_like: { 202 | title: 'Like it', 203 | content: 'Wenn dir Waltheri\'s Go Pattern Suche gefällt, würde ich mich freuen, wenn du uns auf Facebook folgst und es mit deinen Freunden teilst.', 204 | } 205 | }, 206 | 207 | // error messages 208 | errors: { 209 | timeout: { 210 | title: "Verdammt! Suche konnte nicht abgeschlossen werden (Timeout)", 211 | text: "Der Server steht unter großer Belastung. Versuch es gleich nochmal." 212 | }, 213 | offline: { 214 | title: "Verdammt! Suche fehlgeschlagen", 215 | text: "Du scheinst offline zu sein. Check deine Internetverbindung und versuchs nochmal." 216 | }, 217 | other: { 218 | title: "Verdammt! Suche fehlgeschlagen", 219 | text: "Es gibt möglicherweise einen Fehler auf Seiten des Servers. Sollte der Fehler jedoch häufiger auftauchen, oder nur in der aktuellen Position, dann sende und eine Nachricht an diese Email-Adresse: thebestgoplayer@gmail.com." 220 | }, 221 | javascript: { 222 | title: "Verdammt! Fehler in der Applikation", 223 | text: "

Wenn du uns helfen möchtest den Fehler zu finden, sende uns Informationen wie es zum Fehler kommen konnte mit der folgenden Nachricht an diese Email-Adresse: thebestgoplayer@gmail.com.

%{stack}
" 224 | } 225 | }, 226 | 227 | plots: { 228 | error: "Grafik konnte nicht geladen werden", 229 | loading: "Lade coole Grafik..." 230 | }, 231 | 232 | // general stuff used on multiple places 233 | general: { 234 | close: "Schließen", 235 | na: "nicht verfügbar", 236 | back: "Zurück", 237 | next: "Weiter" 238 | }, 239 | 240 | // database section 241 | db: { 242 | sections: { 243 | recent: "Kürzlich hinzugefügt", 244 | players: "Nach Spielern durchsuchen", 245 | advanced: "Erweiterte Suche" 246 | }, 247 | game_list: { 248 | title: "Spiele", 249 | count: "(%{count} game) |||| (%{count} games)", 250 | load_more: "Weitere Spiele Laden", 251 | list_view: "Listenansicht", 252 | tile_view: "Kachelansicht", 253 | table_view: "Tabellenansicht", 254 | recent: "Kürzlich hinzugefügt", 255 | advanced: "Erweiterte Suche", 256 | replay_game: "Spiel nachspielen", 257 | download_sgf: "Spiel als SGF runterladen" 258 | }, 259 | player_info: { 260 | na: "Zur Zeit wissen wir nichts über %{player}. Lern wie du Infos hinzufügen kannst.", 261 | loading: "Infos werden geladen", 262 | origin: "Dieser Text kommt von %{name}. Dort findest du weitere Informationen und kannst sie bearbeiten." 263 | }, 264 | browser: { 265 | more_between: "Mehr Spiele zwischen %{player1} und %{player2}", 266 | more: "Mehr Spiele von %{player}" 267 | }, 268 | players: { 269 | title: "Liste der Spieler " 270 | }, 271 | filter: { 272 | player1: "Spieler 1", 273 | player2: "Spieler 2", 274 | older_than: "Älter als %{year}", 275 | newer_than: "%{year} bis heute", 276 | black_won: "Schwarz hat gewonnen", 277 | white_won: "Weiß hat gewonnen", 278 | black_half: "S + 0.5", 279 | white_half: "W + 0.5", 280 | black_res: "S + Res", 281 | white_res: "W + Res", 282 | jigo: "Jigo" 283 | } 284 | }, 285 | } 286 | -------------------------------------------------------------------------------- /i18n/fr.hson: -------------------------------------------------------------------------------- 1 | // French(fr) localization of ps.waltheri.net 2 | // Localized name: French 3 | 4 | { 5 | // Top navigation 6 | nav: { 7 | pattern_search: "Chercher une position", 8 | database: "Parcourir la base de données", 9 | about: "A propos", 10 | facebook: "Page Facebook" 11 | }, 12 | 13 | // tooltips for blue buttons in top right corner 14 | menu: { 15 | settings: "Paramètres", 16 | share: "Partager la recherche actuelle", 17 | help: "Cliquez ici si vous ne savez pas quoi faire", 18 | old: "Ancienne versionne de la recherche de séquence", 19 | }, 20 | 21 | // selection group 22 | selection: { 23 | title: "Sélection:", 24 | full: "Global", 25 | around: " Local", 26 | tooltips: { 27 | full: " Sélection sur le plateau entier", 28 | around: "Sélection locale aux pierres jouées" 29 | } 30 | }, 31 | 32 | // filter (search in) group 33 | filter: { 34 | title: "Chercher dans :", 35 | all: "Toutes les parties", 36 | modern: "Parties modernes", 37 | new: "Parties récentes", 38 | tooltips: { 39 | button: "Parties où chercher", 40 | all: "Base de données complète", 41 | modern: "Parties jouées depuis l'année 2000", 42 | new: "Parties jouées il y a moins d'un an" 43 | } 44 | }, 45 | 46 | // big blue control buttons 47 | control: { 48 | title: "Contrôles de la recherche :", 49 | clear: "Effacer", 50 | undo: "Annuler", 51 | redo: "Refaire", 52 | search_w: "Chercher B", 53 | search_b: "Chercher N", 54 | tooltips: { 55 | clear: "Effacer la position", 56 | undo: "Annuler le dernier coup", 57 | redo: "Rejouer le coup", 58 | search_w: "Trouver les continuations pour blanc", 59 | search_b: "Trouver les continuations pour noir", 60 | auto: "Recherche automatique", 61 | stop: "Arrêter la recherche" 62 | } 63 | }, 64 | 65 | // continuation block 66 | continuations: { 67 | title: "Continuations trouvées", 68 | caption: "%{games} parties de pro trouvées en %{time} s", 69 | games: "Nombre de parties", 70 | winrate: "Taux de victoire" 71 | }, 72 | 73 | // matching games block 74 | games: { 75 | title: "Parties similaires", 76 | caption: "Affiche %{smart_count} occurrence issue de %{games} partie |||| Affiche %{smart_count} occurrences issues de %{games} parties", 77 | year: "Année", 78 | tip: "Sélectionner une partie ci-dessus pour la regarder.", 79 | black: "Noir", 80 | white: "Blanc", 81 | back: "Retour à la recherche" 82 | }, 83 | 84 | // statistics block 85 | statistics: { 86 | title: "Statistiques de la position", 87 | caption: " Statistiques avancées pour la position actuelle", 88 | probability: "Probabilité de victoire", 89 | popularity: "Popularité", 90 | black_wins: "Dans cette position, noir a réussi à gagner %{count} partie, |||| Dans cette position, noir a réussi à gagner %{count} parties,", // this string and the 'statistics.white_wins' string are rendered in row (divided by space) 91 | white_wins: "blanc a gagné %{count} partie. |||| blanc a gagné %{count} parties.", 92 | popularity_desc: "Ce graphique présente la popularité de cette position selon les années.", 93 | lost: "Victoires", 94 | won: "Défaites", 95 | unknown: "Résultat inconnu", 96 | games: "Parties jouées", 97 | popularity_na: "Rechercher une nouvelle fois pour charger le graphique. |||| Rechercher ±%{smart_count} fois de plus pour charger le graphique." 98 | }, 99 | 100 | // kifu player and info 101 | player: { 102 | title: "Rejouer la partie", 103 | edit_mode: "Mode d'édition", 104 | score_mode: "Mode de score", 105 | coordinates: "Activer les coordonnées", 106 | about: "A propos de ce lecteur", 107 | about_desc: "Ce lecteur de sgf/kifu est basé sur la bibliothèque WGo.js. Elle est facile à utiliser et vous pouvez l'intégrer à votre site web. Même que c'est elle la meilleure !", // write some pretty advert for me in your language :-) 108 | game_info: "Informations de la partie", 109 | date: "Date", 110 | event: "Événement", 111 | komi: "Komi", 112 | result: "Résultat", 113 | score_help: "Cliquer sur les pierres pour les marquer comme vivantes ou mortes. Vous pouvez aussi définir ou non les points de territoire en cliquant dessus. Les territoires doivent être entièrement délimités.", 114 | share: "Partager", 115 | pernament_link: "Lien permanent", 116 | share_twitter_text: "Jetez un oeil à cette partie entre %{black} et %{white} !", 117 | download: "Télécharger le SGF", 118 | tooltips: { 119 | first: "Premier coup", 120 | previous: "Coup précédent", 121 | move_number: "Numéro du coup / Aller au coup", 122 | next: "Prochain coup", 123 | last: "Dernier coup", 124 | menu: "Menu" 125 | }, 126 | }, 127 | 128 | // settings modal dialog 129 | settings: { 130 | title: "Paramètres", 131 | board: "Plateau :", 132 | coordinates: "Afficher les coordonnées du plateau", 133 | plots: "Graphiques :", 134 | continuation_plot: "Afficher le graphique des continuations", 135 | language: "Langue :", 136 | language_auto: "Détecter automatiquement", 137 | other: "Autre :", 138 | sound: "Jouer un son quand un coup est joué", 139 | litemode: "Mode Lite", 140 | litemode_desc: "(pour de meilleures performances)", 141 | save: "Sauvegarder les changements" 142 | }, 143 | 144 | // share modal dialog 145 | share: { 146 | title: "Partager la recherche actuelle", 147 | text: "Position sur l'outil de recherche Waltheri de positions de go", // traduction pourrie 148 | link: "Lien de la recherche :", 149 | html: "HTML :", 150 | social: "Partager sur les réseaux sociaux :", 151 | facebook: "Partager sur Facebook", 152 | twitter: "Partager sur Twitter", 153 | twitter_text: "Jetez un oeil à cette position !", 154 | copy_confirm: "Copié !", 155 | error: "Une erreur est survenue, le service de partage ne fonctionne plus pour le moment." 156 | }, 157 | 158 | // help popovers 159 | help: { 160 | selection: { 161 | title: 'Choisir le mode de sélection', 162 | content: 'Vous avez trois options. Le bouton Global sélectionne le plateau entier, et toute pierre sur le plateau est prise en compte. Le bouton Local sélectionne la zone locale aux pierres. Très pratique pour chercher des joseki. La troisième option est une sélection manuelle - vous pouvez sélectionner la partie du plateau qui vous intéresse, cliquez simplement sur le plateau et glissez le curseur.' 163 | }, 164 | filter: { 165 | title: 'Précisez la recherche', 166 | content: 'Vous pouvez restreindre votre recherche à des parties récentes. Si vous sélectionnez Parties modernes, une position sera seulement cherchée dans les parties de pro jouées depuis 21e siècle. L\'option Parties récentes réduit encore le champ de recherche à 1 an.' 167 | }, 168 | board: { 169 | title: 'Choisir la position', 170 | content: 'En cliquant sur le plateau, vous pouvez choisir la position souhaitée. Après chaque clic, l\'outil de recherche trouvera toutes les occurrences de la position parmi les parties de pro. Vous pouvez aussi maintenir la touche shift (ou ctrl) en cliquant pour placer directement une pierre noire (ou blanche).' 171 | }, 172 | continuations: { 173 | title: 'Continuations trouvées', 174 | content: 'Dans ce tableau, vous pouvez voir une liste des continuations jouées en parties professionnelles. Vous pouvez aussi voir quelques statistiques, plus le taux de victoire est élevé plus le coup a de succès.' 175 | }, 176 | games: { 177 | title: 'Parties similaires', 178 | content: '

Dans ce tableau, vous pouvez voir une liste des parties contenant la position cherchée. Cliquez sur l\'une d\'elle pour voir votre position dans la partie. Vous pouvez alors la rejouer sur le petit plateau en utilisant la roulette de la souris, ou sur un grand plateau qui s\'ouvrira après avoir tapoté le petit plateau. Pour des raisons de performance, il n\'y a que 50 parties au maximum.

Essayez maintenant de cliquer sur %{icon} en haut à droite.

' 179 | }, 180 | statistics: { 181 | title: 'Statistiques', 182 | content: '

Dans cette colonne, vous pouvez voir plusieurs statistiques pour la position actuelle.

Essayez maintenant de cliquer sur %{icon} en haut à droite.

' 183 | }, 184 | games_button: { 185 | title: 'Parties similaires', 186 | content: 'Cliquez sur ce bouton pour voir les parties similaires. Vous pourrez aussi les rejouer.' 187 | }, 188 | control: { 189 | title: "Boutons de contrôle", 190 | clear: "Nettoyer le plateau (toutes les recherches précédentes sur perdues)", 191 | undo: "Revenir à recherche précédente (annuler)", 192 | redo: "Aller à la recherche suivante (refaire)", 193 | search_w: "Trouver les continuations de blanc (et les parties similaires)", 194 | search_b: "Trouver les continuations de noir", 195 | auto: "Activer/désactiver la recherche automatique. Si coché, la recherche démarrera automatiquement après chaque coup. Décochez cette option si vous souhaitez simplement essayer votre variation sur le plateau." 196 | }, 197 | share: { 198 | title: 'Partager la recherche', 199 | content: 'En cliquant sur ce bouton, votre recherche est sauvegardée et vous pourrez la partager avec vos amis sur Facebook, Twitter et tout autre réseau social de djeunz.' 200 | }, 201 | fb_like: { 202 | title: 'Aimer', 203 | content: 'Si vous aimez l\'outil de recherche Waltheri de positions de go, ça me ferait plaisir si vous l\'aimiez sur Facebook et le partagiez avec vos amis.', 204 | } 205 | }, 206 | 207 | // error messages 208 | errors: { 209 | timeout: { 210 | title: "oh crévindieu ! La recherche a atteint la limite de temps.", 211 | text: "On dirait que le serveur a beaucoup de travail. Essayez à nouveau dans quelques instants." 212 | }, 213 | offline: { 214 | title: "Oh cornegidouille ! La recherche a échoué.", 215 | text: "On dirait que vous êtes hors ligne. Vérifiez votre connexion internet et réessayez." 216 | }, 217 | other: { 218 | title: "Oh saperlipopette ! La recherche a échoué.", 219 | text: "Il y a sûrement une erreur temporaire côté serveur. Cependant si ce message continue à s'afficher, ou ne s'affiche que pour la position actuelle, merci d'envoyer un message à cette adresse e-mail : thebestgoplayer@gmail.com." 220 | }, 221 | javascript: { 222 | title: "Oh ventre-saint-gris ! Une erreur s'est produite dans l'application.", 223 | text: "

Si vous souhaitez aider à la résoudre, merci d'envoyer des précisions sur la façon dont elle s'est produite ainsi que le message suivant à cette adresse e-mail : thebestgoplayer@gmail.com.

%{stack}
" 224 | } 225 | }, 226 | 227 | plots: { 228 | error: "Le graphique n'a pas pu se charger.", 229 | loading: "Chargement du graphique de la mort qui tue..." 230 | }, 231 | 232 | // general stuff used on multiple places 233 | general: { 234 | close: "Fermer", 235 | na: "indisponible", 236 | back: "Retour", 237 | next: "Suivant" 238 | }, 239 | 240 | // database section 241 | db: { 242 | sections: { 243 | recent: "Ajouté récemment", 244 | players: "Parcourir par joueur", 245 | advanced: "Recherche avancée" 246 | }, 247 | game_list: { 248 | title: "Parties", 249 | count: "(%{count} partie) |||| (%{count} parties)", 250 | load_more: "Charger plus de parties", 251 | list_view: "Vue liste", 252 | tile_view: "Vue tuiles", 253 | table_view: "Vue tableau", 254 | recent: "Parties récentes", 255 | advanced: "Recherche avancée", 256 | replay_game: "Rejouer la partie", 257 | download_sgf: "Télécharger la partie en SGF" 258 | }, 259 | player_info: { 260 | na: "Nous ne savons actuellement rien à propos de %{player}. Apprenez comment ajouter des infos.", 261 | loading: "Chargement des infos...", 262 | origin: "Ce texte provient de %{name}. Vous pourrez y trouver plus d'informations ou le modifier." 263 | }, 264 | browser: { 265 | more_between: "Plus de parties entre %{player1} et %{player2}", 266 | more: "Plus de parties de %{player}" 267 | }, 268 | players: { 269 | title: "Liste des joueurs" 270 | }, 271 | filter: { 272 | player1: "Joueur 1", 273 | player2: "Joueur 2", 274 | older_than: "Plus vieux que %{year}", 275 | newer_than: "%{year} - présent", 276 | black_won: "Noir a gagné", 277 | white_won: "Blanc a gagné", 278 | black_half: "N + 0.5", 279 | white_half: "B + 0.5", 280 | black_res: "N + Res", 281 | white_res: "B + Res", 282 | jigo: "Jigo" 283 | } 284 | }, 285 | } 286 | --------------------------------------------------------------------------------