Skip to content

Instantly share code, notes, and snippets.

@tateisu

tateisu/main.kt Secret

Last active August 21, 2023 22:22
Show Gist options
  • Save tateisu/78e15108c4a12c1399e9364169c78d7c to your computer and use it in GitHub Desktop.
Save tateisu/78e15108c4a12c1399e9364169c78d7c to your computer and use it in GitHub Desktop.
javaLocales: af, agq, ak, am, ar, as, asa, ast, az, bas, be, bem, bez, bg, bm, bn, bo, br, brx, bs, ca, ccp, ce, ceb, cgg, chr, ckb, cs, cy, da, dav, de, dje, doi, dsb, dua, dyo, dz, ebu, ee, el, en, eo, es, et, eu, ewo, fa, ff, fi, fil, fo, fr, fur, fy, ga, gd, gl, gsw, gu, guz, gv, ha, haw, he, hi, hr, hsb, hu, hy, ia, id, ig, ii, is, it, ja, jgo, jmc, jv, ka, kab, kam, kde, kea, kgp, khq, ki, kk, kkj, kl, kln, km, kn, ko, kok, ks, ksb, ksf, ksh, ku, kw, ky, lag, lb, lg, lkt, ln, lo, lrc, lt, lu, luo, luy, lv, mai, mas, mer, mfe, mg, mgh, mgo, mi, mk, ml, mn, mni, mr, ms, mt, mua, my, mzn, naq, nb, nd, nds, ne, nl, nmg, nn, nnh, no, nus, nyn, om, or, os, pa, pcm, pl, ps, pt, qu, rm, rn, ro, rof, ru, rw, rwk, sa, sah, saq, sat, sbp, sc, sd, se, seh, ses, sg, shi, si, sk, sl, smn, sn, so, sq, sr, su, sv, sw, ta, te, teo, tg, th, ti, tk, to, tr, tt, twq, tzm, ug, uk, ur, uz, vai, vi, vun, wae, wo, xh, xog, yav, yi, yo, yrl, yue, zgh, zh, zu
mastodonLanguages: aa, ab, ae, af, ak, am, an, ar, as, ast, av, ay, az, ba, be, bg, bh, bi, bm, bn, bo, br, bs, ca, ce, ch, ckb, cnr, co, cr, cs, cu, cv, cy, da, de, dv, dz, ee, el, en, eo, es, et, eu, fa, ff, fi, fj, fo, fr, fy, ga, gd, gl, gu, gv, ha, he, hi, ho, hr, ht, hu, hy, hz, ia, id, ie, ig, ii, ik, io, is, it, iu, ja, jbo, jv, ka, kab, kg, ki, kj, kk, kl, km, kmr, kn, ko, kr, ks, ku, kv, kw, ky, la, lb, ldn, lfn, lg, li, ln, lo, lt, lu, lv, mg, mh, mi, mk, ml, mn, mr, ms, mt, my, na, nb, nd, ne, ng, nl, nn, no, nr, nv, ny, oc, oj, om, or, os, pa, pi, pl, ps, pt, qu, rm, rn, ro, ru, rw, sa, sc, sco, sd, se, sg, si, sk, sl, sma, smj, sn, so, sq, sr, ss, st, su, sv, sw, szl, ta, te, tg, th, ti, tk, tl, tn, to, tok, tr, ts, tt, tw, ty, ug, uk, ur, uz, ve, vi, vo, wa, wo, xh, yi, yo, za, zba, zgh, zh, zh-CN, zh-HK, zh-TW, zh-YUE, zu
only in mastodonLanguages:
- aa(Afar)
- ab(Abkhaz)
- ae(Avestan)
- an(Aragonese)
- av(Avaric)
- ay(Aymara)
- ba(Bashkir)
- bh(Bihari)
- bi(Bislama)
- ch(Chamorro)
- cnr(Montenegrin)
- co(Corsican)
- cr(Cree)
- cu(Old Church Slavonic)
- cv(Chuvash)
- dv(Divehi)
- fj(Fijian)
- ho(Hiri Motu)
- ht(Haitian)
- hz(Herero)
- ie(Interlingue)
- ik(Inupiaq)
- io(Ido)
- iu(Inuktitut)
- jbo(Lojban)
- kg(Kongo)
- kj(Kwanyama)
- kmr(Kurmanji (Kurdish))
- kr(Kanuri)
- kv(Komi)
- la(Latin)
- ldn(Láadan)
- lfn(Lingua Franca Nova)
- li(Limburgish)
- mh(Marshallese)
- na(Nauru)
- ng(Ndonga)
- nr(Southern Ndebele)
- nv(Navajo)
- ny(Chichewa)
- oc(Occitan)
- oj(Ojibwe)
- pi(Pāli)
- sco(Scots)
- sma(Southern Sami)
- smj(Lule Sami)
- ss(Swati)
- st(Southern Sotho)
- szl(Silesian)
- tl(Tagalog)
- tn(Tswana)
- tok(Toki Pona)
- ts(Tsonga)
- tw(Twi)
- ty(Tahitian)
- ve(Venda)
- vo(Volapük)
- wa(Walloon)
- za(Zhuang)
- zba(Balaibalan)
- zh-CN(Chinese (China))
- zh-HK(Chinese (Hong Kong))
- zh-TW(Chinese (Taiwan))
- zh-YUE(Cantonese)
only in javaLocales:
- agq(アゲム語)
- asa(アス語)
- bas(バサ語)
- bem(ベンバ語)
- bez(ベナ語)
- brx(ボド語)
- ccp(チャクマ語)
- ceb(セブアノ語)
- cgg(チガ語)
- chr(チェロキー語)
- dav(タイタ語)
- dje(ザルマ語)
- doi(ドーグリー語)
- dsb(低地ソルブ語)
- dua(ドゥアラ語)
- dyo(ジョラ=フォニィ語)
- ebu(エンブ語)
- ewo(エウォンド語)
- fil(フィリピノ語)
- fur(フリウリ語)
- gsw(スイスドイツ語)
- guz(グシイ語)
- haw(ハワイ語)
- hsb(高地ソルブ語)
- jgo(ンゴンバ語)
- jmc(マチャメ語)
- kam(カンバ語)
- kde(マコンデ語)
- kea(カーボベルデ・クレオール語)
- kgp(カインガング語)
- khq(コイラ・チーニ語)
- kkj(カコ語)
- kln(カレンジン語)
- kok(コンカニ語)
- ksb(サンバー語)
- ksf(バフィア語)
- ksh(ケルン語)
- lag(ランギ語)
- lkt(ラコタ語)
- lrc(北ロル語)
- luo(ルオ語)
- luy(ルヒヤ語)
- mai(マイティリー語)
- mas(マサイ語)
- mer(メル語)
- mfe(モーリシャス・クレオール語)
- mgh(マクア・ミート語)
- mgo(メタ語)
- mni(マニプリ語)
- mua(ムンダン語)
- mzn(マーザンダラーン語)
- naq(ナマ語)
- nds(低地ドイツ語)
- nmg(クワシオ語)
- nnh(ンジエムブーン語)
- nus(ヌエル語)
- nyn(ニャンコレ語)
- pcm(ナイジェリア・ピジン語)
- rof(ロンボ語)
- rwk(ルワ語)
- sah(サハ語)
- saq(サンブル語)
- sat(サンターリー語)
- sbp(サング語)
- seh(セナ語)
- ses(コイラボロ・センニ語)
- shi(タシルハイト語)
- smn(イナリ・サーミ語)
- teo(テソ語)
- twq(タサワク語)
- tzm(中央アトラス・タマジクト語)
- vai(ヴァイ語)
- vun(ヴンジョ語)
- wae(ヴァリス語)
- xog(ソガ語)
- yav(ヤンベン語)
- yrl(ニェエンガトゥ語)
- yue(広東語)
both:
- af(Afrikaans, アフリカーンス語)
- ak(Akan, アカン語)
- am(Amharic, アムハラ語)
- ar(Arabic, アラビア語)
- as(Assamese, アッサム語)
- ast(Asturian, アストゥリアス語)
- az(Azerbaijani, アゼルバイジャン語)
- be(Belarusian, ベラルーシ語)
- bg(Bulgarian, ブルガリア語)
- bm(Bambara, バンバラ語)
- bn(Bengali, ベンガル語)
- bo(Tibetan, チベット語)
- br(Breton, ブルトン語)
- bs(Bosnian, ボスニア語)
- ca(Catalan, カタロニア語)
- ce(Chechen, チェチェン語)
- ckb(Sorani (Kurdish), 中央クルド語)
- cs(Czech, チェコ語)
- cy(Welsh, ウェールズ語)
- da(Danish, デンマーク語)
- de(German, ドイツ語)
- dz(Dzongkha, ゾンカ語)
- ee(Ewe, エウェ語)
- el(Greek, ギリシャ語)
- en(English, 英語)
- eo(Esperanto, エスペラント語)
- es(Spanish, スペイン語)
- et(Estonian, エストニア語)
- eu(Basque, バスク語)
- fa(Persian, ペルシア語)
- ff(Fula, フラ語)
- fi(Finnish, フィンランド語)
- fo(Faroese, フェロー語)
- fr(French, フランス語)
- fy(Western Frisian, 西フリジア語)
- ga(Irish, アイルランド語)
- gd(Scottish Gaelic, スコットランド・ゲール語)
- gl(Galician, ガリシア語)
- gu(Gujarati, グジャラート語)
- gv(Manx, マン島語)
- ha(Hausa, ハウサ語)
- he(Hebrew, ヘブライ語)
- hi(Hindi, ヒンディー語)
- hr(Croatian, クロアチア語)
- hu(Hungarian, ハンガリー語)
- hy(Armenian, アルメニア語)
- ia(Interlingua, インターリングア)
- id(Indonesian, インドネシア語)
- ig(Igbo, イボ語)
- ii(Nuosu, 四川イ語)
- is(Icelandic, アイスランド語)
- it(Italian, イタリア語)
- ja(Japanese, 日本語)
- jv(Javanese, ジャワ語)
- ka(Georgian, ジョージア語)
- kab(Kabyle, カビル語)
- ki(Kikuyu, キクユ語)
- kk(Kazakh, カザフ語)
- kl(Kalaallisut, グリーンランド語)
- km(Khmer, クメール語)
- kn(Kannada, カンナダ語)
- ko(Korean, 韓国語)
- ks(Kashmiri, カシミール語)
- ku(Kurmanji (Kurdish), クルド語)
- kw(Cornish, コーンウォール語)
- ky(Kyrgyz, キルギス語)
- lb(Luxembourgish, ルクセンブルク語)
- lg(Ganda, ガンダ語)
- ln(Lingala, リンガラ語)
- lo(Lao, ラオ語)
- lt(Lithuanian, リトアニア語)
- lu(Luba-Katanga, ルバ・カタンガ語)
- lv(Latvian, ラトビア語)
- mg(Malagasy, マダガスカル語)
- mi(Māori, マオリ語)
- mk(Macedonian, マケドニア語)
- ml(Malayalam, マラヤーラム語)
- mn(Mongolian, モンゴル語)
- mr(Marathi, マラーティー語)
- ms(Malay, マレー語)
- mt(Maltese, マルタ語)
- my(Burmese, ミャンマー語)
- nb(Norwegian Bokmål, ノルウェー語(ブークモール))
- nd(Northern Ndebele, 北ンデベレ語)
- ne(Nepali, ネパール語)
- nl(Dutch, オランダ語)
- nn(Norwegian Nynorsk, ノルウェー語(ニーノシュク))
- no(Norwegian, ノルウェー語)
- om(Oromo, オロモ語)
- or(Oriya, オディア語)
- os(Ossetian, オセット語)
- pa(Panjabi, パンジャブ語)
- pl(Polish, ポーランド語)
- ps(Pashto, パシュトゥー語)
- pt(Portuguese, ポルトガル語)
- qu(Quechua, ケチュア語)
- rm(Romansh, ロマンシュ語)
- rn(Kirundi, ルンディ語)
- ro(Romanian, ルーマニア語)
- ru(Russian, ロシア語)
- rw(Kinyarwanda, キニアルワンダ語)
- sa(Sanskrit, サンスクリット語)
- sc(Sardinian, サルデーニャ語)
- sd(Sindhi, シンド語)
- se(Northern Sami, 北サーミ語)
- sg(Sango, サンゴ語)
- si(Sinhala, シンハラ語)
- sk(Slovak, スロバキア語)
- sl(Slovenian, スロベニア語)
- sn(Shona, ショナ語)
- so(Somali, ソマリ語)
- sq(Albanian, アルバニア語)
- sr(Serbian, セルビア語)
- su(Sundanese, スンダ語)
- sv(Swedish, スウェーデン語)
- sw(Swahili, スワヒリ語)
- ta(Tamil, タミル語)
- te(Telugu, テルグ語)
- tg(Tajik, タジク語)
- th(Thai, タイ語)
- ti(Tigrinya, ティグリニア語)
- tk(Turkmen, トルクメン語)
- to(Tonga, トンガ語)
- tr(Turkish, トルコ語)
- tt(Tatar, タタール語)
- ug(Uyghur, ウイグル語)
- uk(Ukrainian, ウクライナ語)
- ur(Urdu, ウルドゥー語)
- uz(Uzbek, ウズベク語)
- vi(Vietnamese, ベトナム語)
- wo(Wolof, ウォロフ語)
- xh(Xhosa, コサ語)
- yi(Yiddish, イディッシュ語)
- yo(Yoruba, ヨルバ語)
- zgh(Standard Moroccan Tamazight, 標準モロッコ タマジクト語)
- zh(Chinese, 中国語)
- zu(Zulu, ズールー語)
Process finished with exit code 0
import util.decodeJsonArray
import java.io.File
import java.util.*
fun getJavaLocales() =
Locale.getAvailableLocales().mapNotNull { locale ->
locale.language.takeIf { it.isNotEmpty() }
?.let { code -> Pair(code, locale.displayLanguage) }
}.toMap()
fun getMastodonLocales() =
File("mastodonLanguages.json")
.readText(Charsets.UTF_8)
.decodeJsonArray()
.objectList().associate {
it.string("code")!! to it.string("name")!!
}
fun main() {
val mastodonLanguages = getMastodonLocales()
val javaLocales = getJavaLocales()
println("javaLocales: " + javaLocales.keys.sorted().joinToString(", "))
println("mastodonLanguages: " + mastodonLanguages.keys.sorted().joinToString(", "))
println("only in mastodonLanguages: ")
mastodonLanguages.entries.filter {
!javaLocales.contains(it.key)
}.map { "${it.key}(${it.value})" }
.sorted()
.forEach { println("- $it") }
println("only in javaLocales: ")
javaLocales.entries.filter {
!mastodonLanguages.contains(it.key)
}.map { "${it.key}(${it.value})" }
.sorted()
.forEach { println("- $it") }
println("both:")
(mastodonLanguages.keys + javaLocales.keys)
.toSet()
.filter {
mastodonLanguages.contains(it) &&
javaLocales.contains(it)
}
.map { "${it}(${mastodonLanguages[it]}, ${javaLocales[it]})" }
.sorted()
.forEach { println("- $it") }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment