├── .cloudflare └── setup-pages-env.sh ├── .gitattributes ├── .github └── workflows │ ├── main.yml │ ├── npm.yml │ ├── pyo3.yml │ ├── pyo3.yml.deprecated │ ├── release.yml │ └── worker.yml ├── .gitignore ├── Cargo.toml ├── LICENSE ├── README.md ├── benches ├── 25328-0.txt ├── LICENSE.md ├── data3185k.txt ├── data54k.txt ├── data689k.txt ├── wikitext.txt └── zhconv_benchmark.rs ├── build.rs ├── data ├── HKVariants.txt ├── HKVariantsRevPhrases.txt ├── README.md ├── STCharacters.txt ├── STPhrases.txt ├── TSCharacters.txt ├── TSPhrases.txt ├── TWPhrasesIT.txt ├── TWPhrasesName.txt ├── TWPhrasesOther.txt ├── TWVariants.txt ├── TWVariantsRevPhrases.txt ├── ZhConversion.php ├── cgroups │ ├── 1D.json │ ├── 2014年世界杯决赛.json │ ├── 2016年太平洋颱風季.json │ ├── 2017年太平洋颱風季.json │ ├── 2018年太平洋颱風季.json │ ├── 2019年太平洋颱風季.json │ ├── 2020年太平洋颱風季.json │ ├── 2021年太平洋颱風季.json │ ├── 2022年太平洋颱風季.json │ ├── 2023年太平洋颱風季.json │ ├── 2024年太平洋颱風季.json │ ├── 24.json │ ├── A Pink.json │ ├── A Song of Ice and Fire.json │ ├── AC Milan.json │ ├── ACmilan.json │ ├── ALeague.json │ ├── AT Places.json │ ├── AU Places.json │ ├── Adventure Time.json │ ├── Aero.json │ ├── Aikatsu.json │ ├── Anime.json │ ├── Apink.json │ ├── Apple.json │ ├── Aquarion.json │ ├── Aquatics.json │ ├── Ariana Grande.json │ ├── Arsenal footballer.json │ ├── Artist.json │ ├── Astronomy.json │ ├── Avatar.json │ ├── Avril Lavigne.json │ ├── BE Places.json │ ├── BLEACH.json │ ├── BR Places.json │ ├── BUDDYCOMPLEX.json │ ├── Badminton.json │ ├── Bakuman.json │ ├── Battle Spirits.json │ ├── Bird.json │ ├── BirdG.json │ ├── BirdP.json │ ├── Black Mirror.json │ ├── BlueArchive.json │ ├── Bridge.json │ ├── Britney Spears.json │ ├── Bundesliga.json │ ├── Butterfly.json │ ├── C&C.json │ ├── CA Places.json │ ├── CANAAN.json │ ├── CH Places.json │ ├── CL Places.json │ ├── COD.json │ ├── CWBTyphoonOld.json │ ├── Canada.json │ ├── Cards.json │ ├── Carnivorous Plant.json │ ├── Cartoon.json │ ├── Chanel.json │ ├── Charlie Chaplin.json │ ├── Chelseafc.json │ ├── Chemistry.json │ ├── Civil Law.json │ ├── Code Black.json │ ├── Code Geass.json │ ├── CodeLyoko.json │ ├── Coldplay.json │ ├── Communication.json │ ├── Composer.json │ ├── Copyright.json │ ├── Counter-Strike.json │ ├── County.json │ ├── Crayon Shin-chan.json │ ├── Crazyracing Kartrider.json │ ├── Criminal Law.json │ ├── Cyber Formula.json │ ├── Cyberpunk.json │ ├── Cyclone.json │ ├── DCComics.json │ ├── DE Places.json │ ├── Danball Senki.json │ ├── Dance.json │ ├── Death Note.json │ ├── Diablo.json │ ├── Die Weiße Rose.json │ ├── Digimon.json │ ├── Disney.json │ ├── Doctor Who.json │ ├── Doraemon.json │ ├── DragonBall.json │ ├── DreamWorks.json │ ├── Dune.json │ ├── ED.json │ ├── EPL.json │ ├── EU.json │ ├── Earthquake.json │ ├── Ecology.json │ ├── Economics.json │ ├── Electronics.json │ ├── Entertainer.json │ ├── Esports.json │ ├── Eyeshield21.json │ ├── F1.json │ ├── FAcup.json │ ├── FC Barcelona footballer.json │ ├── FC Bayern footballer.json │ ├── FR Places.json │ ├── Family Guy.json │ ├── Firearms.json │ ├── Food.json │ ├── Football.json │ ├── Friends.json │ ├── Frieren.json │ ├── Fringe.json │ ├── Frozen.json │ ├── Fujiko Fujio.json │ ├── FullmetalAlchemist.json │ ├── Futurama.json │ ├── GBF.json │ ├── GGundam.json │ ├── GOSICK.json │ ├── GZFC.json │ ├── Games-zh.json │ ├── Games.json │ ├── GaoGaiGar.json │ ├── Geography.json │ ├── Getter Robo.json │ ├── Ghibli.json │ ├── Glee.json │ ├── GossipGirl.json │ ├── Guangzhou FC footballer.json │ ├── Guardians of Ga'Hoole.json │ ├── Gundam00.json │ ├── GundamAGE.json │ ├── GundamIBO.json │ ├── GundamSeed.json │ ├── GundamTWFM.json │ ├── GundamUC.json │ ├── GundamW.json │ ├── GundamX.json │ ├── HTGAWM.json │ ├── HUNTER.json │ ├── Half-Life.json │ ├── Hannibal Lecter.json │ ├── HarryPotter.json │ ├── Hawaii Five-0.json │ ├── Hayate the Combat Butler.json │ ├── Heroes of the Storm.json │ ├── House.json │ ├── IE Places.json │ ├── IMF.json │ ├── IN Movie.json │ ├── IN Places.json │ ├── IR Places.json │ ├── IT Places.json │ ├── IT.json │ ├── JLeague.json │ ├── JP Show.json │ ├── James Bond.json │ ├── Jewelpet.json │ ├── Justin Bieber.json │ ├── KLeague.json │ ├── KO Movie.json │ ├── KO Show.json │ ├── KO TV Show.json │ ├── KamenRider.json │ ├── Kao.json │ ├── Katy Perry.json │ ├── Korea Comparison.json │ ├── Korea.json │ ├── Korean.json │ ├── LEGO.json │ ├── LOL.json │ ├── LR.json │ ├── La casa de papel.json │ ├── Lady Gaga.json │ ├── Lana Del Rey.json │ ├── Laos.json │ ├── Leeds United.json │ ├── Legend of the Guardians.json │ ├── Les Misérables.json │ ├── Lifesciences.json │ ├── Linguistics.json │ ├── Linkin.json │ ├── Lorde.json │ ├── LuaIT.json │ ├── LuaMovie.json │ ├── LuaShow.json │ ├── MA.json │ ├── MCD.json │ ├── MCFC.json │ ├── MLS.json │ ├── MUFC.json │ ├── MY.json │ ├── Mabinogi.json │ ├── Mahjong.json │ ├── MapleStory.json │ ├── Mariah Carey.json │ ├── MarvelNetflix.json │ ├── Math.json │ ├── Mazinger.json │ ├── McDonald's.json │ ├── MediaWiki special.json │ ├── MediaWiki.json │ ├── Medicine.json │ ├── Michael Jackson.json │ ├── MigTest.json │ ├── Might&Magic.json │ ├── Military.json │ ├── Minecraft.json │ ├── Movie.json │ ├── Music.json │ ├── My Little Pony.json │ ├── MyHeroAcademia.json │ ├── NARUTO.json │ ├── NBA.json │ ├── NFL.json │ ├── NHL.json │ ├── NL Places.json │ ├── NWSL.json │ ├── Nintendo.json │ ├── Nobel Prize.json │ ├── OnePiece.json │ ├── Organization.json │ ├── OshinoKo.json │ ├── Overwatch.json │ ├── P&G.json │ ├── PHL Places.json │ ├── People.json │ ├── PeppaPig.json │ ├── Percy Jackson.json │ ├── PerryClass.json │ ├── Pesticide.json │ ├── Philosophy.json │ ├── Photography.json │ ├── Physics.json │ ├── Pichi Pichi Pitch.json │ ├── Pinnacle Islands.json │ ├── Pixar.json │ ├── Pokemon-old.json │ ├── Pokemon.json │ ├── PoliticiansPT.json │ ├── PoliticiansUK.json │ ├── Popes.json │ ├── Power Rangers.json │ ├── PresidentsUS.json │ ├── Pretty Rhythm.json │ ├── PrisonBreak.json │ ├── Psychiatry.json │ ├── Psychology.json │ ├── Racing.json │ ├── Railway.json │ ├── RainbowSixSiege.json │ ├── Reborn.json │ ├── ResidentEvil.json │ ├── Rihanna.json │ ├── SAO.json │ ├── SARS-CoV-2 variant.json │ ├── SEGA.json │ ├── SNSD.json │ ├── SPL.json │ ├── SPY×FAMILY.json │ ├── Sailor Moon.json │ ├── Saint Seiya The Lost Canvas.json │ ├── SaintSeiyaOmega.json │ ├── Sandbox.json │ ├── Selena Gomez.json │ ├── Shinkalion.json │ ├── Shipname.json │ ├── Show.json │ ├── Shugo Chara!.json │ ├── Sia.json │ ├── Signals and Systems.json │ ├── Signpost.json │ ├── Sim.json │ ├── Simpsons.json │ ├── Snooker.json │ ├── Solo Leveling.json │ ├── SouthPark.json │ ├── SpongeBob SquarePants.json │ ├── Sports.json │ ├── Square Enix.json │ ├── StarCraft.json │ ├── StarCraft2.json │ ├── StarTrek.json │ ├── StarWars.json │ ├── StephenKing.json │ ├── Stranger Things.json │ ├── Summon Night.json │ ├── TCM.json │ ├── TH Movie.json │ ├── TLeague.json │ ├── TV.json │ ├── Table Tennis.json │ ├── Tales.json │ ├── Tamagotchi.json │ ├── Taylor Swift.json │ ├── Telcom.json │ ├── Tennis.json │ ├── TfL.json │ ├── The Chainsmokers.json │ ├── The Promised Neverland.json │ ├── The Witcher.json │ ├── The World God Only Knows.json │ ├── TheBeatles.json │ ├── ThePeanuts.json │ ├── Toaru.json │ ├── Transformers.json │ ├── Transport for London.json │ ├── Transport.json │ ├── TropicalCycloneName.json │ ├── Tunisia.json │ ├── Twilight.json │ ├── TyphoonNew.json │ ├── TyphoonOld.json │ ├── UA toponyms.json │ ├── UK Places.json │ ├── US CA Cities.json │ ├── US Government.json │ ├── US Senators.json │ ├── USState.json │ ├── Ultraman.json │ ├── Unilever.json │ ├── Unit.json │ ├── Urban.json │ ├── VLeague.json │ ├── Valkyria.json │ ├── WORKING!!.json │ ├── Warcraft.json │ ├── Warhammer.json │ ├── Warriors.json │ ├── Watch.json │ ├── Weather.json │ ├── Windows.json │ ├── Wow.json │ ├── Yes! 光之美少女5.json │ ├── ZH Show.json │ ├── arsenal.json │ ├── check1.py │ ├── chelsea.json │ ├── fcbarcelona.json │ ├── fcbayern.json │ ├── free license.json │ ├── inter.json │ ├── laliga.json │ ├── leek.json │ ├── ligue.json │ ├── liverpoolfc.json │ ├── loghorizon.json │ ├── magi.json │ ├── neo-noir.json │ ├── regalia.json │ ├── rugby.json │ ├── sandbox.json │ ├── specialpages.json │ ├── uefa.json │ ├── vital.json │ ├── Élite.json │ ├── 一拳超人.json │ ├── 伊拉克足球.json │ ├── 伊斯蘭.json │ ├── 伊朗足球.json │ ├── 佛教.json │ ├── 俄超.json │ ├── 俱乐部足球联赛.json │ ├── 列斯聯.json │ ├── 加超聯.json │ ├── 南美球會.json │ ├── 南美足球队.json │ ├── 博弈论.json │ ├── 卡塔尔星级足球联赛.json │ ├── 叙利亚职业足球联赛.json │ ├── 名偵探柯南.json │ ├── 咕嚕咕嚕魔法陣.json │ ├── 咲-Saki-.json │ ├── 單雙書名號轉換.json │ ├── 四驅兄弟.json │ ├── 圍棋.json │ ├── 地名.json │ ├── 声临其境.json │ ├── 妖怪手錶.json │ ├── 姓氏.json │ ├── 娛樂.json │ ├── 小魔女DoReMi.json │ ├── 州邦.json │ ├── 巴勒斯坦职业足球联赛.json │ ├── 巴林职业足球联赛.json │ ├── 幸福爆發!光之美少女.json │ ├── 意甲.json │ ├── 愛天使傳說.json │ ├── 戰鬥陀螺 鋼鐵奇兵.json │ ├── 打工吧!魔王大人.json │ ├── 排球.json │ ├── 政治人物.json │ ├── 文學.json │ ├── 斯洛伐克足球.json │ ├── 星光樂園.json │ ├── 暗影诗章 (动画).json │ ├── 村上春樹.json │ ├── 核能.json │ ├── 機獸系列.json │ ├── 民族.json │ ├── 沙特职业足球联赛.json │ ├── 泰國人名.json │ ├── 泰國人名及地名.json │ ├── 涼宮春日的憂鬱.json │ ├── 潘朵拉之心.json │ ├── 烏茲別克足球會.json │ ├── 爆丸.json │ ├── 电影术语.json │ ├── 畜牧.json │ ├── 當個創世神.json │ ├── 百變小櫻.json │ ├── 科威特职业足球联赛.json │ ├── 童話槍手小紅帽.json │ ├── 约旦职业足球联赛.json │ ├── 美国漫画.json │ ├── 艾维里奥斯.json │ ├── 荷蘭足球聯賽.json │ ├── 菁英殺機.json │ ├── 葡超.json │ ├── 蠟筆小新.json │ ├── 语言与语音.json │ ├── 足球俱乐部.json │ ├── 通靈王.json │ ├── 進擊的巨人.json │ ├── 釣魚臺列嶼.json │ ├── 閃電十一人.json │ ├── 開闊天空!光之美少女.json │ ├── 闇.json │ ├── 阿曼职业足球联赛.json │ ├── 阿联酋职业足球联赛.json │ ├── 降世神通.json │ ├── 音樂劇.json │ ├── 驅魔少年.json │ ├── 马来人名地名.json │ ├── 鬥陣特攻.json │ ├── 魔法咪路咪路.json │ ├── 黎巴嫩职业足球联赛.json │ ├── 黑執事.json │ └── 黑塔系列.json ├── merge_cgroups_for_web.py ├── poetry.lock ├── pyproject.toml ├── update_basic.py └── update_cgroups.py ├── pyo3 ├── .gitignore ├── Cargo.toml ├── pyproject.toml ├── src │ └── lib.rs └── zhconv_rs.pyi ├── src ├── converter.rs ├── converters.rs ├── lib.rs ├── main.rs ├── pagerules.rs ├── rule.rs ├── tables.rs ├── utils.rs ├── variant.rs └── wasm.rs ├── typst ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── example.typ ├── src │ └── lib.rs ├── typst.toml └── zhconv.typ ├── web ├── .gitignore ├── README.md ├── config-overrides.js ├── package.json ├── public │ ├── cgroups.json │ ├── index.html │ ├── logo.ico │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── src │ ├── App.css │ ├── App.test.tsx │ ├── App.tsx │ ├── components │ │ ├── AboutDialog.tsx │ │ ├── CGroupCheckbox.tsx │ │ ├── CGroupSelect.tsx │ │ ├── ConvertButton.tsx │ │ ├── Footer.tsx │ │ ├── Header.tsx │ │ ├── InputEditor.tsx │ │ ├── OptionsControl.tsx │ │ ├── OutputEditor.tsx │ │ ├── OutputStatusLine.tsx │ │ └── editorCommon.tsx │ ├── index.css │ ├── index.tsx │ ├── logo.svg │ ├── react-app-env.d.ts │ ├── reportWebVitals.ts │ ├── setupTests.ts │ └── utils.ts ├── tsconfig.json └── yarn.lock └── worker ├── .gitignore ├── Cargo.toml ├── doc.txt ├── src ├── lib.rs └── utils.rs └── wrangler.toml /.cloudflare/setup-pages-env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -eu 3 | npm install --global yarn || true 4 | 5 | curl -o rustup.sh https://sh.rustup.rs 6 | chmod +x rustup.sh 7 | ./rustup.sh -y --default-toolchain 1.81.0 # blocked by https://github.com/rustwasm/wasm-bindgen/issues/4211 8 | 9 | . $HOME/.cargo/env 10 | curl -o wasm-init.sh https://rustwasm.github.io/wasm-pack/installer/init.sh 11 | chmod +x wasm-init.sh 12 | ./wasm-init.sh 13 | 14 | cd web/ 15 | yarn install 16 | yarn build 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Exclude external ruleset files from GitHub PL stats 2 | # ref: https://stackoverflow.com/questions/19052834/is-it-possible-to-exclude-files-from-git-language-statistics 3 | # And prevent auto CRLF conversion to avoid checksum mismatch 4 | data/ZhConversion.php linguist-vendored binary 5 | data/*.txt linguist-vendored binary 6 | data/cgroups/*.json linguist-vendored 7 | web/public/cgroups.json linguist-vendored 8 | benches/*.txt linguist-vendored 9 | -------------------------------------------------------------------------------- /.github/workflows/npm.yml: -------------------------------------------------------------------------------- 1 | name: NPM 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | - uses: actions-rs/toolchain@v1 13 | with: 14 | toolchain: stable 15 | - name: Install wasm-pack 16 | run: | 17 | curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh 18 | - name: Build pkg 19 | run: | 20 | wasm-pack build --release -d pkg-bundler && wasm-pack build --release -d pkg-web -t web 21 | - name: Upload pkg 22 | uses: actions/upload-artifact@v4 23 | with: 24 | name: pkgs 25 | path: | 26 | pkg-bundler 27 | pkg-web 28 | 29 | release: 30 | name: Release 31 | environment: npm 32 | runs-on: ubuntu-latest 33 | if: "startsWith(github.ref, 'refs/tags/')" 34 | needs: [ build ] 35 | steps: 36 | - uses: actions/setup-node@v3 37 | with: 38 | node-version: 16 39 | - uses: actions/download-artifact@v4 40 | with: 41 | name: pkgs 42 | - name: Set NPM token 43 | env: 44 | NPM_API_TOKEN: ${{ secrets.NPM_API_TOKEN }} 45 | run: | 46 | npm config set //registry.npmjs.org/:_authToken="${NPM_API_TOKEN}" 47 | - name: Publish zhconv 48 | run: | 49 | cd pkg-bundler 50 | jq '. |= . + {"keywords": ["wasm", "chinese", "simplified chinese", "traditional chinese", "language", "webpack", "l10n"]}' package.json | \ 51 | jq '.description = "🦀 Trad/Simp Chinese and regional variants converter backed by MediaWiki and OpenCC rulesets 轉換中文简繁體及地區詞,基於MediaWiki和OpenCC之轉換表 (powered by Rust/WASM 驅動)"' \ 52 | > new-package.json 53 | mv new-package.json package.json 54 | npm publish 55 | - name: Publish zhconv-web 56 | run: | 57 | cd pkg-web 58 | jq '. |= . + {"keywords": ["wasm", "chinese", "simplified chinese", "traditional chinese", "language", "browser", "l10n"]}' package.json | \ 59 | jq '.description = "The alternative version of zhconv that can be imported as an ES module in a browser straightfoward"' | \ 60 | jq '.name = "zhconv-web"' \ 61 | > new-package.json 62 | mv new-package.json package.json 63 | echo -e "# Check [zhconv](https://www.npmjs.com/package/zhconv) for more info\n\nThe package shares the same codebase with zhconv. But it can be imported as an ES module in a browser straightfoward without bundlers like Webpack." > README.md 64 | npm publish 65 | -------------------------------------------------------------------------------- /.github/workflows/worker.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Worker 2 | on: 3 | push: 4 | pull_request: 5 | repository_dispatch: 6 | jobs: 7 | deploy: 8 | runs-on: ubuntu-latest 9 | # For Workers Deployment fork only 10 | if: github.repository != 'Gowee/zhconv-rs' 11 | timeout-minutes: 60 12 | steps: 13 | # - run: echo '${{ toJSON(github.event) }}' | jq . 14 | - uses: actions/checkout@v2 15 | - name: Activate OpenCC Dicts 16 | run: sed -i 's/default = \[/\0"opencc"/' worker/Cargo.toml 17 | - name: Disable other workflows in Workers fork 18 | if: github.run_number == 1 && github.event_name == 'repository_dispatch' && github.event.repository.fork == true 19 | env: 20 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | run: | 22 | flows=$(gh workflow list --json 'name,id' --jq '.[] | select(.name != "${{ github.workflow }}") | .id') 23 | echo "Workflows to disable: $flows" 24 | for flow in $flows; do 25 | gh workflow disable $flow 26 | done 27 | # runs=$(gh run list --json 'databaseId' --jq '.[] | select(.databaseId != ${{ github.run_id }}) | .databaseId') 28 | # echo "Runs to cancel: $runs" 29 | # for run in $runs; do 30 | # gh run cancel $run 31 | # done 32 | - name: Build & Deploy Worker 33 | uses: cloudflare/wrangler-action@v3 34 | with: 35 | apiToken: ${{ secrets.CF_API_TOKEN }} 36 | accountId: ${{ secrets.CF_ACCOUNT_ID }} 37 | workingDirectory: worker 38 | 39 | # Note: 40 | # To activate authentication, set the `API_TOKEN` secret, via the CF dashboard or `wrangler secret put API_TOKEN`. 41 | # To change the 2MiB default request body limit, set the `BODY_LIMIT` envvar, via the dashboard or wrangler.toml. 42 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /Cargo.lock 3 | -------------------------------------------------------------------------------- /benches/LICENSE.md: -------------------------------------------------------------------------------- 1 | # License 2 | 3 | All data here are for test purposes only. They are not a part of the zhconv-rs project and not covered by the license of the project. Check their byline for sources / authors / licenses. 4 | -------------------------------------------------------------------------------- /data/HKVariants.txt: -------------------------------------------------------------------------------- 1 | 僞 偽 2 | 兌 兑 3 | 叄 叁 4 | 只 只 衹 5 | 啓 啓 啟 6 | 喫 吃 7 | 囪 囱 8 | 妝 妝 粧 9 | 媼 媪 10 | 嬀 媯 11 | 悅 悦 12 | 慍 愠 13 | 戶 户 14 | 挩 捝 15 | 搵 揾 16 | 擡 抬 17 | 敓 敚 18 | 敘 敍 敘 19 | 柺 枴 20 | 梲 棁 21 | 棱 稜 棱 22 | 榲 榅 23 | 檯 枱 24 | 氳 氲 25 | 涗 涚 26 | 溫 温 27 | 溼 濕 28 | 潙 溈 29 | 潨 潀 30 | 熅 煴 31 | 爲 為 32 | 癡 痴 33 | 皁 皂 34 | 祕 秘 35 | 稅 税 36 | 竈 灶 37 | 糉 粽 糉 糭 38 | 縕 緼 39 | 纔 才 40 | 脣 唇 41 | 脫 脱 42 | 膃 腽 43 | 臥 卧 44 | 臺 台 45 | 菸 煙 46 | 蒕 蒀 47 | 蔥 葱 48 | 蔿 蒍 49 | 蘊 藴 50 | 蛻 蜕 51 | 衆 眾 52 | 衛 衞 53 | 覈 核 54 | 說 説 55 | 踊 踴 56 | 轀 輼 57 | 醞 醖 58 | 鉢 缽 59 | 鉤 鈎 60 | 銳 鋭 61 | 鍼 針 62 | 閱 閲 63 | 鰮 鰛 64 | -------------------------------------------------------------------------------- /data/HKVariantsRevPhrases.txt: -------------------------------------------------------------------------------- 1 | 一口吃個 一口喫個 2 | 一口吃成 一口喫成 3 | 一家三口 一家三口 4 | 一家五口 一家五口 5 | 一家六口 一家六口 6 | 一家四口 一家四口 7 | 七星巖 七星巖 8 | 世胄 世胄 9 | 介胄 介冑 10 | 傅巖 傅巖 11 | 免胄 免冑 12 | 冠胄 冠冑 13 | 千巖競秀 千巖競秀 14 | 千巖萬壑 千巖萬壑 15 | 千巖萬谷 千巖萬谷 16 | 口吃 口吃 17 | 台山 台山 18 | 台州 台州 19 | 台州地區 台州地區 20 | 台州市 台州市 21 | 吃口 喫口 吃口 22 | 吃口令 吃口令 23 | 吃口飯 喫口飯 24 | 吃吃 喫喫 吃吃 25 | 吃子 喫子 吃子 26 | 名胄 名胄 27 | 國胄 國胄 28 | 圍巖 圍巖 29 | 地胄 地胄 30 | 壓胄子 壓冑子 31 | 士胄 士胄 32 | 大巖桐 大巖桐 33 | 天台女 天台女 34 | 天台宗 天台宗 35 | 天台山 天台山 36 | 天台縣 天台縣 37 | 天潢貴胄 天潢貴胄 38 | 奇巖 奇巖 39 | 寶胄 寶胄 40 | 小巖洞 小巖洞 41 | 岫巖縣 岫巖縣 42 | 峯巖 峯巖 43 | 嵌巖 嵌巖 44 | 巉巖 巉巖 45 | 巖壁 巖壁 46 | 巖居 巖居 47 | 巖居穴處 巖居穴處 48 | 巖居谷飲 巖居谷飲 49 | 巖岸 巖岸 50 | 巖巉 巖巉 51 | 巖巖 巖巖 52 | 巖徼 巖徼 53 | 巖手縣 巖手縣 54 | 巖村 巖村 55 | 巖洞 巖洞 56 | 巖流圈 巖流圈 57 | 巖牆 巖牆 58 | 巖牆之下 巖牆之下 59 | 巖畫 巖畫 60 | 巖穴 巖穴 61 | 巖穴之士 巖穴之士 62 | 巖薔薇 巖薔薇 63 | 巖邑 巖邑 64 | 巖郎 巖郎 65 | 巖阻 巖阻 66 | 巖陛 巖陛 67 | 帝胄 帝胄 68 | 幽巖 幽巖 69 | 幽棲巖谷 幽棲巖谷 70 | 張口 張口 71 | 懸巖 懸巖 72 | 懸巖峭壁 懸巖峭壁 73 | 懸胄 懸冑 74 | 攀巖 攀巖 75 | 支胄 支胄 76 | 教胄 教胄 77 | 景胄 景胄 78 | 望胄 望胄 79 | 末胄 末胄 80 | 村胄 村胄 81 | 枕巖漱流 枕巖漱流 82 | 枝胄 枝胄 83 | 氏胄 氏胄 84 | 洪胄 洪胄 85 | 浙江天台縣 浙江天台縣 86 | 清胄 清胄 87 | 灰巖殘丘 灰巖殘丘 88 | 玄胄 玄胄 89 | 甲胄 甲冑 90 | 甲胄魚類 甲冑魚類 91 | 皇胄 皇胄 92 | 石灰巖洞 石灰巖洞 93 | 神胄 神胄 94 | 簪纓世胄 簪纓世胄 95 | 系胄 系胄 96 | 紅巖 紅巖 97 | 絕巖 絕巖 98 | 緒胄 緒胄 99 | 纂胄 纂胄 100 | 胃口 胃口 101 | 胄嗣 胄嗣 102 | 胄子 胄子 103 | 胄序 胄序 104 | 胄族 胄族 105 | 胄甲 冑甲 106 | 胄監 胄監 107 | 胄科 冑科 108 | 胄緒 胄緒 109 | 胄胤 胄胤 110 | 胄裔 胄裔 111 | 胄裔繁衍 胄裔繁衍 112 | 胄閥 胄閥 113 | 胡雪巖 胡雪巖 114 | 胤胄 胤胄 115 | 苗胄 苗胄 116 | 英胄 英胄 117 | 華胄 華胄 118 | 血胄 血胄 119 | 裔胄 裔胄 120 | 訓胄 訓胄 121 | 試胄 試胄 122 | 豪門貴胄 豪門貴胄 123 | 貝胄 貝冑 124 | 貴胄 貴胄 125 | 賢胄 賢胄 126 | 蹇吃 蹇吃 127 | 躬擐甲胄 躬擐甲冑 128 | 遐胄 遐胄 129 | 遙胄 遙胄 130 | 遙遙華胄 遙遙華胄 131 | 遠胄 遠胄 132 | 遺胄 遺胄 133 | 鄧艾吃 鄧艾吃 134 | 重巖疊嶂 重巖疊嶂 135 | 金胄 金胄 136 | 鎧胄 鎧冑 137 | 鑿巖 鑿巖 138 | 門胄 門胄 139 | 開口 開口 140 | 雲巖區 雲巖區 141 | 非層巖 非層巖 142 | 韓侂胄 韓侂冑 143 | 飮胄 飮冑 144 | 骨巖巖 骨巖巖 145 | 高胄 高胄 146 | 魚胄 魚冑 147 | 鮮胄 鮮胄 148 | 鴻胄 鴻胄 149 | 黃巖區 黃巖區 150 | 黃巖島 黃巖島 151 | 黃炎貴胄 黃炎貴胄 152 | 齒胄 齒胄 153 | 龍巖 龍巖 154 | 龍巖市 龍巖市 155 | 龍巖村 龍巖村 156 | 龍胄 龍胄 157 | -------------------------------------------------------------------------------- /data/README.md: -------------------------------------------------------------------------------- 1 | # Dataset 2 | 3 | ## Files 4 | 5 | - `zhConversion.php` is fetched and used by `build.rs` to generate built-in conversion tables for the lib. ([source](https://github.com/wikimedia/mediawiki/blob/master/includes/languages/data/ZhConversion.php)) 6 | 7 | - `cgroup_extractor.py` pulls and formats CGroups (common conversion groups) from Chinese Wikipedia into `cgroups/`. ([source](https://zh.wikipedia.org/w/index.php?search=CGroup&title=Special:%E6%90%9C%E7%B4%A2&profile=advanced&fulltext=1&ns10=1&ns828=1)) 8 | 9 | - `cgroups/merge_for_web.py` combines `cgroups/*.json` into a monolithic `cgroups.json` to be placed in `:/web/public/cgroups.json`, which is included in the web app. The libs and the cli are not referencing CGroups for now. 10 | 11 | ## Licenses 12 | Dataset are neither maintained nor licensed by zhconv-rs. Instead, they are licensed in upstream projects. Check their sources for licenses. 13 | -------------------------------------------------------------------------------- /data/TWPhrasesName.txt: -------------------------------------------------------------------------------- 1 | 乍得 查德 2 | 也門 葉門 3 | 仙童半導體 快捷半導體 4 | 伯利茲 貝里斯 5 | 佛得角 維德角 6 | 傅里葉 傅立葉 7 | 克羅地亞 克羅埃西亞 8 | 列支敦士登 列支敦斯登 9 | 利比里亞 賴比瑞亞 10 | 加納 迦納 11 | 加蓬 加彭 12 | 博茨瓦納 波札那 13 | 卡塔爾 卡達 14 | 危地馬拉 瓜地馬拉 15 | 厄瓜多爾 厄瓜多 16 | 厄立特里亞 厄利垂亞 17 | 吉布堤 吉布地 18 | 哈薩克斯坦 哈薩克 19 | 哥斯達黎加 哥斯大黎加 20 | 喫茶小舖 喫茶小舖 21 | 圖瓦盧 吐瓦魯 22 | 土庫曼斯坦 土庫曼 23 | 圭亞那 蓋亞那 24 | 坦桑尼亞 坦尚尼亞 25 | 埃塞俄比亞 衣索比亞 26 | 基里巴斯 吉里巴斯 27 | 塔吉克斯坦 塔吉克 28 | 塞拉利昂 獅子山 29 | 塞浦路斯 塞普勒斯 30 | 塞舌爾 塞席爾 31 | 多米尼加 多明尼加 32 | 安提瓜和巴布達 安地卡及巴布達 33 | 尼日利亞 奈及利亞 34 | 尼日爾 尼日 35 | 岡比亞 甘比亞 36 | 巴巴多斯 巴貝多 37 | 巴布亞新幾內亞 巴布亞紐幾內亞 38 | 布基納法索 布吉納法索 39 | 布隆迪 蒲隆地 40 | 帕勞 帛琉 41 | 幾內亞比紹 幾內亞比索 42 | 意大利 義大利 43 | 所羅門羣島 索羅門羣島 44 | 文萊 汶萊 45 | 斯威士蘭 史瓦濟蘭 46 | 斯洛文尼亞 斯洛維尼亞 47 | 新西蘭 紐西蘭 48 | 格林納達 格瑞那達 49 | 格魯吉亞 喬治亞 50 | 歐拉 尤拉 51 | 毛里塔尼亞 茅利塔尼亞 52 | 毛里求斯 模里西斯 53 | 沙特阿拉伯 沙烏地阿拉伯 54 | 波斯尼亞黑塞哥維那 波士尼亞赫塞哥維納 55 | 津巴布韋 辛巴威 56 | 洪都拉斯 宏都拉斯 57 | 溫納圖萬 那杜 58 | 烏茲別克斯坦 烏茲別克 59 | 特立尼達和多巴哥 千里達及托巴哥 60 | 瑙魯 諾魯 61 | 瓦努阿圖 萬那杜 62 | 盧旺達 盧安達 63 | 科摩羅 葛摩 64 | 科特迪瓦 象牙海岸 65 | 突尼斯 突尼西亞 66 | 純喫茶 純喫茶 67 | 索馬里 索馬利亞 68 | 老撾 寮國 69 | 聖基茨和尼維斯 聖克里斯多福及尼維斯 70 | 聖文森特和格林納丁斯 聖文森及格瑞那丁 71 | 聖盧西亞 聖露西亞 72 | 聖馬力諾 聖馬利諾 73 | 肯尼亞 肯亞 74 | 莫桑比克 莫三比克 75 | 萊索托 賴索托 76 | 萬象 永珍 77 | 蘇里南 蘇利南 78 | 貝寧 貝南 79 | 贊比亞 尚比亞 80 | 阿塞拜疆 亞塞拜然 81 | 阿拉伯聯合酋長國 阿拉伯聯合大公國 82 | 香農 夏農 83 | 馬爾代夫 馬爾地夫 84 | 馬里共和國 馬利共和國 85 | -------------------------------------------------------------------------------- /data/TWPhrasesOther.txt: -------------------------------------------------------------------------------- 1 | 借記卡 簽帳金融卡 2 | 元音 母音 3 | 冰棍 冰棒 4 | 出租車 計程車 5 | 咖喱 咖哩 6 | 塑料 塑膠 7 | 奔馳 賓士 8 | 奶酪 乳酪 9 | 字節跳動 字節跳動 10 | 幾率 機率 11 | 摩爾線程 摩爾線程 12 | 方便麪 泡麵 速食麵 13 | 李彥宏 李彥宏 14 | 概率 機率 15 | 海內存知己 海內存知己 16 | 涼菜 冷盤 17 | 的士 計程車 18 | 砹 砈 19 | 硅 矽 20 | 程序不正義 程序不正義 21 | 程序正義 程序正義 22 | 空氣淨化器 空氣清淨機 23 | 納米 奈米 24 | 自行車 腳踏車 25 | 詞組 片語 26 | 蹦極 高空彈跳 27 | 輔音 子音 28 | 通過 透過 通過 29 | 酰 醯 30 | 鈁 鍅 31 | 鈈 鈽 32 | 錇 鉳 33 | 鍀 鎝 34 | 鎄 鑀 35 | 鎇 鋂 36 | 鎿 錼 37 | 鐦 鉲 38 | 鑥 鎦 39 | 黃宏 黃宏 40 | -------------------------------------------------------------------------------- /data/TWVariants.txt: -------------------------------------------------------------------------------- 1 | 僞 偽 2 | 啓 啟 3 | 喫 吃 4 | 嫺 嫻 5 | 嬀 媯 6 | 峯 峰 7 | 幺 么 8 | 擡 抬 9 | 棱 稜 10 | 檐 簷 11 | 污 汙 12 | 泄 洩 13 | 潙 溈 14 | 潨 潀 15 | 爲 為 16 | 牀 床 17 | 痹 痺 18 | 癡 痴 19 | 皁 皂 20 | 着 著 21 | 睾 睪 22 | 祕 秘 23 | 竈 灶 24 | 糉 粽 25 | 繮 韁 26 | 纔 才 27 | 羣 群 28 | 脣 唇 29 | 蔘 參 30 | 蔿 蒍 31 | 衆 眾 32 | 裏 裡 33 | 覈 核 34 | 踊 踴 35 | 鉢 缽 36 | 鍼 針 37 | 鮎 鯰 38 | 麪 麵 39 | 齶 顎 40 | -------------------------------------------------------------------------------- /data/TWVariantsRevPhrases.txt: -------------------------------------------------------------------------------- 1 | 一口吃個 一口喫個 2 | 一口吃成 一口喫成 3 | 一家三口 一家三口 4 | 一家五口 一家五口 5 | 一家六口 一家六口 6 | 一家四口 一家四口 7 | 凶事 凶事 8 | 凶信 凶信 9 | 凶兆 凶兆 10 | 凶吉 凶吉 11 | 凶地 凶地 12 | 凶多吉少 凶多吉少 13 | 凶宅 凶宅 14 | 凶年 凶年 15 | 凶德 凶德 16 | 凶怪 凶怪 17 | 凶日 凶日 18 | 凶服 凶服 19 | 凶歲 凶歲 20 | 凶死 凶死 21 | 凶氣 凶氣 22 | 凶煞 凶煞 23 | 凶燄 凶燄 24 | 凶神 凶神 25 | 凶禮 凶禮 26 | 凶耗 凶耗 27 | 凶肆 凶肆 28 | 凶荒 凶荒 29 | 凶訊 凶訊 30 | 凶豎 凶豎 31 | 凶身 凶身 32 | 凶逆 凶逆 33 | 凶門 凶門 34 | 口吃 口吃 35 | 吃口 喫口 吃口 36 | 吃口令 吃口令 37 | 吃口飯 喫口飯 38 | 吃吃 喫喫 吃吃 39 | 吃子 喫子 吃子 40 | 合著 合著 41 | 吉凶 吉凶 42 | 名著 名著 43 | 四凶 四凶 44 | 大凶 大凶 45 | 巨著 巨著 46 | 張口 張口 47 | 昭著 昭著 48 | 歲凶 歲凶 49 | 胃口 胃口 50 | 著作 著作 51 | 著名 著名 52 | 著式 著式 53 | 著志 著志 54 | 著於 著於 55 | 著書 著書 56 | 著白 著白 57 | 著稱 著稱 58 | 著者 著者 59 | 著述 著述 60 | 著錄 著錄 61 | 蹇吃 蹇吃 62 | 逢凶 逢凶 63 | 避凶 避凶 64 | 鄧艾吃 鄧艾吃 65 | 鉅著 鉅著 66 | 開口 開口 67 | 閔凶 閔凶 68 | 顯著 顯著 69 | -------------------------------------------------------------------------------- /data/cgroups/2023年太平洋颱風季.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "2023年太平洋颱風季", 3 | "description": "2023年太平洋颱風季", 4 | "path": "Template:CGroup/2023年太平洋颱風季", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh:熱帶風暴珊瑚; zh-tw:輕度颱風珊瑚; zh-hk:熱帶風暴珊瑚;zh-cn:热带风暴珊瑚" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh:颱風瑪娃; zh-tw:強烈颱風瑪娃; zh-hk:超強颱風瑪娃;zh-mo:超強颱風瑪娃;zh-cn:超强台风玛娃" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh:颱風古超; zh-tw:中度颱風谷超; zh-hk:颱風古超;zh-mo:颱風古超;zh-cn:台风古超" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh:強烈熱帶風暴泰利; zh-tw:中度颱風泰利; zh-hk:颱風泰利;zh-mo:颱風泰利;zh-cn:台风泰利" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh:颱風杜蘇芮; zh-tw:中度颱風杜蘇芮; zh-hk:超強颱風杜蘇芮;zh-mo:超強颱風杜蘇芮;zh-cn:超强台风杜苏芮" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh:颱風卡努; zh-tw:中度颱風卡努; zh-hk:超強颱風卡努; zh-mo:強颱風卡努;zh-cn:超强台风卡努" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh:颱風蘭恩; zh-tw:中度颱風蘭恩; zh-hk:強颱風蘭恩;zh-cn:超强台风兰恩" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh:颱風多拉; zh-tw:中度颱風朵拉; zh-cn:台风多拉; zh-hk:颱風多拉" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh:颱風蘇拉; zh-tw:強烈颱風蘇拉; zh-cn:超强台风苏拉; zh-hk:超強颱風蘇拉; zh-mo:超強颱風蘇拉" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh:強烈熱帶風暴達維; zh-tw:輕度颱風丹瑞; zh-cn:强热带风暴达维; zh-hk:強烈熱帶風暴達維" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh:颱風海葵; zh-tw:中度颱風海葵; zh-cn:超强台风海葵; zh-hk:颱風海葵; zh-mo:颱風海葵" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh:強烈熱帶風暴鴻雁; zh-tw:輕度颱風鴻雁; zh-cn:强热带风暴鸿雁; zh-hk:熱帶風暴鴻雁" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh:熱帶風暴鴛鴦; zh-tw:輕度颱風鴛鴦; zh-cn:热带风暴鸳鸯; zh-hk:熱帶風暴鴛鴦; zh-mo:熱帶風暴鴛鴦" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh:颱風小犬; zh-tw:中度颱風小犬; zh-cn:超强台风小犬; zh-hk:強颱風小犬; zh-mo:超強颱風小犬" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh:颱風布拉萬; zh-tw:強烈颱風布拉萬; zh-cn:超强台风布拉万; zh-hk:超強颱風布拉萬" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh:熱帶風暴三巴; zh-tw:輕度颱風三巴; zh-cn:强热带风暴三巴; zh-hk:熱帶風暴三巴; zh-mo:熱帶風暴三巴" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh:熱帶風暴杰拉華; zh-tw:輕度颱風鯉魚; zh-cn:热带风暴杰拉华; zh-hk:熱帶風暴杰拉華" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/A Pink.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "A Pink", 3 | "description": "A Pink譯名", 4 | "path": "Template:CGroup/A Pink", 5 | "rules": [ 6 | { 7 | "original": "박초롱", 8 | "conv": "zh-hans:朴初瓏;zh-hant:朴初瓏;zh-cn:朴初瓏;zh-tw:朴初瓏;zh-hk:朴初瓏;zh-sg:朴初瓏;zh-mo:朴初瓏;" 9 | }, 10 | { 11 | "original": "윤보미", 12 | "conv": "zh-hans:尹普美;zh-hant:尹普美;zh-cn:尹普美;zh-tw:尹普美;zh-hk:尹普美;zh-sg:尹普美;zh-mo:尹普美;" 13 | }, 14 | { 15 | "original": "정은지", 16 | "conv": "zh-hans:鄭恩地;zh-hant:鄭恩地;zh-cn:鄭恩地;zh-tw:鄭恩地;zh-hk:鄭恩地;zh-sg:鄭恩地;zh-mo:鄭恩地;" 17 | }, 18 | { 19 | "original": "손나은", 20 | "conv": "zh-hans:孫娜恩;zh-hant:孫娜恩;zh-cn:孫娜恩;zh-tw:孫娜恩;zh-hk:孫娜恩;zh-sg:孫娜恩;zh-mo:孫娜恩;" 21 | }, 22 | { 23 | "original": "홍유경", 24 | "conv": "zh-hans:洪瑜暻;zh-hant:洪瑜暻;zh-cn:洪瑜暻;zh-tw:洪瑜暻;zh-hk:洪瑜暻;zh-sg:洪瑜暻;zh-mo:洪瑜暻;" 25 | }, 26 | { 27 | "original": "김남주", 28 | "conv": "zh-hans:金南珠;zh-hant:金南珠;zh-cn:金南珠;zh-tw:金南珠;zh-hk:金南珠;zh-sg:金南珠;zh-mo:金南珠;" 29 | }, 30 | { 31 | "original": "오하영", 32 | "conv": "zh-hans:吳夏榮;zh-hant:吳夏榮;zh-cn:吳夏榮;zh-tw:吳夏榮;zh-hk:吳夏榮;zh-sg:吳夏榮;zh-mo:吳夏榮;" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /data/cgroups/A Song of Ice and Fire.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "A Song of Ice and Fire", 3 | "description": "冰與火之歌", 4 | "path": "Module:CGroup/A Song of Ice and Fire", 5 | "rules": [ 6 | { 7 | "original": "A Game of Thrones", 8 | "conv": "zh-cn:权力的游戏;zh-tw:權力遊戲;" 9 | }, 10 | { 11 | "original": "A Clash of Kings", 12 | "conv": "zh-cn:列王的纷争;zh-tw:烽火危城;" 13 | }, 14 | { 15 | "original": "A Storm of Swords", 16 | "conv": "zh-cn:冰雨的风暴;zh-tw:劍刃風暴;" 17 | }, 18 | { 19 | "original": "A Feast for Crows", 20 | "conv": "zh-cn:群鸦的盛宴;zh-tw:群鴉盛宴;" 21 | }, 22 | { 23 | "original": "A Dance with Dragons", 24 | "conv": "zh-cn:魔龙的狂舞;zh-tw:與龍共舞;" 25 | }, 26 | { 27 | "original": "The Winds of Winter", 28 | "conv": "zh-cn:凛冬的寒风;zh-tw:寒冬冽風;" 29 | }, 30 | { 31 | "original": "A Dream of Spring", 32 | "conv": "zh-cn:春晓的梦想;zh-tw:春日幻夢;" 33 | }, 34 | { 35 | "original": "A Time for Wolves", 36 | "conv": "zh-cn:奔狼的年代;zh-tw:群狼年代;" 37 | }, 38 | { 39 | "original": "Ygritte", 40 | "conv": "zh-cn:耶哥蕊特;zh-tw:伊格黎;" 41 | }, 42 | { 43 | "original": "Dorne", 44 | "conv": "zh:冬恩;zh-hans:多恩;zh-hant:冬恩;zh-cn:多恩;zh-tw:冬恩;" 45 | }, 46 | { 47 | "original": "George", 48 | "conv": "zh-cn:乔治;zh-tw:喬治;zh-hk:佐治;" 49 | }, 50 | { 51 | "original": "Martin", 52 | "conv": "zh-tw:馬丁;zh-cn:马丁;zh-hk:馬田;" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/Apink.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Apink", 3 | "description": "Apink", 4 | "path": "Module:CGroup/Apink", 5 | "rules": [ 6 | { 7 | "original": "박초롱", 8 | "conv": "zh-hans:朴初珑;zh-hant:朴初瓏;zh-cn:朴初珑;zh-tw:朴初瓏;zh-hk:朴初瓏;zh-sg:朴初珑;zh-mo:朴初瓏;" 9 | }, 10 | { 11 | "original": "윤보미", 12 | "conv": "zh-hans:尹普美;zh-hant:尹普美;zh-cn:尹普美;zh-tw:尹普美;zh-hk:尹普美;zh-sg:尹普美;zh-mo:尹普美;" 13 | }, 14 | { 15 | "original": "정은지", 16 | "conv": "zh-hans:郑恩地;zh-hant:鄭恩地;zh-cn:郑恩地;zh-tw:鄭恩地;zh-hk:鄭恩地;zh-sg:郑恩地;zh-mo:鄭恩地;" 17 | }, 18 | { 19 | "original": "손나은", 20 | "conv": "zh-hans:孫娜恩;zh-hant:孫娜恩;zh-cn:孫娜恩;zh-tw:孫娜恩;zh-hk:孫娜恩;zh-sg:孫娜恩;zh-mo:孫娜恩;" 21 | }, 22 | { 23 | "original": "홍유경", 24 | "conv": "zh-hans:洪瑜暻;zh-hant:洪瑜暻;zh-cn:洪瑜暻;zh-tw:洪瑜暻;zh-hk:洪瑜暻;zh-sg:洪瑜暻;zh-mo:洪瑜暻;" 25 | }, 26 | { 27 | "original": "김남주", 28 | "conv": "zh-hans:金南珠;zh-hant:金南珠;zh-cn:金南珠;zh-tw:金南珠;zh-hk:金南珠;zh-sg:金南珠;zh-mo:金南珠;" 29 | }, 30 | { 31 | "original": "오하영", 32 | "conv": "zh-hans:吴夏荣;zh-hant:吳夏榮;zh-cn:吴夏荣;zh-tw:吳夏榮;zh-hk:吳夏榮;zh-sg:吴夏荣;zh-mo:吳夏榮;" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /data/cgroups/Aquarion.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Aquarion", 3 | "description": "-{zh-hans:创圣的亚库艾里翁; zh-cn:创圣的大天使; zh-hant:創聖的亞庫艾里翁; zh-tw:創聖機械天使; zh-hk:創聖大天使; zh-mo:創聖大天使}-系列", 4 | "path": "Template:CGroup/Aquarion", 5 | "rules": [ 6 | { 7 | "original": "創聖のアクエリオン", 8 | "conv": "zh-hans:创圣的亚库艾里翁; zh-cn:创圣的大天使; zh-hant:創聖的亞庫艾里翁; zh-tw:創聖機械天使; zh-hk:創聖大天使; zh-mo:創聖大天使;" 9 | }, 10 | { 11 | "original": "創星のアクエリオン", 12 | "conv": "zh-hans:创星的亚库艾里翁; zh-cn:创星的大天使; zh-hant:創星的亞庫艾里翁; zh-tw:創星機械天使; zh-hk:創星大天使; zh-mo:創星大天使;" 13 | }, 14 | { 15 | "original": "劇場版アクエリオン", 16 | "conv": "zh-hans:剧场版 机械天使; zh-hant:劇場版 亞庫艾里翁; zh-tw:劇場版 機械天使; zh-hk:劇場版 Aquarion" 17 | }, 18 | { 19 | "original": "アクエリオンEVOL", 20 | "conv": "zh-hans:创圣的亚库艾里翁EVOL; zh-cn:创圣的大天使EVOL; zh-hant:創聖的亞庫艾里翁EVOL; zh-tw:創聖機械天使EVOL; zh-hk:創聖大天使EVOL; zh-mo:創聖大天使EVOL;" 21 | }, 22 | { 23 | "original": "創勢のアクエリオンEVOL", 24 | "conv": "zh-hans:创势的亚库艾里翁EVOL; zh-cn:创势的大天使EVOL; zh-hant:創勢的亞庫艾里翁EVOL; zh-tw:創勢機械天使EVOL; zh-hk:創勢大天使EVOL; zh-mo:創勢大天使EVOL;" 25 | }, 26 | { 27 | "original": "アクエリオンロゴス", 28 | "conv": "zh:Aquarion Logos;zh-hans:创圣的亚库艾里翁LOGOS; zh-cn:创圣的大天使LOGOS; zh-hant:創聖的亞庫艾里翁LOGOS; zh-tw:創聖機械天使 LOGOS; zh-hk:創聖大天使LOGOS; zh-mo:創聖大天使LOGOS;" 29 | }, 30 | { 31 | "original": "想星のアクエリオン", 32 | "conv": "zh:想星的Aquarion; zh-hans:想星的亚库艾里翁; zh-cn:想星的大天使; zh-hant:想星的亞庫艾里翁; zh-tw:想星機械天使; zh-hk:想星大天使; zh-mo:想星大天使;" 33 | }, 34 | { 35 | "original": "アクエリオン", 36 | "conv": "亚库艾里翁=>zh-hans:亚库艾里翁;亚库艾里翁=>zh-cn:亚库艾里翁;亚库艾里翁=>zh-tw:亞庫艾里翁;亚库艾里翁=>zh-hk:Aquarion;" 37 | }, 38 | { 39 | "original": "アクエリオン", 40 | "conv": "亞庫艾里翁=>zh-hans:亚库艾里翁;亞庫艾里翁=>zh-cn:亚库艾里翁;亞庫艾里翁=>zh-tw:亞庫艾里翁;亞庫艾里翁=>zh-hk:Aquarion;" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /data/cgroups/Artist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Artist", 3 | "description": "艺术家", 4 | "path": "Module:CGroup/Artist", 5 | "rules": [ 6 | { 7 | "original": "Carracci", 8 | "conv": "zh-cn:卡拉奇; zh-tw:卡拉奇; zh-tw:卡拉奇;" 9 | }, 10 | { 11 | "original": "Gainsborough", 12 | "conv": "zh-cn:庚斯博羅; zh-tw:根茲巴羅;" 13 | }, 14 | { 15 | "original": "kandinsky", 16 | "conv": "zh-cn:康定斯基; zh-tw:康丁斯基; zh-hk:康丁斯基" 17 | }, 18 | { 19 | "original": "Michelangelo", 20 | "conv": "zh-cn:米开朗基罗; zh-tw:米開朗基羅; zh-hk:米高安哲羅;" 21 | }, 22 | { 23 | "original": "Matisse, Henri", 24 | "conv": "zh-cn:亨利·马蒂斯; zh-hk:亨利·馬蒂斯; zh-tw:亨利·馬諦斯; " 25 | }, 26 | { 27 | "original": "Monet, Claude", 28 | "conv": "zh-hk:克勞德·莫奈; zh-mo:克勞德·莫奈; zh-cn:克劳德·莫奈; zh-tw:克洛德·莫內;" 29 | }, 30 | { 31 | "original": "Rembrandt", 32 | "conv": "zh-hans:伦勃朗;zh-hant:倫勃朗;zh-tw:林布蘭;zh-hk:林布蘭;zh-mo:林布蘭;" 33 | }, 34 | { 35 | "original": "Toulouse-Lautrec, Henri de", 36 | "conv": "zh-hans:亨利·德·土鲁斯-劳特累克; zh-hant:亨利·德·土魯斯-羅特列克;" 37 | }, 38 | { 39 | "original": "da Vinci, Leonardo", 40 | "conv": "zh-cn:列奥纳多·达·芬奇; zh-tw:李奧納多·達文西; zh-hk:李安納度·達文西;" 41 | }, 42 | { 43 | "original": "da Vinci", 44 | "conv": "zh-cn:达·芬奇; zh-tw:達文西; zh-hk:達文西;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/BR Places.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BR Places", 3 | "description": "巴西地名", 4 | "path": "Module:CGroup/BR Places", 5 | "rules": [ 6 | { 7 | "original": "Acre", 8 | "conv": "zh-hans:阿克里州;zh-tw:阿克雷州;zh-hk:阿克里州;" 9 | }, 10 | { 11 | "original": "Amazonas", 12 | "conv": "zh-hans:亚马逊; zh-hant:亞馬孫; zh-cn:亚马孙; zh-hk:亞馬遜; zh-tw:亞馬遜;" 13 | }, 14 | { 15 | "original": "Amazonas", 16 | "conv": "zh-hans:亚马逊州; zh-hant:亞馬孫州; zh-cn:亚马孙州; zh-hk:亞馬遜州; zh-tw:亞馬遜州;" 17 | }, 18 | { 19 | "original": "Amazonas", 20 | "conv": "zh-hans:伯南布哥;zh-hk:伯南布哥;zh-tw:伯南布科;" 21 | }, 22 | { 23 | "original": "Riograndense Republic", 24 | "conv": " zh-cn:里奥格兰登斯共和国; zh-tw:里約格朗登斯共和國; zh-hk:大河共和國;" 25 | }, 26 | { 27 | "original": "Rio Grande do Norte", 28 | "conv": " zh-cn:北里奥格兰德州; zh-tw:北里約格朗德州; zh-hk:北大河州;" 29 | }, 30 | { 31 | "original": "Rio Grande do Sul", 32 | "conv": " zh-cn:南里奥格兰德州; zh-tw:南里約格朗德州; zh-hk:南大河州;" 33 | }, 34 | { 35 | "original": "Alegre", 36 | "conv": "zh-hans:阿雷格里; zh-hant:阿列格雷;" 37 | }, 38 | { 39 | "original": "Argirita", 40 | "conv": "zh-hans:阿尔日里塔;zh-hant:阿爾日里塔;" 41 | }, 42 | { 43 | "original": "Bagé", 44 | "conv": "zh-hans:巴热;zh-hk:巴耶;zh-tw:巴熱;" 45 | }, 46 | { 47 | "original": "Belo Horizonte", 48 | "conv": "zh-hans:贝洛奥里藏特;zh-tw:美景市;zh-hk:比路賀利桑特;" 49 | }, 50 | { 51 | "original": "Campo Grande", 52 | "conv": "zh-hans:大坎普;zh-hant:大坎普;zh-tw:大坎波" 53 | }, 54 | { 55 | "original": "Curitiba", 56 | "conv": "zh-hans:库里蒂巴;zh-hant:古里提巴;" 57 | }, 58 | { 59 | "original": "Florianópolis", 60 | "conv": "zh-tw:佛羅安那波里;zh-hans:弗洛里亚诺波利斯;zh-hant:弗洛里亞諾波利斯;" 61 | }, 62 | { 63 | "original": "Fortaleza", 64 | "conv": "zh-hans:福塔莱萨;zh-hk:福塔萊薩;zh-tw:福塔雷薩;" 65 | }, 66 | { 67 | "original": "Manaus", 68 | "conv": "zh-hans:马瑙斯;zh-hk:馬瑙斯;zh-tw:瑪瑙斯;" 69 | }, 70 | { 71 | "original": "Maracanã", 72 | "conv": "zh:馬拉簡拿; zh-tw:馬拉卡納; zh-cn:马拉卡纳; zh-hk:馬拉簡拿;" 73 | }, 74 | { 75 | "original": "Recife", 76 | "conv": "zh-hans:累西腓;zh-tw:勒西菲;zh-hk:利斯菲;" 77 | } 78 | ] 79 | } -------------------------------------------------------------------------------- /data/cgroups/Bakuman.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Bakuman", 3 | "description": "-{zh-cn:爆漫王。;zh-hans:爆漫王。;zh-tw:爆漫王。;zh-hk:爆漫。;}-", 4 | "path": "Template:CGroup/Bakuman", 5 | "rules": [ 6 | { 7 | "original": "", 8 | "conv": "zh-hans:爆漫王。; zh-tw:爆漫王。; zh-hk:爆漫。;" 9 | }, 10 | { 11 | "original": "", 12 | "conv": "zh-hans:财智做世界; zh-tw:這個世界靠錢和智慧; zh-hk:財智造世界;" 13 | }, 14 | { 15 | "original": "", 16 | "conv": "zh-hans:彩音世界; zh-tw:繽紛世界; zh-hk:彩音世界;" 17 | }, 18 | { 19 | "original": "", 20 | "conv": "zh-hans:跑吧!大发丹斗; zh-tw:奔跑吧!大發丹斗; zh-hk:跑吧!大發反斗;" 21 | }, 22 | { 23 | "original": "", 24 | "conv": "zh-hans:丹斗; zh-tw:丹斗; zh-hk:反斗;" 25 | }, 26 | { 27 | "original": "", 28 | "conv": "zh-hans:死亡笔记; zh-tw:死亡筆記本; zh-hk:死亡筆記;" 29 | }, 30 | { 31 | "original": "", 32 | "conv": "zh-hans:青叶时节; zh-tw:青葉時節; zh-hk:青葉時期;" 33 | }, 34 | { 35 | "original": "", 36 | "conv": "zh-hans:匹斯; zh-tw:匹斯; zh-hk:彼思;" 37 | }, 38 | { 39 | "original": "", 40 | "conv": "zh-hans:Future watch; zh-tw:Future watch; zh-hk:未來手錶;" 41 | }, 42 | { 43 | "original": "", 44 | "conv": "zh-hans:赛车手GIRI; zh-tw:賽車手GIRI; zh-hk:公路賽車手GIRI;" 45 | }, 46 | { 47 | "original": "", 48 | "conv": "zh-hans:BB谦一; zh-tw:BB謙一; zh-hk:Business Boy 健一;" 49 | }, 50 | { 51 | "original": "", 52 | "conv": "zh-hans:谦一; zh-tw:謙一; zh-hk:健一;" 53 | }, 54 | { 55 | "original": "", 56 | "conv": "zh-hans:新妻英二; zh-tw:新妻惠一兒; zh-hk:新妻英治;" 57 | }, 58 | { 59 | "original": "", 60 | "conv": "zh-hans:亚城木梦叶; zh-tw:亞城木夢叶; zh-hk:亞城木夢叶;" 61 | }, 62 | { 63 | "original": "", 64 | "conv": "zh-hans:最哥; zh-tw:最哥; zh-hk:最Top;" 65 | }, 66 | { 67 | "original": "", 68 | "conv": "zh-hans:Shoot; zh-tw:秋仔; zh-hk:阿秋;" 69 | }, 70 | { 71 | "original": "", 72 | "conv": "zh-hans:秋犯; zh-tw:秋犯; zh-hk:醜人;" 73 | }, 74 | { 75 | "original": "", 76 | "conv": "zh-hans:白鸟旬; zh-tw:白鳥旬; zh-hk:白鳥俊;" 77 | }, 78 | { 79 | "original": "", 80 | "conv": "zh-hans:川口太郎; zh-tw:川口太朗; zh-hk:川口太郎;" 81 | } 82 | ] 83 | } -------------------------------------------------------------------------------- /data/cgroups/Battle Spirits.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Battle Spirits", 3 | "description": "Battle Spirits", 4 | "path": "Template:CGroup/Battle Spirits", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hk:拍擋; zh-tw:夥伴;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-hk:娜娜莉; zh-tw:娜娜林;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-hk:SMILE; zh-tw:斯麥爾;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-hk:音無文子; zh-tw:音無富美子;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-hk:村戶公義; zh-tw:川戶恭二;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-hk:宇宙頂點王; zh-tw:宇宙超天王;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-hk:古拉古寧; zh-tw:克拉克里;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-hk:鴨咀帽; zh-tw:隊長;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-hk:米高·艾略特; zh-tw:麥克·艾里歐德;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-hk:騎士積克; zh-tw:傑克騎士;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-hk:神射手; zh-tw:王牌前鋒;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-hk:九條久作; zh-tw:九條九策;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-hk:號碼精英; zh-tw:數字者;" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-hk:彈; zh-tw:丹;" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-hk:激突王; zh-tw:衝擊王;" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh-hk:光明貴公子; zh-tw:光之貴公子;" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh-hk:攻速修羅; zh-tw:速攻修拉;" 73 | }, 74 | { 75 | "original": null, 76 | "conv": "zh-hk:魔魅; zh-tw:魔美;" 77 | }, 78 | { 79 | "original": null, 80 | "conv": "zh-hk:巴洛尼; zh-tw:巴羅涅;" 81 | }, 82 | { 83 | "original": null, 84 | "conv": "zh-cn:;zh-tw:;zh-hk:;" 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/CANAAN.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CANAAN", 3 | "description": "-{zh-hans:CANAAN;zh-tw:CANAAN;zh-hk:CANAAN迦南;zh-hant:CANAAN;zh-mo:CANAAN迦南;}-", 4 | "path": "Template:CGroup/CANAAN", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hant:艾琺陀;zh-tw:阿爾琺特;zh-hk:艾琺陀;zh-hans:艾珐陀;zh-mo:艾琺陀;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-hant:艾爾;zh-tw:阿爾;zh-hk:艾爾;zh-hans:艾尔;zh-mo:艾爾;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-hant:修雅;zh-tw:修亞;zh-hk:修雅;zh-hans:修雅;zh-mo:修雅;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-hant:薩岩;zh-tw:夏姆;zh-hk:薩岩;zh-hans:萨岩;zh-mo:薩岩;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-hant:瑪莉亞;zh-tw:瑪麗亞;zh-hk:瑪莉亞;zh-hans:玛莉亚;zh-mo:瑪莉亞;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-hant:夏歌;zh-tw:夏珂;zh-hk:夏歌;zh-hans:夏歌;zh-mo:夏歌;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-hant:辛坦拿;zh-tw:桑塔納;zh-hk:辛坦拿;zh-hans:辛坦拿;zh-mo:辛坦拿;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-hant:甘明治;zh-tw:卡敏柯斯;zh-hk:甘明治;zh-hans:甘明治;zh-mo:甘明治;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-hant:哈得利;zh-tw:哈德利;zh-hk:哈得利;zh-hans:哈得利;zh-mo:哈得利;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-hant:寧寧;zh-tw:妮妮;zh-hk:寧寧;zh-hans:妮妮;zh-mo:寧寧;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-hant:辛迪·田中;zh-tw:桑迪·田中;zh-hk:辛迪·田中;zh-hans:辛迪田中;zh-mo:辛迪·田中;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-hant:卡達菲;zh-cn:卡扎菲;zh-tw:格達費;zh-hk:卡達菲;zh-sg:卡达菲;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-tw:布希;zh-hk:布殊;zh-hans:布什;zh-mo:布殊;" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-tw:錢尼;zh-hk:切尼;zh-hans:切尼;zh-mo:切尼;" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-tw:海珊;zh-hk:侯賽因;zh-hans:海珊;zh-mo:侯賽因;" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh-hant:《CANAAN》;zh-tw:《迦南》;zh-hk:《CANAAN迦南》;zh-hans:《迦南》;zh-mo:《CANAAN迦南》;" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh-hant:DAEDALA Corporation;zh-tw:DAEDALA公司;zh-hk:戴達拉公司;zh-hans:戴达拉公司;zh-mo:戴達拉公司;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/CL Places.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CL Places", 3 | "description": "智利地名", 4 | "path": "Module:CGroup/CL Places", 5 | "rules": [ 6 | { 7 | "original": "Andes", 8 | "conv": "zh-cn:安第斯; zh-hk:安第斯; zh-tw:安地斯;" 9 | }, 10 | { 11 | "original": "Atacama", 12 | "conv": "zh-cn:阿塔卡马; zh-hk:阿塔卡馬; zh-tw:阿他加馬;" 13 | }, 14 | { 15 | "original": "Brunswick", 16 | "conv": "zh-hans:不伦瑞克; zh-hk:不倫瑞克; zh-tw:布藍茲維;" 17 | }, 18 | { 19 | "original": "Chillán", 20 | "conv": "zh:奇廉; zh-tw:奇陽;" 21 | }, 22 | { 23 | "original": "Osorno", 24 | "conv": "zh-hans:奥索尔诺; zh-tw:奧索諾;" 25 | }, 26 | { 27 | "original": "Punta Arenas", 28 | "conv": "zh-hans:蓬塔阿雷纳斯; zh-hant:蓬塔阿雷納斯; zh-tw:旁塔阿雷納斯;" 29 | }, 30 | { 31 | "original": "Santiago", 32 | "conv": "zh:聖地亞哥; zh-hans:圣地亚哥; zh-hant:聖地牙哥;" 33 | }, 34 | { 35 | "original": "San Bernardo", 36 | "conv": "zh-hant:聖貝爾納多; zh-hans:圣贝尔纳多;zh-hk:聖賓拿度;zh-tw:聖貝納多;" 37 | }, 38 | { 39 | "original": "San Fernando", 40 | "conv": "zh-cn:圣费尔南多; zh-hk:聖費南度; zh-tw:聖費南多; zh-hant:聖費爾南多;" 41 | }, 42 | { 43 | "original": "Viña del Mar", 44 | "conv": "zh-hans:比尼亚德尔马; zh-tw:維涅馬爾; zh-hant:比尼亞德爾馬;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/Cards.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cards", 3 | "description": "-{zh:撲克牌; zh-cn:扑克牌; zh-tw:撲克牌; zh-hk:啤牌; zh-mo:啤牌; zh-sg:扑克牌;}-", 4 | "path": "Module:CGroup/Cards", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh:撲克牌; zh-cn:扑克牌; zh-tw:撲克牌; zh-hk:啤牌; zh-mo:啤牌; zh-sg:扑克牌;" 9 | }, 10 | { 11 | "original": "poker", 12 | "conv": "zh:撲克; zh-cn:扑克; zh-tw:撲克; zh-hk:啤; zh-mo:啤; zh-sg:扑克;" 13 | }, 14 | { 15 | "original": "diamond", 16 | "conv": "zh-hans:方块; zh-tw:方塊; zh-hk:階磚;" 17 | }, 18 | { 19 | "original": "spade", 20 | "conv": "zh-hans:黑桃; zh-tw:黑桃; zh-hk:葵扇;" 21 | }, 22 | { 23 | "original": "Big Two", 24 | "conv": "zh-hans:大老二; zh-tw:大老二; zh-hk:鋤大弟;" 25 | }, 26 | { 27 | "original": "Big Two", 28 | "conv": "鋤大D=>zh-hans:大老二; 鋤大D=>zh-tw:大老二; 鋤大D=>zh-hk:鋤大弟;" 29 | }, 30 | { 31 | "original": "Big Two", 32 | "conv": "锄大D=>zh-hans:大老二; 锄大D=>zh-tw:大老二; 锄大D=>zh-hk:鋤大弟;" 33 | }, 34 | { 35 | "original": "Blackjack", 36 | "conv": "zh-hans:黑杰克; zh-hk:二十一點; zh-tw:二十一點;" 37 | }, 38 | { 39 | "original": "Blackjack", 40 | "conv": "廿一點=>zh-hans:黑杰克; 廿一點=>zh-hk:二十一點; 廿一點=>zh-tw:二十一點;" 41 | }, 42 | { 43 | "original": "Blackjack", 44 | "conv": "廿一点=>zh-hans:黑杰克; 廿一点=>zh-hk:二十一點; 廿一点=>zh-tw:二十一點;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-hans:十三张; zh-hant:十三張; zh-tw:十三支; zh-mo:十三水;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-hans:衾棉胎; zh-hk:冚棉胎; zh-tw:心臟病;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-hans:接龙; zh-hk:排七; zh-tw:接龍;" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-hans:抽乌龟; zh-hk:潛烏龜; zh-tw:抽鬼;" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-hans:斗地主; zh-hant:鬥地主;" 65 | }, 66 | { 67 | "original": "Texas hold'em", 68 | "conv": "zh-hans:德州扑克; zh-hk:德州撲克; zh-tw:德州撲克;" 69 | }, 70 | { 71 | "original": "World Series of Poker", 72 | "conv": "zh-hant:世界撲克大賽; zh-hans:世界扑克大赛;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/Chanel.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chanel", 3 | "description": "Chanel", 4 | "path": "Module:CGroup/Chanel", 5 | "rules": [ 6 | { 7 | "original": "Chanel", 8 | "conv": "zh: 香奈兒; zh-hans: 香奈儿; zh-hant: 香奈兒;" 9 | }, 10 | { 11 | "original": "香奈爾", 12 | "conv": "zh: 香奈兒; zh-hans: 香奈儿; zh-hant: 香奈兒;" 13 | }, 14 | { 15 | "original": "香奈尔", 16 | "conv": "zh: 香奈兒; zh-hans: 香奈儿; zh-hant: 香奈兒;" 17 | }, 18 | { 19 | "original": "Coco Chanel", 20 | "conv": "zh: 可可·香奈兒; zh-hans: 可可·香奈儿; zh-hant: 可可·香奈兒;" 21 | }, 22 | { 23 | "original": "可可·香奈爾", 24 | "conv": "zh: 可可·香奈兒; zh-hans: 可可·香奈儿; zh-hant: 可可·香奈兒;" 25 | }, 26 | { 27 | "original": "可可·香奈尔", 28 | "conv": "zh: 可可·香奈兒; zh-hans: 可可·香奈儿; zh-hant: 可可·香奈兒;" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/cgroups/Civil Law.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Civil Law", 3 | "description": "民法", 4 | "path": "Module:CGroup/Civil Law", 5 | "rules": [ 6 | { 7 | "original": "Verschuldenshaftung", 8 | "conv": "zh-hant:過錯責任;zh-hans:过错责任;zh-tw:過失責任" 9 | }, 10 | { 11 | "original": "Haftung aus Unrecht in widerleglich vermutetem Verschulden", 12 | "conv": "zh-hant:過錯推定責任;zh-hans:过错推定责任;zh-tw:中間責任" 13 | }, 14 | { 15 | "original": "Gefährdungshaftung", 16 | "conv": "zh-hans:无过错责任;zh-hant:無過错責任;zh-tw:無過失責任" 17 | }, 18 | { 19 | "original": "beschränktes Sachenrecht", 20 | "conv": "zh-hans:限制物权;zh-hant:定限物權;zh-tw:定限物權;zh-hk:限制無權" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/CodeLyoko.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CodeLyoko", 3 | "description": "-{zh-cn:虚幻勇士;zh-hk:至Net奇兵;}-", 4 | "path": "Template:CGroup/CodeLyoko", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh:至NET奇兵;zh-cn:虚幻勇士; zh-hk:至Net奇兵; zh-tw:虛幻勇士;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh:亞烈達;zh-cn:董美娃;zh-hk:亞烈達" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh:傑理明;zh-cn:任杰;zh-hk:傑理明" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh:奇異果;zh-cn:基维;zh-hk:奇異果" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh:阿奇;zh-cn:陈迪;zh-hk:阿奇" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh:治狼;zh-cn:李奇;zh-hk:治狼" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh:山拿;zh-cn:夏之纳;zh-hk:山拿" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh:尤美;zh-cn:尤慧子;zh-hk:尤美" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh:法兰兹·荷巴;zh-cn:霍兰;zh-hk:賀法蘭" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh:西西;zh-cn:文茜;zh-hk:西西" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh:尼古拉;zh-cn:许刚;zh-hk:尼古拉" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh:赫比;zh-cn:海文;zh-hk:赫比" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh:美妮;zh-cn:小米;zh-hk:美妮" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh:宮子;zh-cn:小亚;zh-hk:宮子" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh:誠二;zh-cn:小海;zh-hk:誠二" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh:阿占;zh-cn:教练;zh-hk:阿占" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh:尤露達;zh-cn:杨莲;zh-hk:尤露達" 73 | }, 74 | { 75 | "original": null, 76 | "conv": "zh:利奧高;zh-cn:兰科;zh-tw:利奧高;zh-hk:Lyoko" 77 | }, 78 | { 79 | "original": null, 80 | "conv": "zh:卡迪中學;zh-cn:凯德中学;zh-hk:卡迪中學" 81 | }, 82 | { 83 | "original": null, 84 | "conv": "zh:高塔;zh-cn:圆塔;zh-hk:高塔" 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/County.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "County", 3 | "description": "郡縣轉換", 4 | "path": "Module:CGroup/County", 5 | "rules": [ 6 | { 7 | "original": "County/Landkreis", 8 | "conv": "zh-cn:县;zh-hk:縣;zh-tw:郡;" 9 | }, 10 | { 11 | "original": "counties", 12 | "conv": "zh-hans:郡县;zh-hant:郡縣;" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /data/cgroups/Crayon Shin-chan.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Crayon Shin-chan", 3 | "description": "蠟筆小新", 4 | "path": "Module:CGroup/Crayon Shin-chan", 5 | "rules": [ 6 | { 7 | "original": "爆睡!ユメミーワールド大突撃", 8 | "conv": "zh-hk:\t瞓啦!早唞早著夢作戰;zh-tw:爆睡!夢世界大作戰" 9 | }, 10 | { 11 | "original": "キネ", 12 | "conv": "zh-hk:莉莉;zh-tw:霓霓;zh-cn:霓霓" 13 | }, 14 | { 15 | "original": "ブーちゃん", 16 | "conv": "zh-hk:阿凱;zh-tw:阿袋;zh-cn:阿袋" 17 | }, 18 | { 19 | "original": "あくの博士", 20 | "conv": "zh-hk:惡野博士;zh-tw:斜二博士;zh-cn:斜二博士" 21 | }, 22 | { 23 | "original": "ひのやまヨヨコ", 24 | "conv": "zh-hk:檜山羅羅子;zh-tw:火山良良子;zh-cn:火山良良子" 25 | }, 26 | { 27 | "original": "ひのやまララコ", 28 | "conv": "zh-hk:檜山代代子;zh-tw:火山代代子;zh-cn:火山代代子" 29 | }, 30 | { 31 | "original": "キャップ", 32 | "conv": "zh-hk:檜山守;zh-tw:火山守;zh-cn:火山守" 33 | }, 34 | { 35 | "original": "青山はた", 36 | "conv": "zh-hk:青山織;zh-tw:青山綺;zh-cn:青山绮" 37 | }, 38 | { 39 | "original": "おわらない", 40 | "conv": "zh-tw:永不結束的;zh-cn:没有终点的" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /data/cgroups/Criminal Law.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Criminal Law", 3 | "description": "刑法", 4 | "path": "Module:CGroup/Criminal Law", 5 | "rules": [ 6 | { 7 | "original": "Putativnotwehrexzess", 8 | "conv": "zh-hant:誤想防衛;zh-cn:假想防卫" 9 | }, 10 | { 11 | "original": "Absicht", 12 | "conv": "zh-hant:意圖;zh-cn:目的" 13 | }, 14 | { 15 | "original": "Notstand", 16 | "conv": "zh-hant:緊急避難;zh-cn:紧急避险" 17 | }, 18 | { 19 | "original": "Nebenstrafe", 20 | "conv": "zh-hant:從刑;zh-cn:附加刑" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/DCComics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "DCComics", 3 | "description": "DC漫画作品、角色、出版物及相关影视游戏改编作品名称", 4 | "path": "Template:CGroup/DCComics", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-cn:神奇女侠; zh-tw:神力女超人" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-cn:正义联盟:毁灭; zh-tw:正義聯盟:末日審判" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:正义联盟:闪点悖论; zh-tw:正義聯盟:閃電俠之逆轉" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-cn:正义联盟:战争; zh-tw:正義聯盟:開戰" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:正义联盟:两个地球的危机; zh-tw:正義聯盟:兩面夾擊" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-cn:乐高大电影; zh-hk:LEGO英雄傳; zh-sg:乐高玩电影; zh-tw:樂高玩電影" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-cn:正义联盟:亚特兰蒂斯的宝座; zh-tw:正義聯盟:亞特蘭提斯的王位" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-cn:正义联盟:神魔之战; zh-tw:正義聯盟:神與魔" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-cn:蝙蝠侠大战超人:正义黎明; zh-sg:蝙蝠侠对超人:正义曙光; zh-tw:蝙蝠俠對超人:正義曙光" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-cn:神奇女侠 (; zh-hk:神奇女俠 (; zh-tw:神力女超人 (;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/Dance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dance", 3 | "description": "舞蹈", 4 | "path": "Module:CGroup/Dance", 5 | "rules": [ 6 | { 7 | "original": "Flamenco", 8 | "conv": "zh-hans:弗拉门戈;zh-tw:佛朗明哥;zh-hk:法蘭明歌;" 9 | }, 10 | { 11 | "original": "Flamenco Dance", 12 | "conv": "zh-cn:弗拉明戈舞;zh-tw:佛朗明哥舞;zh-hk:法蘭明歌舞;" 13 | }, 14 | { 15 | "original": "Morden Dance", 16 | "conv": "zh-cn:现代舞;zh-tw:摩登舞;zh-hk:摩登舞;" 17 | }, 18 | { 19 | "original": "Disco", 20 | "conv": "zh-hans:迪斯科;zh-hant:迪斯可;zh-cn:迪斯科;zh-tw:迪斯可;zh-hk:的士高;zh-mo:的士高;" 21 | }, 22 | { 23 | "original": "Hustle", 24 | "conv": "zh-cn:哈娑舞;zh-tw:哈梭舞;" 25 | }, 26 | { 27 | "original": "Capoeira", 28 | "conv": "zh-cn:卡波耶拉;zh-hk:卡普耶拉;" 29 | }, 30 | { 31 | "original": "Samba", 32 | "conv": "zh-cn:桑巴;zh-tw:森巴;zh-hk:森巴;" 33 | }, 34 | { 35 | "original": "Jive", 36 | "conv": "zh-cn:牛仔舞;zh-tw:捷舞;zh-hk:牛仔舞;" 37 | }, 38 | { 39 | "original": "Modern Jive", 40 | "conv": "zh-cn:现代牛仔舞;zh-tw:摩登捷舞;zh-hk:摩登牛仔舞;" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /data/cgroups/Death Note.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Death Note", 3 | "description": "-{zh-cn:死亡笔记;zh-hant:死亡筆記本;zh-tw:死亡筆記本;zh-hk:死亡筆記;zh-sg:死神笔记簿;zh-mo:死亡筆記;}-", 4 | "path": "Template:CGroup/Death Note", 5 | "rules": [ 6 | { 7 | "original": "DEATH NOTE", 8 | "conv": "zh-hans:死亡笔记;zh-hant:死亡筆記本;zh-tw:死亡筆記本;zh-hk:死亡筆記;zh-sg:死神笔记簿;zh-mo:死亡筆記" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-tw:決勝時刻;zh-hans:最后的名字;zh-hk:最後的名字;zh-mo:最後的名字;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-tw:死亡筆記本:L;zh-hant:L:最終的23日;zh-hans:L:最终的23日;zh-sg:死亡笔记外传-神探L;zh-hk:L之終章 最後的23天;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-cn:点亮新世界;zh-sg:照亮新世纪;zh-hk:照亮新世紀;zh-tw:決戰新世界;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-tw:奇樂;zh-hans:基拉;zh-hk:奇拿;zh-mo:奇拿;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-hans:流愚;zh-hk:流克;zh-sg:龙轲;zh-tw:路克;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-hans:梅罗;zh-hk:米洛;zh-tw:梅洛;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-hans:希多;zh-hk:斯多;zh-tw:席多;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-hans:彭巴;zh-hk:彭巴;zh-tw:潘柏;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-hans:里斯達;zh-hk:里斯達;zh-tw:雷斯特;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-hans:傑邦尼;zh-hk:謝班尼;zh-tw:傑邦尼;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-hans:华米之家;zh-hk:維美斯之家;zh-tw:華米之家;" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/Die Weiße Rose.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Die Weiße Rose", 3 | "description": "白玫瑰", 4 | "path": "Template:CGroup/Die Weiße Rose", 5 | "rules": [ 6 | { 7 | "original": "Sophie", 8 | "conv": "zh-cn:索菲; zh-tw:蘇菲;" 9 | }, 10 | { 11 | "original": "Scholl", 12 | "conv": "zh-cn:朔尔; zh-tw:索爾; zh-hk:蕭爾;" 13 | }, 14 | { 15 | "original": "Kurt", 16 | "conv": "zh-cn:库尔特; zh-tw:庫特;" 17 | }, 18 | { 19 | "original": "Huber", 20 | "conv": "zh-cn:胡贝尔; zh-tw:胡伯;" 21 | }, 22 | { 23 | "original": "Schmorell", 24 | "conv": "zh-cn:施莫雷尔; zh-tw:許墨瑞;" 25 | }, 26 | { 27 | "original": "Christoph", 28 | "conv": "zh-cn:克里斯托夫; zh-tw:克里斯多福;" 29 | }, 30 | { 31 | "original": "Probst", 32 | "conv": "zh-cn:普罗布斯特; zh-tw:波普斯特;" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /data/cgroups/Esports.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Esports", 3 | "description": "电子竞技", 4 | "path": "Module:CGroup/Esports", 5 | "rules": [ 6 | { 7 | "original": "final 32", 8 | "conv": "zh-hk:32強賽; zh-cn:十六分之一决赛; zh-tw:32強賽;" 9 | }, 10 | { 11 | "original": "final 16", 12 | "conv": "zh-hk:16強賽; zh-cn:八分之一决赛; zh-tw:16強賽;" 13 | }, 14 | { 15 | "original": "quarterfinal", 16 | "conv": "zh-hk:八強賽; zh-cn:四分之一决赛; zh-tw:半準決賽;" 17 | }, 18 | { 19 | "original": "semifinal", 20 | "conv": "zh-hk:準決賽; zh-cn:半决赛; zh-tw:準決賽;" 21 | }, 22 | { 23 | "original": "first round", 24 | "conv": "zh-cn:第一轮; zh-hk:第一圈; zh-tw:第一輪;" 25 | }, 26 | { 27 | "original": "second round", 28 | "conv": "zh-cn:第二轮; zh-hk:第二圈; zh-tw:第二輪;" 29 | }, 30 | { 31 | "original": "third round", 32 | "conv": "zh-cn:第三轮; zh-hk:第三圈; zh-tw:第三輪;" 33 | }, 34 | { 35 | "original": "4th round", 36 | "conv": "zh-cn:第四轮; zh-hk:第四圈; zh-tw:第四輪;" 37 | }, 38 | { 39 | "original": "5th round", 40 | "conv": "zh-cn:第五轮; zh-hk:第五圈; zh-tw:第五輪;" 41 | }, 42 | { 43 | "original": "6th round", 44 | "conv": "zh-cn:第六轮; zh-hk:第六圈; zh-tw:第六輪;" 45 | }, 46 | { 47 | "original": "7th round", 48 | "conv": "zh-cn:第七轮; zh-hk:第七圈; zh-tw:第七輪;" 49 | }, 50 | { 51 | "original": "8th round", 52 | "conv": "zh-cn:第八轮; zh-hk:第八圈; zh-tw:第八輪;" 53 | }, 54 | { 55 | "original": "9th round", 56 | "conv": "zh-cn:第九轮; zh-hk:第九圈; zh-tw:第九輪;" 57 | }, 58 | { 59 | "original": "10th round", 60 | "conv": "zh-cn:第十轮; zh-hk:第十圈; zh-tw:第十輪;" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-hans:16位; zh-hant:16位;" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh-hans:32位; zh-hant:32位;" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh-hans:64位; zh-hant:64位;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/Friends.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Friends", 3 | "description": "Friends", 4 | "path": "Template:CGroup/Friends", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh:老友记; zh-cn:老友记; zh-tw:六人行; zh-hk:老友記;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-cn:罗斯; zh-tw:羅斯; zh-hk:洛斯;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:莫妮卡; zh-tw:莫妮卡; zh-hk:莫妮;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-cn:钱德勒; zh-tw:錢德; zh-hk:昌德;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:乔伊; zh-tw:喬伊; zh-hk:祖兒;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-cn:瑞秋; zh-tw:瑞秋; zh-hk:麗珍;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-hk:麗珍·格林;zh-cn:瑞秋·格林;zh-tw:瑞秋·葛林;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-hk:莫妮·蓋勒;zh-cn:莫妮卡·盖勒;zh-tw:莫妮卡·蓋勒;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-hk:祖兒·崔比雅尼;zh-cn:乔伊·崔比雅尼;zh-tw:喬伊·崔比亞尼;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-hk:昌德·賓;zh-cn:钱德勒·宾;zh-tw:錢德·賓;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-hk:洛斯·蓋勒;zh-cn:罗斯·盖勒;zh-tw:羅斯·蓋勒;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-tw:六人行:當我們又在一起;zh-cn:老友记重聚特辑" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/Fringe.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fringe", 3 | "description": "-{zh-hans:危机边缘; zh-tw:危機邊緣; zh-hk:F檔案}-", 4 | "path": "Template:CGroup/Fringe", 5 | "rules": [ 6 | { 7 | "original": "Astrid Farnsworth", 8 | "conv": "zh-tw:艾絲卓·方斯沃;zh-hk:方凱翠;zh-cn:阿斯瑞得·法斯沃斯" 9 | }, 10 | { 11 | "original": "Charlie Francis", 12 | "conv": "zh-tw:查理·范希斯;zh-hk:范卓禮;zh-cn:查理·弗朗西斯" 13 | }, 14 | { 15 | "original": "David", 16 | "conv": "zh-tw:大衛·羅伯·瓊斯;zh-hk:鐘大衛;zh-cn:大卫·罗伯·琼斯" 17 | }, 18 | { 19 | "original": "Fringe", 20 | "conv": "zh-hans:危机边缘;zh-tw:危機邊緣;zh-hk:F檔案;" 21 | }, 22 | { 23 | "original": "Fox", 24 | "conv": "zh-cn:福克斯; zh-tw:福斯; zh-hk:霍士" 25 | }, 26 | { 27 | "original": "John", 28 | "conv": "zh-tw:約翰·史考特; zh-hk:冼壯; zh-cn:约翰·史考特" 29 | }, 30 | { 31 | "original": "Lance Reddick", 32 | "conv": "zh-cn:兰斯·雷迪克; zh-hk:蘭斯·雷迪克; zh-tw:藍斯·瑞迪克;" 33 | }, 34 | { 35 | "original": "Leonard Nemoy", 36 | "conv": "zh-cn:伦纳德·尼莫伊; zh-tw:李奧納德·尼摩伊;" 37 | }, 38 | { 39 | "original": "Massive Dynamic", 40 | "conv": "zh-tw:巨實動力;zh-hk:巨大動力;zh-cn:巨大动力" 41 | }, 42 | { 43 | "original": "Mitchell Loeb", 44 | "conv": "zh-tw:米契·羅布;zh-hk:洛米曹;zh-cn:米契·罗布" 45 | }, 46 | { 47 | "original": "Nina", 48 | "conv": "zh-tw:妮娜·夏普;zh-hk:尚妮娜;zh-cn:尼娜·夏普" 49 | }, 50 | { 51 | "original": "Olivia", 52 | "conv": "zh-tw:奧莉薇亞·唐翰;zh-hk:唐愛暉;zh-cn:奥利维亚·德纳姆" 53 | }, 54 | { 55 | "original": "Observer", 56 | "conv": "zh-tw:觀察者;zh-hk:旁觀者;zh-cn:观察者" 57 | }, 58 | { 59 | "original": "Peter", 60 | "conv": "zh-tw:彼得·畢夏;zh-hk:平彼得;zh-cn:彼得·贝肖普" 61 | }, 62 | { 63 | "original": "Phillip", 64 | "conv": "zh-tw:菲利普·伯爾斯;zh-hk:龐菲力;zh-cn:飞利浦·布洛伊" 65 | }, 66 | { 67 | "original": "William", 68 | "conv": "zh-tw:威廉·貝爾;zh-hk:畢維廉;zh-cn:威廉·贝尔" 69 | }, 70 | { 71 | "original": "Walter", 72 | "conv": "zh-tw:瓦特·畢夏;zh-hk:平偉達;zh-cn:沃尔特·贝肖普" 73 | }, 74 | { 75 | "original": "Walternate", 76 | "conv": "Walternate" 77 | } 78 | ] 79 | } -------------------------------------------------------------------------------- /data/cgroups/GaoGaiGar.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "GaoGaiGar", 3 | "description": "勇者王", 4 | "path": "Template:CGroup/GaoGaiGar", 5 | "rules": [ 6 | { 7 | "original": "ボルフォッグ", 8 | "conv": "zh-hans:布鲁科;zh-hk:保羅霍特;zh-tw:博爾霍克;" 9 | }, 10 | { 11 | "original": "ビッグボルフォッグ", 12 | "conv": "zh-hans:大布鲁科;zh-hk:超級保羅霍特;zh-tw:大博爾霍克;" 13 | }, 14 | { 15 | "original": "ヘル・アンド・ヘブン", 16 | "conv": "zh-hans:地獄與天堂;zh-hk:風起雲動拳;zh-tw:地獄與天堂;" 17 | }, 18 | { 19 | "original": "ルネ・カーディフ・獅子王", 20 | "conv": "zh-hk:露娜·加迪夫·獅子王;zh-tw:露尼·卡迪芙·獅子王;" 21 | }, 22 | { 23 | "original": "ルネ", 24 | "conv": "zh-hk:露娜;zh-tw:露尼;" 25 | }, 26 | { 27 | "original": "ギャレオン,Galeon", 28 | "conv": "zh-hans:伽利欧;zh-hk:加里昂;zh-tw:克雷恩;" 29 | }, 30 | { 31 | "original": "ガイガー,GaiGar", 32 | "conv": "zh-hans:GaiGar;zh-hk:GaiGar;zh-tw:凱牙;" 33 | }, 34 | { 35 | "original": "ガオガイガー,GaoGaiGar", 36 | "conv": "zh-hans:GaoGaiGar;zh-hk:GaoGaiGar;zh-tw:我王凱牙;" 37 | }, 38 | { 39 | "original": "スターガオガイガー,Star GaoGaiGar", 40 | "conv": "zh-hans:Star GaoGaiGar;zh-hk:Star GaoGaiGar;zh-tw:星際我王凱牙;" 41 | }, 42 | { 43 | "original": "ガオファイガー,GaoFighGar", 44 | "conv": "zh-hans:GaoFighGar;zh-hk:GaoFighGar;zh-tw:我王戰牙;" 45 | }, 46 | { 47 | "original": "キングジェイダー", 48 | "conv": "zh-hk:王者J;zh-tw:王者傑達;" 49 | }, 50 | { 51 | "original": "プリマーダ,Primarda", 52 | "conv": "zh-hk:碧莉瑪他;zh-tw:普莉瑪達;" 53 | }, 54 | { 55 | "original": "Dividing Driver", 56 | "conv": "zh-hk:Dividing Driver;zh-tw:分割起子;" 57 | }, 58 | { 59 | "original": "Final Fusion", 60 | "conv": "zh-hk:Final Fusion;zh-tw:終極融合;" 61 | }, 62 | { 63 | "original": "ソルダート", 64 | "conv": "zh-hk:Zonder;zh-tw:異械;" 65 | }, 66 | { 67 | "original": "ブロウクンマグナム", 68 | "conv": "zh-hk:飛轉噴射拳;zh-tw:飛拳破壞爆裂;" 69 | }, 70 | { 71 | "original": "", 72 | "conv": "zh-hk:火鳥聖箭;zh-tw:J-Qarth;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/Geography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Geography", 3 | "description": "地理学", 4 | "path": "Module:CGroup/Geography", 5 | "rules": [ 6 | { 7 | "original": "continental shelf", 8 | "conv": "zh-cn:大陆架; zh-hk:大陸架; zh-tw:大陸棚;" 9 | }, 10 | { 11 | "original": "global warming", 12 | "conv": "zh-cn:全球变暖; zh-tw:全球暖化;" 13 | }, 14 | { 15 | "original": "geographic information", 16 | "conv": "zh-cn:地理信息; zh-tw:地理資訊;" 17 | }, 18 | { 19 | "original": "information system", 20 | "conv": "zh-cn:信息系统; zh-tw:資訊系統;" 21 | }, 22 | { 23 | "original": "MAUP", 24 | "conv": "zh-cn:可塑性面积单元问题; zh-tw:可調整地區單元問題;" 25 | }, 26 | { 27 | "original": "remote sensing", 28 | "conv": "zh-cn:遥感; zh-hk:遙感; zh-tw:遙測;" 29 | }, 30 | { 31 | "original": "variable", 32 | "conv": "zh-cn:变量; zh-hk:變量; zh-tw:變數;" 33 | }, 34 | { 35 | "original": "cartographic generalization", 36 | "conv": "zh-cn:制图综合; zh-tw:地圖概括;" 37 | }, 38 | { 39 | "original": "choropleth map", 40 | "conv": "zh-cn:等值区域图; zh-tw:面量圖;" 41 | }, 42 | { 43 | "original": "coordinate", 44 | "conv": "座標=>zh-cn:坐标;" 45 | }, 46 | { 47 | "original": "dasymetric map", 48 | "conv": "zh-cn:分区密度地图; zh-tw:分區比重圖;" 49 | }, 50 | { 51 | "original": "Mercator", 52 | "conv": "zh-cn:墨卡托; zh-tw:麥卡托;" 53 | }, 54 | { 55 | "original": "visualization", 56 | "conv": "zh-cn:可视化; zh-tw:視覺化;" 57 | } 58 | ] 59 | } -------------------------------------------------------------------------------- /data/cgroups/Getter Robo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Getter Robo", 3 | "description": "-{zh-hans:盖塔机器人;zh-hk:三一萬能俠;zh-tw:蓋特機器人;}-系列", 4 | "path": "Template:CGroup/Getter Robo", 5 | "rules": [ 6 | { 7 | "original": "早乙女ミチル", 8 | "conv": "zh-hans:早乙女美智流;zh-hk:早乙女美智流;zh-tw:早乙女滿;" 9 | }, 10 | { 11 | "original": "ゴール", 12 | "conv": "zh-hans:哥鲁;zh-hk:哥魯;zh-tw:哥爾;" 13 | }, 14 | { 15 | "original": "メシア・タイール", 16 | "conv": "zh-hans:弥赛亚·塔伊尔;zh-hk:梅西亞·泰伊魯;zh-tw:彌賽亞·塔伊爾;" 17 | }, 18 | { 19 | "original": "タイール", 20 | "conv": "zh-hans:塔伊尔;zh-hk:泰伊魯;zh-tw:塔伊爾;" 21 | }, 22 | { 23 | "original": "シュワルツコフ", 24 | "conv": "zh-hans:修瓦尔兹科夫;zh-hk:斯華路哥夫;zh-tw:修瓦爾茲科夫;" 25 | }, 26 | { 27 | "original": "シュワルツ", 28 | "conv": "zh-hans:修瓦尔兹;zh-hk:斯華路;zh-tw:修瓦爾茲;" 29 | }, 30 | { 31 | "original": "ゲッターロボ", 32 | "conv": "zh-hans:盖塔机器人;zh-hk:三一萬能俠;zh-tw:蓋特機器人;" 33 | }, 34 | { 35 | "original": "ゲッター", 36 | "conv": "zh-hans:盖塔;zh-hk:三一;zh-tw:蓋特;" 37 | }, 38 | { 39 | "original": "ゲッター1", 40 | "conv": "zh-hans:盖塔1;zh-hk:三一1號;zh-tw:蓋特1;" 41 | }, 42 | { 43 | "original": "ゲッター2", 44 | "conv": "zh-hans:盖塔2;zh-hk:三一2號;zh-tw:蓋特2;" 45 | }, 46 | { 47 | "original": "ゲッター3", 48 | "conv": "zh-hans:盖塔3;zh-hk:三一3號;zh-tw:蓋特3;" 49 | }, 50 | { 51 | "original": "ステルバー", 52 | "conv": "zh-hk:史迪龍巴;zh-tw:史提魯帕;" 53 | }, 54 | { 55 | "original": "ステルボンバー", 56 | "conv": "zh-hk:史迪龍轟炸機;zh-tw:史提魯轟炸機;" 57 | }, 58 | { 59 | "original": "バロソフ", 60 | "conv": "zh-hk:巴洛索夫;zh-tw:帕洛烏;" 61 | }, 62 | { 63 | "original": "ゲッター線", 64 | "conv": "zh-hans:盖塔線;zh-hk:三一射線;zh-tw:蓋特線;" 65 | }, 66 | { 67 | "original": "ゲッタービーム", 68 | "conv": "zh-hans:盖塔光束;zh-hk:三一死光;zh-tw:蓋特光束;" 69 | }, 70 | { 71 | "original": "ビーム", 72 | "conv": "zh-hans:光束;zh-hk:死光;zh-tw:光束;" 73 | }, 74 | { 75 | "original": "ストナーサンシャイン", 76 | "conv": "zh-hans:盖塔烈日弹;zh-hk:烈光太陽彈;zh-tw:蓋特烈日彈;" 77 | }, 78 | { 79 | "original": "ゲッター炉", 80 | "conv": "zh-hans:盖塔炉;zh-hk:三一爐心;zh-tw:蓋特爐;" 81 | }, 82 | { 83 | "original": "プラズマ炉", 84 | "conv": "zh-hans:等离子炉;zh-hk:等離子爐心;zh-tw:電漿爐;" 85 | }, 86 | { 87 | "original": "プラズマ", 88 | "conv": "zh-cn:等离子; zh-tw:電漿; zh-hk:等離子;" 89 | }, 90 | { 91 | "original": "メタルビースト", 92 | "conv": "zh-cn:金属兽; zh-tw:金屬獸; zh-hk:鋼鐵獸;" 93 | } 94 | ] 95 | } -------------------------------------------------------------------------------- /data/cgroups/Hannibal Lecter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Hannibal Lecter", 3 | "description": "-{zh-cn:汉尼拔·莱克特; zh-tw:漢尼拔·萊克特}-", 4 | "path": "Template:CGroup/Hannibal Lecter", 5 | "rules": [ 6 | { 7 | "original": "Red Dragon", 8 | "conv": "zh-cn:红龙; zh-hant:紅色龍" 9 | }, 10 | { 11 | "original": "Hannibal", 12 | "conv": "zh-cn:汉尼拔; zh-hant:人魔" 13 | }, 14 | { 15 | "original": "Hannibal Rising", 16 | "conv": "zh-cn:汉尼拔崛起; zh-hant:人魔崛起" 17 | }, 18 | { 19 | "original": "Manhunter", 20 | "conv": "zh-hk:孽慾殺人夜; zh-tw:1987大懸案; zh-cn:孽欲杀人夜;" 21 | }, 22 | { 23 | "original": "Hannibal", 24 | "conv": "zh-hk:沉默的殺機;zh-cn:汉尼拔;zh-sg:人魔;zh-tw:人魔;" 25 | }, 26 | { 27 | "original": "Red Dragon", 28 | "conv": "zh-cn:红龙;zh-hk:沉默的赤龍;zh-tw:紅龍;" 29 | }, 30 | { 31 | "original": "Hannibal Rising", 32 | "conv": "zh-cn:少年汉尼拔;zh-hk:沉默的羔羊前傳之揭開罪幕;zh-sg:人魔崛起;zh-tw:人魔崛起;" 33 | }, 34 | { 35 | "original": "Hannibal Lecter", 36 | "conv": "zh-cn:汉尼拔·莱克特; zh-tw:漢尼拔·萊克特" 37 | }, 38 | { 39 | "original": "Hannibal", 40 | "conv": "zh-cn:汉尼拔;zh-hk:沉默的羔羊前傳;zh-tw:雙面人魔;zh-sg:人魔再起·HANNIAL;" 41 | }, 42 | { 43 | "original": "", 44 | "conv": "zh-hant:殺人魔;zh-hans:杀人魔;" 45 | }, 46 | { 47 | "original": "", 48 | "conv": "zh-hant:食人魔;zh-hans:食人魔;" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /data/cgroups/Hawaii Five-0.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Hawaii Five-0", 3 | "description": "天堂执法者", 4 | "path": "Module:CGroup/Hawaii Five-0", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-cn:天堂执法者; zh-hk:夏威夷探案; zh-tw:檀島警騎2.0;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-cn:史蒂芬·'史蒂夫'·麦格瑞特; zh-tw:史提夫·麥加雷; zh-hk:麥星帆;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:丹尼尔·'丹尼/丹诺'·威廉姆斯; zh-tw:丹尼·威廉斯; zh-hk:韋丹尼;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-cn:陈浩·凯利; zh-tw:金何·凱利; zh-hk:程何佳;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:科诺·卡拉克瓦; zh-tw:科諾·卡拉卡瓦; zh-hk:柯可娜;" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /data/cgroups/IE Places.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "IE Places", 3 | "description": "愛爾蘭地名", 4 | "path": "Module:CGroup/IE Places", 5 | "rules": [ 6 | { 7 | "original": "Chiarraí", 8 | "conv": "zh:凱里;zh-tw:克立;zh-cn:凯里;" 9 | }, 10 | { 11 | "original": "Dhún na nGall", 12 | "conv": "zh-hans:多尼戈尔; zh-hant:多尼戈爾; zh-tw:多尼哥;" 13 | }, 14 | { 15 | "original": "Fine Gall", 16 | "conv": "zh-cn:芬戈;zh-tw:芬加爾;" 17 | }, 18 | { 19 | "original": "Gaillimh", 20 | "conv": "zh-hant:戈爾韋;zh-tw:高威;zh-hk:高威;zh-hans:戈尔韦;" 21 | }, 22 | { 23 | "original": "Liatroma", 24 | "conv": "zh-hans:利特里姆;zh-hant:利特里姆;zh-tw:利特林;" 25 | }, 26 | { 27 | "original": "Leinster", 28 | "conv": "zh-hans:伦斯特;zh-hk:利揚;zh-tw:倫斯特;" 29 | }, 30 | { 31 | "original": "Loch Garman", 32 | "conv": "zh-cn:韦克斯福德; zh-tw:威克斯福; zh-hant:韋克斯福德;" 33 | }, 34 | { 35 | "original": "Luimneach", 36 | "conv": "zh-cn:利默里克; zh-tw:利麥立克;" 37 | }, 38 | { 39 | "original": "Port Láirge", 40 | "conv": "zh-hans:沃特福德; zh-tw:瓦特福; zh-hk:禾達福特;" 41 | }, 42 | { 43 | "original": "Thiobraid Árann", 44 | "conv": "zh-cn:蒂珀雷里;zh-tw:提伯雷立;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/IMF.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "IMF\n", 3 | "description": "碟中谍", 4 | "path": "Template:CGroup/IMF", 5 | "rules": [ 6 | { 7 | "original": "Mission: Impossible", 8 | "conv": "zh-cn:碟中谍; zh-hk:職業特工隊; zh-tw:不可能的任務; zh-sg:不可能的任务; zh-my:不可能的任务;" 9 | }, 10 | { 11 | "original": "Mission: Impossible – Ghost Protocol", 12 | "conv": "zh-cn:碟中谍4; zh-tw:不可能的任務:鬼影行動; zh-hk:職業特工隊:鬼影約章; zh-sg:不可能的任务:鬼影行动;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:鬼影約章; zh-tw:鬼影行動; zh-hk:鬼影約章; zh-sg:鬼影行动;" 17 | }, 18 | { 19 | "original": "Mission Impossible – Rogue Nation", 20 | "conv": "zh-cn:碟中谍5:神秘国度; zh-tw:不可能的任務:失控國度; zh-hk:職業特工隊:叛逆帝國; zh-sg:不可能的任务:失控国度;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:神秘国度; zh-tw:失控國度; zh-hk:叛逆帝國; zh-sg:失控国度;" 25 | }, 26 | { 27 | "original": "Mission Impossible – Rogue Nation", 28 | "conv": "zh-cn:碟中谍6:全面瓦解; zh-hk:職業特工隊:叛逆之謎; zh-tw:不可能的任務:全面瓦解; zh-sg:不可能的任务:全面瓦解;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-cn:全面瓦解; zh-tw:全面瓦解; zh-hk:叛逆之謎;" 33 | }, 34 | { 35 | "original": "Mission Impossible – Dead Reckoning Part One", 36 | "conv": "zh-tw:不可能的任務:致命清算 第一章; zh-sg:不可能的任务:致命清算 第一章; zh-my:不可能的任务:致命清算 第一章; zh-hk:職業特工隊:死亡清算上集; zh-cn:碟中谍7:致命清算(上);" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-tw:致命清算 第一章; zh-sg:致命清算 第一章; zh-my:致命清算 第一章; zh-hk:死亡清算上集; zh-cn:致命清算(上);" 41 | }, 42 | { 43 | "original": "Mission Impossible – Dead Reckoning Part Two", 44 | "conv": "zh-tw:不可能的任務:致命清算 第二章; zh-sg:不可能的任务:致命清算 第二章; zh-my:不可能的任务:致命清算 第二章; zh-hk:職業特工隊:死亡清算下集; zh-cn:碟中谍8:致命清算(下);" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-tw:致命清算 第二章; zh-sg:致命清算 第二章; zh-my:致命清算 第二章; zh-hk:死亡清算下集; zh-cn:致命清算(下);" 49 | }, 50 | { 51 | "original": "Tom Cruise", 52 | "conv": "zh-cn:汤姆·克鲁斯;zh-sg:汤姆·克鲁斯;zh-my:汤·告鲁斯;zh-hk:湯·告魯斯;zh-tw:湯姆·克魯斯;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-cn:伊森; zh-tw:伊森; zh-hk:伊頓" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-cn:亨特; zh-tw:韓特; zh-sg:杭特; zh-hk:亨特" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-tw:班吉; zh-hk:班治" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh-tw:伊爾莎; zh-hk:曉莎" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh-tw:福斯特; zh-hk:梵詩" 73 | }, 74 | { 75 | "original": null, 76 | "conv": "zh-tw:麥奎里; zh-hk:麥哥利; zh-cn:迈考利" 77 | } 78 | ] 79 | } -------------------------------------------------------------------------------- /data/cgroups/JLeague.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JLeague", 3 | "description": "日本職業足球聯賽", 4 | "path": "Template:CGroup/JLeague", 5 | "rules": [ 6 | { 7 | "original": "ベガルタ仙台", 8 | "conv": "zh:仙台七夕; zh-cn:仙台七夕; zh-tw:仙台七夕; zh-hk:仙台維加泰; zh-sg:仙台七夕; " 9 | }, 10 | { 11 | "original": "柏レイソル", 12 | "conv": "zh:柏太陽王; zh-hans:柏太阳王; zh-cn:柏太阳神; zh-hk:柏雷素爾; zh-hant:柏太陽王; zh-sg:柏太阳王; " 13 | }, 14 | { 15 | "original": "湘南ベルマーレ", 16 | "conv": "zh-hant:湘南美海; zh-hans:湘南美海; zh-hk:湘南比馬; " 17 | }, 18 | { 19 | "original": "ジュビロ磐田", 20 | "conv": "zh:磐田喜悦; zh-hans:磐田喜悦; zh-hant:磐田喜悅; zh-hk:磐田山葉 " 21 | }, 22 | { 23 | "original": "ガンバ大阪", 24 | "conv": "zh:大阪鋼巴; zh-cn:大阪钢巴; zh-tw:大阪飛腳; zh-hk:大阪飛腳; zh-sg:大阪飞脚; " 25 | }, 26 | { 27 | "original": "カマタマーレ讃岐", 28 | "conv": "zh:讚岐釜玉海; zh-hans:赞岐釜玉海; zh-hant:讚岐釜玉海; zh-tw:讚岐釜玉海; zh-hk:讚岐卡馬達馬尼 " 29 | }, 30 | { 31 | "original": "ロアッソ熊本", 32 | "conv": "zh:熊本罗亚素; zh-hans:熊本深红; zh-hk:熊本羅亞素; zh-mo:熊本深紅; zh-hant:熊本深紅; " 33 | }, 34 | { 35 | "original": "サガン鳥栖", 36 | "conv": "zh:鳥栖砂岩; zh-hans:鸟栖砂岩; zh-hk:鳥棲砂岩; zh-mo:鳥栖砂岩; zh-tw:鳥栖砂岩; " 37 | }, 38 | { 39 | "original": "FC東京", 40 | "conv": "zh:FC東京; zh-cn:东京FC; zh-tw:FC東京; zh-hk:FC東京; zh-sg:FC东京; " 41 | }, 42 | { 43 | "original": "ツエーゲン金沢", 44 | "conv": "zh-hans:金泽共进; zh-hk:金澤薩維根; zh-hant:金澤共進; " 45 | }, 46 | { 47 | "original": "アルテリーヴォ和歌山", 48 | "conv": "zh:和歌山藝術到達; zh-hans:和歌山艺术到达; zh-hant:和歌山藝術到達; " 49 | }, 50 | { 51 | "original": "AC長野パルセイロ", 52 | "conv": "zh:AC長野拍檔; zh-hans:AC长野拍档; zh-hant:AC長野拍檔; " 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/Justin Bieber.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Justin Bieber", 3 | "description": "Justin Bieber", 4 | "path": "Module:CGroup/Justin Bieber", 5 | "rules": [ 6 | { 7 | "original": "Justin Bieber", 8 | "conv": "zh-cn:贾斯汀·比伯 ;zh-hk:積斯汀·比伯 ;zh-tw:小賈斯汀; zh-my:小贾斯汀; zh-sg:贾斯汀·比伯;" 9 | }, 10 | { 11 | "original": "My World", 12 | "conv": "zh-cn:我的全世界; zh-hk:我的世界; zh-tw:我的全世界;" 13 | }, 14 | { 15 | "original": "One Time", 16 | "conv": "zh-cn:只说一次; zh-hk:一生一次; zh-tw:一生一次;" 17 | }, 18 | { 19 | "original": "Favorite Girl", 20 | "conv": "zh-cn:最爱的女孩; zh-hk:最愛女孩; zh-tw:最愛女孩;" 21 | }, 22 | { 23 | "original": "Down to Earth", 24 | "conv": "zh-cn:回到现实; zh-hk:返璞歸真; zh-tw:返璞歸真;" 25 | }, 26 | { 27 | "original": "One Less Lonely Girl", 28 | "conv": "zh-cn:少了个寂寞女孩; zh-hk:打敗寂寞; zh-tw:打敗寂寞;" 29 | }, 30 | { 31 | "original": "Purpose", 32 | "conv": "zh-cn:目标; zh-hk:我的決心; zh-tw:我的決心;" 33 | }, 34 | { 35 | "original": "I'll Show You", 36 | "conv": "zh-cn:给你看; zh-hk:秀出去; zh-tw:秀出去;" 37 | }, 38 | { 39 | "original": "No Sense", 40 | "conv": "zh-cn:无意义; zh-hk:無意識; zh-tw:無意識;" 41 | }, 42 | { 43 | "original": "The Feeling", 44 | "conv": "zh-cn:感觉; zh-hk:這個感覺; zh-tw:這個感覺;" 45 | }, 46 | { 47 | "original": "Life Is Worth Living", 48 | "conv": "zh-cn:体验生活; zh-hk:體驗人生; zh-tw:體驗人生;" 49 | }, 50 | { 51 | "original": "Children", 52 | "conv": "zh-cn:孩子; zh-hk:孩子們; zh-tw:孩子們;" 53 | }, 54 | { 55 | "original": "Been You", 56 | "conv": "zh-cn:是你; zh-hk:都是你; zh-tw:都是你;" 57 | }, 58 | { 59 | "original": "Get Used To Me", 60 | "conv": "zh-cn:习惯; zh-hk:習慣我; zh-tw:習慣我;" 61 | } 62 | ] 63 | } -------------------------------------------------------------------------------- /data/cgroups/Katy Perry.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Katy Perry", 3 | "description": "凯蒂·佩里", 4 | "path": "Template:CGroup/Katy Perry", 5 | "rules": [ 6 | { 7 | "original": "Katy Perry", 8 | "conv": "zh-cn:凯蒂·佩里;zh-sg:凯蒂·佩里;zh-hk:凱蒂·派瑞;zh-tw:凱蒂·佩芮;zh-my:凯蒂·佩芮" 9 | }, 10 | { 11 | "original": "Perry", 12 | "conv": "zh-cn:佩里;zh-sg:佩里;zh-hk:派瑞;zh-tw:佩芮;zh-my:佩芮;" 13 | }, 14 | { 15 | "original": "Prism", 16 | "conv": "zh-cn:棱镜;zh-hk:超炫光;zh-tw:超炫光;" 17 | }, 18 | { 19 | "original": "Roar", 20 | "conv": "zh-cn:怒吼;zh-hk:聽我吼;zh-tw:聽我吼;" 21 | }, 22 | { 23 | "original": "Walking On Air", 24 | "conv": "zh-cn:云中漫步;zh-hk:在空中漫步;zh-tw:在空中漫步;" 25 | }, 26 | { 27 | "original": "Unconditionally", 28 | "conv": "zh-cn:无条件;zh-hk:無條件愛你;zh-tw:無條件愛你;" 29 | }, 30 | { 31 | "original": "By The Grace Of God", 32 | "conv": "zh-cn:承蒙天恩;zh-hk:感謝上帝慈悲;zh-tw:感謝上帝慈悲;" 33 | }, 34 | { 35 | "original": "If We Ever Meet Again", 36 | "conv": "zh-cn:若得再相会;zh-hk:如果我們再相遇;zh-tw:如果我們再相遇;" 37 | }, 38 | { 39 | "original": "Shock Value II", 40 | "conv": "zh-cn:超级精选II;zh-hk:超級驚選2;zh-tw:超級驚選2;" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /data/cgroups/Korea Comparison.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Korea Comparison", 3 | "description": "-{zh-cn:朝韩;zh-tw:南北韓;}-", 4 | "path": "Module:CGroup/Korea Comparison", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-cn:朝鲜;zh-tw:北韓;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "朝鮮=>zh-hk:北韓;朝鮮=>zh-tw:北韓;朝鮮=>zh-mo:北韓;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:韩国;zh-tw:南韓;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "韓國=>zh-hk:南韓;韓國=>zh-mo:南韓;韓國=>zh-tw:南韓;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:韩方;zh-tw:韩方;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "韓方=>zh-hk:南韓方面;韓方=>zh-mo:南韓方面;韓方=>zh-tw:南韓方面;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-cn:对韩;zh-tw:對南韓;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "對韓=>zh-tw:對南韓;對韓=>zh-hk:對南韓;對韓=>zh-mo:對南韓;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-cn:韩裔;zh-tw:南韓裔;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "韓裔=>zh-hk:南韓裔;韓裔=>zh-mo:南韓裔;韓裔=>zh-tw:南韓裔;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/Korean.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Korean", 3 | "description": "朝鮮半島", 4 | "path": "Template:CGroup/Korean", 5 | "rules": [ 6 | { 7 | "original": "North Korea", 8 | "conv": "zh-cn:北朝鲜;zh-tw:北韓;zh-hk:北韓" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-cn:朝鲜;zh-tw:北韓;zh-hk:北韓" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:南朝鲜;zh-tw:南韓;zh-hk:南韓" 17 | }, 18 | { 19 | "original": "조선민주주의인민공화국", 20 | "conv": "zh-cn:朝鲜民主主义人民共和国;zh-tw:朝鮮民主主義人民共和國" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/LEGO.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LEGO ", 3 | "description": "乐高", 4 | "path": "Template:CGroup/LEGO", 5 | "rules": [ 6 | { 7 | "original": "Galaxy Squad", 8 | "conv": "zh-hant:銀河爭奪戰; zh-hans:银河别动队" 9 | }, 10 | { 11 | "original": "Indiana Jones", 12 | "conv": "zh-tw:印地安納瓊斯; zh-hk:奪寶奇兵; zh-cn:夺宝奇兵" 13 | }, 14 | { 15 | "original": "Legends of Chima", 16 | "conv": "zh-hant:神獸傳奇; zh-hans:气功传奇" 17 | }, 18 | { 19 | "original": "Minifigure", 20 | "conv": "zh-hant:人物系列; zh-hans:小人仔系列" 21 | }, 22 | { 23 | "original": "Modular Buildings", 24 | "conv": "zh-hant:模組屋; zh-hans:街景" 25 | }, 26 | { 27 | "original": "Ninjago", 28 | "conv": "zh-hant:旋風忍者; zh-hans:幻影忍者" 29 | }, 30 | { 31 | "original": "plastic", 32 | "conv": "zh-hant:塑膠; zh-hans:塑料" 33 | }, 34 | { 35 | "original": "Spider-Man", 36 | "conv": "zh-hant:蜘蛛人; zh-hans:蜘蛛侠" 37 | }, 38 | { 39 | "original": "Star Wars", 40 | "conv": "zh-hant:星際大戰; zh-hans:星球大战" 41 | }, 42 | { 43 | "original": "Technic", 44 | "conv": "zh-hant:科技系列; zh-hans:机械组系列" 45 | }, 46 | { 47 | "original": "The Lego Movie", 48 | "conv": "zh-tw:樂高玩電影; zh-hk:LEGO英雄傳; zh-cn:乐高大电影" 49 | }, 50 | { 51 | "original": "Toy Story", 52 | "conv": "zh-hant:反斗奇兵; zh-hans:玩具总动员" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/Laos.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Laos", 3 | "description": "-{zh-cn:老挝; zh-tw:寮國; zh-hk:老撾; zh-sg:寮国;}-", 4 | "path": "Template:CGroup/Laos", 5 | "rules": [ 6 | { 7 | "original": "Laos", 8 | "conv": "zh-cn:老挝; zh-tw:寮國; zh-hk:老撾; zh-sg:寮国;" 9 | }, 10 | { 11 | "original": "Lao People's Democratic Republic", 12 | "conv": "zh-cn:老挝人民民主共和国; zh-tw:寮人民民主共和國; zh-hk:老撾人民民主共和國; zh-sg:寮人民民主共和国;" 13 | }, 14 | { 15 | "original": "Kingdom of Laos", 16 | "conv": "zh-cn:老挝王国; zh-tw:寮王國; zh-hk:老撾王國;zh-sg:寮王国;" 17 | }, 18 | { 19 | "original": "Protectorate of Laos", 20 | "conv": "zh-cn:老挝保护国; zh-tw:寮保護國; zh-hk:老撾保護國;zh-sg:寮保护国;" 21 | }, 22 | { 23 | "original": "French Protectorate of Laos", 24 | "conv": "zh-cn:老挝法国保护国; zh-tw:寮法國保護國; zh-hk:老撾法國保護國;zh-sg:寮法国保护国;" 25 | }, 26 | { 27 | "original": "Lao", 28 | "conv": "zh-cn:老挝语; zh-tw:寮語; zh-hk:老撾語; zh-sg:寮语;" 29 | }, 30 | { 31 | "original": "Vientiane", 32 | "conv": "zh-cn:万象; zh-tw:永珍; zh-hk:萬象; zh-sg:永珍;" 33 | }, 34 | { 35 | "original": "Lao alphabet", 36 | "conv": "zh-cn:老挝文; zh-tw:寮文; zh-hk:老撾文; zh-sg:寮文;" 37 | }, 38 | { 39 | "original": "Pathet Lao", 40 | "conv": "zh-cn:巴特寮; zh-tw:巴特寮; zh-hk:巴特寮; zh-sg:巴特寮" 41 | }, 42 | { 43 | "original": "Lao nation", 44 | "conv": "zh-cn:老挝国; zh-tw:寮國; zh-hk:老撾國; zh-sg:寮国" 45 | }, 46 | { 47 | "original": "Emblem of Laos", 48 | "conv": "zh-cn:老挝国徽; zh-tw:寮國國徽; zh-hk:老撾國徽; zh-sg:寮国国徽" 49 | }, 50 | { 51 | "original": "Flag of Laos", 52 | "conv": "zh-cn:老挝国旗; zh-tw:寮國國旗; zh-hk:老撾國旗; zh-sg:寮国国旗" 53 | }, 54 | { 55 | "original": "National Anthem of Laos", 56 | "conv": "zh-cn:老挝国歌; zh-tw:寮國國歌; zh-hk:老撾國歌; zh-sg:寮国国歌" 57 | } 58 | ] 59 | } -------------------------------------------------------------------------------- /data/cgroups/Legend of the Guardians.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Legend of the Guardians", 3 | "description": "-{zh-cn:猫头鹰王国:守卫者传奇;zh-hant:貓頭鷹守護神;zh-cn:猫头鹰王国:守卫者传奇;zh-hk:守護神傳奇;zh-sg:猫头鹰守护神;zh-tw:貓頭鷹守護神;}-", 4 | "path": "Template:CGroup/Legend of the Guardians", 5 | "rules": [ 6 | { 7 | "original": "Legend of the Guardians", 8 | "conv": "zh-cn:猫头鹰王国:守卫者传奇;zh-hk:守護神傳奇;zh-sg:猫头鹰守护神;zh-tw:貓頭鷹守護神;" 9 | }, 10 | { 11 | "original": "Ga'Hoole", 12 | "conv": "zh-cn:珈瑚;zh-tw:蓋胡;" 13 | }, 14 | { 15 | "original": "Great Ga'Hoole Tree", 16 | "conv": "zh-cn:珈瑚巨树;zh-tw:蓋胡神木" 17 | }, 18 | { 19 | "original": "St. Aggies", 20 | "conv": "zh-cn:圣灵鸮;zh-tw:聖鬼鴞" 21 | }, 22 | { 23 | "original": "St. Aegolius Academy of Orphaned Owls", 24 | "conv": "zh-cn:圣灵鸮猫头鹰孤儿院;zh-tw:聖鬼鴞學院" 25 | }, 26 | { 27 | "original": "Soren", 28 | "conv": "zh-cn:赛林;zh-tw:索倫" 29 | }, 30 | { 31 | "original": "Kludd", 32 | "conv": "zh-cn:昆郎;zh-tw:昆郎" 33 | }, 34 | { 35 | "original": "Gylfie", 36 | "conv": "zh-cn:吉菲;zh-tw:吉菲" 37 | }, 38 | { 39 | "original": "Eglantine", 40 | "conv": "zh-cn:伊兰;zh-tw:小薇" 41 | }, 42 | { 43 | "original": "Nyra", 44 | "conv": "zh-cn:妮拉;zh-tw:奈拉" 45 | }, 46 | { 47 | "original": "Grimble", 48 | "conv": "zh-cn:格林布尔;zh-tw:孤伶包" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /data/cgroups/Les Misérables.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Les Misérables", 3 | "description": "Les Misérables", 4 | "path": "Module:CGroup/Les Misérables", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hans:悲惨世界; zh-hant:悲慘世界; zh-cn:悲惨世界; zh-tw:悲慘世界; zh-hk:孤星淚; zh-mo:孤星淚; zh-my:悲惨世界; zh-sg:悲惨世界;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-hans:冉阿让;zh-hk:鏘·巴路鏘;zh-tw:尚萬強;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-hans:米里哀;zh-hk:米里艾爾;zh-tw:米里艾;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-hans:芳汀;zh-hk:法天妮;zh-tw:傅安婷;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-tw:賈維爾;zh-hans:沙威;zh-hk:薩比盧" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-hans:德纳第;zh-hk:狄納路汀;zh-tw:泰納第;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-hans:马吕斯;zh-hk:馬利斯;zh-tw:馬留斯;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-hans:彭眉胥;zh-hk:龐麥路士;zh-tw:彭梅西;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-hans:爱潘妮;zh-hk:艾寶妮;zh-tw:愛波寧;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-hans:安灼拉;zh-hk:安東尼拉斯;zh-tw:恩佐拉;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-hans:阿兹玛;zh-hk:亞西瑪;zh-tw:雅潔瑪;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-hans:伽弗洛什;zh-hk:卡比勞斯;zh-tw:加夫洛許;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-hans:珂赛特;zh-hk:科斯迪;zh-tw:珂賽特;" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-hans:马德兰;zh-hk:馬特尼路;zh-tw:馬德廉;" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-tw:蒙費梅伊;zh-cn:蒙费梅伊;zh-hk:蒙菲爾美殊" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh-tw:濱海蒙特勒伊;zh-cn:滨海蒙特勒伊;zh-hk:蒙特路哥切路美路" 69 | }, 70 | { 71 | "original": null, 72 | "conv": "zh-hans:公白飞;zh-hk:弓浦菲爾;zh-tw:康布菲爾;" 73 | }, 74 | { 75 | "original": null, 76 | "conv": "zh-hans:勃鲁维尔;zh-hk:布魯比爾;zh-tw:普魯維爾;" 77 | }, 78 | { 79 | "original": null, 80 | "conv": "zh-hans:格朗泰尔;zh-hk:富拉迪爾;zh-tw:格蘭泰爾;" 81 | }, 82 | { 83 | "original": null, 84 | "conv": "zh-hant:蒙帕納斯;zh-hans:蒙帕纳斯;zh-hk:蒙帕立斯" 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/Linguistics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Linguistics", 3 | "description": "語言學", 4 | "path": "Module:CGroup/Linguistics", 5 | "rules": [ 6 | { 7 | "original": "Morpheme", 8 | "conv": "zh-cn:语素; zh-tw:詞素;" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /data/cgroups/Lorde.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Lorde", 3 | "description": "Lorde", 4 | "path": "Template:CGroup/Lorde", 5 | "rules": [ 6 | { 7 | "original": "400 Lux", 8 | "conv": "zh-hans:400勒克斯; zh-hk:400照度; zh-tw:400照度;" 9 | }, 10 | { 11 | "original": "A World Alone", 12 | "conv": "zh-cn:独占世界; zh-hk:寂寞世界; zh-tw:寂寞世界;" 13 | }, 14 | { 15 | "original": "Buzzcut Season", 16 | "conv": "zh-cn:板寸时代; zh-hk:平頭的季節; zh-tw:平頭的季節;" 17 | }, 18 | { 19 | "original": "Glory and Gore", 20 | "conv": "zh-cn:荣耀与伤痕; zh-hk:榮耀與創傷; zh-tw:榮耀與創傷;" 21 | }, 22 | { 23 | "original": "Green Light", 24 | "conv": "zh-cn:绿灯; zh-hk:綠光; zh-tw:綠光;" 25 | }, 26 | { 27 | "original": "Homemade Dynamite", 28 | "conv": "zh-cn:自创劲歌; zh-hk:土製炸彈; zh-tw:土製炸彈;" 29 | }, 30 | { 31 | "original": "Hard Feelings/Loveless", 32 | "conv": "zh-cn:怨恨/无爱; zh-hk:慟/無愛; zh-tw:慟/無愛;" 33 | }, 34 | { 35 | "original": "Lorde", 36 | "conv": "zh-cn:洛德; zh-hk:蘿兒; zh-tw:蘿兒;" 37 | }, 38 | { 39 | "original": "The Louvre", 40 | "conv": "zh-cn:卢浮宫; zh-hk:羅浮宮; zh-tw:羅浮宮;" 41 | }, 42 | { 43 | "original": "Liability (Reprise)", 44 | "conv": "zh-cn:负担(重奏版); zh-hk:負擔 (重奏版); zh-tw:負擔 (重奏版);" 45 | }, 46 | { 47 | "original": "Pure Heroine", 48 | "conv": "zh-cn:纯粹女英雄; zh-hk:天生英雌; zh-tw:天生英雌;" 49 | }, 50 | { 51 | "original": "Perfect Places", 52 | "conv": "zh-cn:完美之地; zh-hk:完美境界; zh-tw:完美境界;" 53 | }, 54 | { 55 | "original": "Royals", 56 | "conv": "zh-cn:贵族; zh-hk:貴族; zh-tw:貴族;" 57 | }, 58 | { 59 | "original": "Ribs", 60 | "conv": "zh-cn:肋骨; zh-hk:肋骨; zh-tw:肋骨;" 61 | }, 62 | { 63 | "original": "Still Sane", 64 | "conv": "zh-cn:依然清醒; zh-hk:清醒; zh-tw:清醒;" 65 | }, 66 | { 67 | "original": "Sober II (Melodrama)", 68 | "conv": "zh-cn:清醒2(情景剧); zh-hk:清醒 二部曲; zh-tw:清醒 二部曲;" 69 | }, 70 | { 71 | "original": "Team", 72 | "conv": "zh-cn:团队; zh-hk:你還有我; zh-tw:你還有我;" 73 | }, 74 | { 75 | "original": "Tennis Court", 76 | "conv": "zh-cn:网球场; zh-hk:網球場; zh-tw:網球場;" 77 | }, 78 | { 79 | "original": "White Teeth Teens", 80 | "conv": "zh-cn:白牙少年; zh-hk:唇紅齒白; zh-tw:唇紅齒白;" 81 | } 82 | ] 83 | } -------------------------------------------------------------------------------- /data/cgroups/Mariah Carey.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mariah Carey", 3 | "description": "Mariah Carey", 4 | "path": "Template:CGroup/Mariah Carey", 5 | "rules": [ 6 | { 7 | "original": "All I Want for Christmas Is You", 8 | "conv": "zh-cn:要的就是你;zh-tw:你是我最想要的聖誕禮物" 9 | }, 10 | { 11 | "original": "E=MC²", 12 | "conv": "zh-cn:爱的相对论;zh-tw:蝴蝶效應" 13 | }, 14 | { 15 | "original": "The Emancipation of Mimi", 16 | "conv": "zh-cn:我心无羁;zh-tw:天后再臨-解放咪咪" 17 | }, 18 | { 19 | "original": "Me. I Am Mariah... The Elusive Chanteuse", 20 | "conv": "zh-cn:真我·心声;zh-tw:聽我...歌情萬種" 21 | }, 22 | { 23 | "original": "Merry Christmas", 24 | "conv": "zh-cn:圣诞快乐;zh-tw:祝福" 25 | }, 26 | { 27 | "original": "Merry Christmas II You", 28 | "conv": "zh-cn:祝福之歌;zh-tw:祝你聖誕快樂" 29 | }, 30 | { 31 | "original": "#1 to Infinity", 32 | "conv": "zh-cn:星光无限;zh-tw:真愛永恆" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /data/cgroups/MarvelNetflix.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MarvelNetflix", 3 | "description": "漫威Netflix系列", 4 | "path": "Template:CGroup/MarvelNetflix", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hant:米徹;zh-hans:米查姆" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /data/cgroups/Michael Jackson.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Michael Jackson", 3 | "description": "Michael Jackson", 4 | "path": "Template:CGroup/Michael Jackson", 5 | "rules": [ 6 | { 7 | "original": "Butterflies", 8 | "conv": "zh-cn:意乱情迷; zh-tw:心花怒放; zh-hk:心花怒放;" 9 | }, 10 | { 11 | "original": "Don't walk away", 12 | "conv": "zh-cn:不要离去; zh-tw:一走了之; zh-hk:一走了之;" 13 | }, 14 | { 15 | "original": "Heartbreaker", 16 | "conv": "zh-cn:令人心碎的女孩; zh-tw:愛情殺手; zh-hk:愛情殺手;" 17 | }, 18 | { 19 | "original": "Invincible", 20 | "conv": "zh-cn:天下无敌; zh-tw:萬夫莫敵; zh-hk:萬夫莫敵;" 21 | }, 22 | { 23 | "original": "Speechless", 24 | "conv": "zh-cn:无言; zh-tw:啞口無言; zh-hk:啞口無言;" 25 | }, 26 | { 27 | "original": "Unbreakable", 28 | "conv": "zh-cn:无敌; zh-tw:無敵之尊; zh-hk:無敵至尊;" 29 | }, 30 | { 31 | "original": "Whatever happens", 32 | "conv": "zh-cn:不论发生什么; zh-tw:患難見真情; zh-hk:患難見真情;" 33 | }, 34 | { 35 | "original": "You are my life", 36 | "conv": "zh-hans:你是我的生命; zh-hk:你是我的一生; zh-tw:你是我的一生;" 37 | }, 38 | { 39 | "original": "You rock my world", 40 | "conv": "zh-hans:你摇滚我的世界; zh-hk:天旋地轉; zh-tw:天旋地轉;" 41 | } 42 | ] 43 | } -------------------------------------------------------------------------------- /data/cgroups/MigTest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "MigTest", 3 | "description": "Migration Test", 4 | "path": "Module:CGroup/MigTest", 5 | "rules": [ 6 | { 7 | "original": "", 8 | "conv": "zh-cn:test;zh-tw:TEST" 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /data/cgroups/PHL Places.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PHL Places", 3 | "description": "菲律宾地名", 4 | "path": "Module:CGroup/PHL Places", 5 | "rules": [ 6 | { 7 | "original": "Babuyan", 8 | "conv": "zh-cn:巴布延; zh-tw:巴布煙" 9 | }, 10 | { 11 | "original": "Balintang", 12 | "conv": "zh-cn:巴林塘; zh-tw:巴林坦" 13 | }, 14 | { 15 | "original": "Bulacan", 16 | "conv": "zh-cn:布拉卡; zh-hk:比立勤; zh-tw:布拉干" 17 | }, 18 | { 19 | "original": "Cagayan", 20 | "conv": "zh-cn:卡加延; zh-tw:卡加煙" 21 | }, 22 | { 23 | "original": "Camarines", 24 | "conv": "zh-cn:甘马粦; zh-hk:甘馬粦; zh-tw:甘馬仁" 25 | }, 26 | { 27 | "original": "Cebu", 28 | "conv": "zh-cn:宿务; zh-hk:宿霧; zh-tw:宿霧" 29 | }, 30 | { 31 | "original": "Lungsod ng Dabaw", 32 | "conv": "zh-cn:达沃市; zh-hk:達沃市; zh-tw:納卯市" 33 | }, 34 | { 35 | "original": "Iloilo", 36 | "conv": "zh-cn:伊洛伊洛; zh-hk:依路; zh-tw:怡朗" 37 | }, 38 | { 39 | "original": "Leyte", 40 | "conv": "zh-cn:莱特省; zh-hk:雷伊泰省; zh-tw:雷伊泰省" 41 | }, 42 | { 43 | "original": "Pulo ng Leyte", 44 | "conv": "zh-cn:莱特岛; zh-hk:雷伊泰島; zh-tw:雷伊泰島" 45 | }, 46 | { 47 | "original": "Golpo ng Leyte", 48 | "conv": "zh-cn:莱特湾; zh-hk:雷伊泰灣; zh-tw:雷伊泰灣" 49 | }, 50 | { 51 | "original": "Makati", 52 | "conv": "zh-cn:马卡蒂; zh-hk:馬卡迪; zh-tw:馬卡蒂" 53 | }, 54 | { 55 | "original": "Mindanao", 56 | "conv": "zh-cn:棉兰老; zh-hk:棉蘭老; zh-tw:民答那峨" 57 | }, 58 | { 59 | "original": "Paliparang Pandaigdig ng Ninoy Aquino", 60 | "conv": "zh-cn:尼诺伊·阿基诺国际机场; zh-hk:尼諾伊·亞基諾國際機場; zh-tw:尼諾伊·艾奎諾國際機場" 61 | }, 62 | { 63 | "original": "Kabisay-an", 64 | "conv": "zh-cn:米沙鄢; zh-hk:維薩亞斯; zh-tw:米沙鄢" 65 | }, 66 | { 67 | "original": "General Santos", 68 | "conv": "zh-cn:桑托斯将军城; zh-hk:三投斯將軍市; zh-tw:三投斯將軍市" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /data/cgroups/Percy Jackson.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Percy Jackson", 3 | "description": "波西傑克森", 4 | "path": "Template:CGroup/Percy Jackson", 5 | "rules": [ 6 | { 7 | "original": "Percy Jackson", 8 | "conv": "zh-tw:波西傑克森;zh-hk:波西傑克森;zh-sg:波西杰克森;zh-cn:波西·杰克逊;" 9 | }, 10 | { 11 | "original": "The Lightning Thief", 12 | "conv": "zh-tw:神火之賊;zh-hk:神火之賊;zh-sg:神火之贼;zh-cn:神火之盗;" 13 | }, 14 | { 15 | "original": "The Sea of Monster", 16 | "conv": "zh-tw:妖魔之海;zh-hk:妖魔之海;zh-sg:妖魔之海;zh-cn:魔兽之海;" 17 | }, 18 | { 19 | "original": "The Titan's Curse", 20 | "conv": "zh-tw:泰坦魔咒; zh-hk:泰坦魔咒;zh-cn:巨神之咒;" 21 | }, 22 | { 23 | "original": "The Battle of the Labyrinth", 24 | "conv": "zh-tw:迷宮戰場; zh-hk:迷宮戰場;zh-cn:迷宫之战;" 25 | }, 26 | { 27 | "original": "The Last Olympian", 28 | "conv": "zh-tw:終極天神;zh-hk:終極天神;zh-cn:最终之神;" 29 | }, 30 | { 31 | "original": "The Lost Hero", 32 | "conv": "zh-tw:迷路英雄; zh-cn:失落的英雄;" 33 | }, 34 | { 35 | "original": "The Son of Neptune", 36 | "conv": "zh-tw:海神之子; zh-cn:海神之子;" 37 | }, 38 | { 39 | "original": "The Mark of Athena", 40 | "conv": "zh-tw:智慧印記; zh-cn:雅典娜之印;" 41 | }, 42 | { 43 | "original": "The house of the Hades", 44 | "conv": "zh-tw:冥王之府; zh-cn:决战冥王圣殿;" 45 | }, 46 | { 47 | "original": "The Blood Of Olympus", 48 | "conv": "zh-tw:英雄之血; zh-cn:奥林匹斯之血;" 49 | }, 50 | { 51 | "original": "Percy Jackson & the Olympians: The Lightning Thief", 52 | "conv": "zh-tw:波西傑克森:神火之賊;zh-hk:波西傑克森:神火之賊;zh-sg:波西杰克森:神火之贼;zh-cn:波西·杰克逊与神火之盗;" 53 | }, 54 | { 55 | "original": "Percy Jackson: Sea of Monsters", 56 | "conv": "zh-tw:波西傑克森:妖魔之海;zh-hk:波西傑克森:妖魔之海;zh-sg:波西杰克森:妖魔之海;zh-cn:波西·杰克逊与魔兽之海;" 57 | }, 58 | { 59 | "original": "Percy Jackson: The Titan's Curse", 60 | "conv": "zh-tw:波西傑克森:泰坦魔咒;zh-hk:波西傑克森:泰坦魔咒;zh-cn:波西·杰克逊与巨神之咒;" 61 | }, 62 | { 63 | "original": "Percy Jackson: The Battle of the Labyrinth", 64 | "conv": "zh-tw:波西傑克森:迷宮戰場; zh-hk:波西傑克森:迷宮戰場;zh-cn:波西·杰克逊与迷宫之战;" 65 | }, 66 | { 67 | "original": "Percy Jackson: The Last Olympian", 68 | "conv": "zh-tw:波西傑克森:終極天神;zh-hk:波西傑克森:終極天神;zh-cn:波西·杰克逊与最终之神;" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /data/cgroups/Philosophy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Philosophy", 3 | "description": "哲学", 4 | "path": "Module:CGroup/Philosophy", 5 | "rules": [ 6 | { 7 | "original": "Camus", 8 | "conv": "zh-cn:加缪;zh-tw:卡繆;zh-hk:卡繆;" 9 | }, 10 | { 11 | "original": "Lacan", 12 | "conv": "zh-cn:拉康;zh-tw:拉岡;zh-hk:拉岡;" 13 | }, 14 | { 15 | "original": "Sartre, Jean-Paul", 16 | "conv": "zh-cn:萨特;zh-tw:沙特;zh-hk:沙特;" 17 | }, 18 | { 19 | "original": "Althusser", 20 | "conv": "zh-cn:阿尔都塞;zh-tw:阿圖塞;zh-hk:阿圖塞;" 21 | }, 22 | { 23 | "original": "Wittgenstein", 24 | "conv": "zh-cn:维特根斯坦;zh-tw:維特根斯坦;zh-hk:維根斯坦;" 25 | }, 26 | { 27 | "original": "Spinoza", 28 | "conv": "zh-cn:斯宾诺莎; zh-tw:斯賓諾莎; zh-hk:史賓諾沙;" 29 | }, 30 | { 31 | "original": "Ἐπίκουρος", 32 | "conv": "zh-cn:伊壁鸠鲁; zh-tw:伊比鳩魯;" 33 | }, 34 | { 35 | "original": "Eucken", 36 | "conv": "zh-cn:奥伊肯; zh-tw:倭鏗;" 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /data/cgroups/Photography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Photography", 3 | "description": "摄影", 4 | "path": "Module:CGroup/Photography", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hans:图象;zh-hant:影像;zh-cn:图像;zh-tw:圖像;zh-hk:影像;zh-sg:图象;zh-mo:影像;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-hans:像素;zh-hant:像素;zh-cn:像素;zh-tw:畫素;zh-hk:像素;zh-sg:像素;zh-my:像素;zh-mo:像素;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-hans:数码;zh-hant:數位;zh-cn:数码;zh-tw:數位;zh-hk:數碼;zh-sg:数码;zh-my:数码;zh-mo:數碼;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-hant:品質;zh-cn:质量;zh-tw:品質;zh-hk:質素;zh-sg:品质;zh-my:品质;zh-mo:質素;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-hans:单反;zh-hant:單反;zh-cn:单反;zh-tw:單眼;zh-hk:單反;zh-sg:单反;zh-mo:單反;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-hans:单反相机;zh-hant:單反相機;zh-cn:单反相机;zh-tw:單眼相機;zh-hk:單反相機;zh-sg:单反相机;zh-mo:單反相機;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh:数字照相机;zh-hant:數碼照相機;zh-cn:数码照相机;zh-tw:數位照相機;zh-hk:數碼相機;zh-sg:数码照相机;zh-my:数码相机;zh-mo:數碼相機;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh:数字相机;zh-hans:数码相机;zh-hant:數碼相機;zh-cn:数码相机;zh-tw:數位相機;zh-hk:數碼相機;zh-sg:数码相机;zh-my:数码相机;zh-mo:數碼相機;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-hans:数码单镜反光相机;zh-hant:數碼單鏡反光相機;zh-cn:数码单镜反光相机;zh-tw:數位單眼相機;zh-hk:數碼單鏡反光機;zh-sg:数码单镜反光相机;zh-mo:數碼單鏡反光機;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-hans:数码相机背;zh-hant:數位機背;zh-cn:数码相机背;zh-tw:數位機背;zh-hk:數碼機背;zh-sg:数码相机背;zh-mo:數碼機背;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh:膠卷;zh-hant:底片卷;zh-cn:胶卷;zh-tw:底片卷;zh-hk:菲林卷;zh-sg:菲林卷;zh-my:菲林卷;zh-mo:菲林卷;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-hans:取景器;zh-hant:取景器;zh-cn:取景器;zh-tw:觀景窗;zh-hk:取景器;zh-sg:取景器;zh-mo:取景器;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh:尼康;zh-hans:尼康;zh-hant:尼康;zh-cn:尼康;zh-tw:尼康;zh-hk:藝康;zh-sg:尼康;zh-mo:藝康;" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh:索尼;zh-hans:索尼;zh-hant:索尼;zh-cn:索尼;zh-tw:索尼;zh-hk:新力;zh-sg:索尼;zh-mo:新力;" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh:宾得;zh-hans:宾得;zh-hant:賓得;zh-cn:宾得;zh-tw:賓得士;zh-hk:賓得;zh-sg:宾得;zh-mo:賓得;" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh:卡西欧;zh-hans:卡西欧;zh-hant:卡西歐;zh-cn:卡西欧;zh-tw:卡西歐;zh-hk:金石牌;zh-sg:卡西欧;zh-mo:金石牌;" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /data/cgroups/Pinnacle Islands.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Pinnacle Islands", 3 | "description": "-{zh-cn:钓鱼岛;zh-tw:釣魚臺;zh-hk:釣魚台;}-", 4 | "path": "Module:CGroup/Pinnacle Islands", 5 | "rules": [ 6 | { 7 | "original": "Tiaoyutai/Diaoyutai/Diaoyu Dao", 8 | "conv": "zh-cn:钓鱼岛;zh-tw:釣魚臺;zh-hk:釣魚台;" 9 | }, 10 | { 11 | "original": "Pinnacle Islands", 12 | "conv": "zh-cn:钓鱼岛及其附属岛屿;zh-tw:釣魚臺列嶼;zh-hk:釣魚台及其附屬島嶼;" 13 | }, 14 | { 15 | "original": "Pinnacle Islands", 16 | "conv": "zh:釣魚台列嶼;zh-cn:钓鱼岛及其附属岛屿;zh-tw:釣魚臺列嶼;zh-hk:釣魚台及其附屬島嶼;" 17 | }, 18 | { 19 | "original": "Chongbeiyan/Bei Yu", 20 | "conv": "zh-cn:北屿;zh-tw:沖北岩;zh-hk:北嶼;" 21 | }, 22 | { 23 | "original": "Chongnanyan/Nan Yu", 24 | "conv": "zh-cn:南屿;zh-tw:沖南岩;zh-hk:南嶼;" 25 | }, 26 | { 27 | "original": "Tobise/Feilai/Fei Yu", 28 | "conv": "zh-cn:飞屿;zh-tw:飛瀨;zh-hk:飛嶼;" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/cgroups/RainbowSixSiege.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "RainbowSixSiege", 3 | "description": "-{zh-cn:彩虹六号:围攻; zh-tw:虹彩六號:圍攻行動; }-", 4 | "path": "Module:CGroup/RainbowSixSiege", 5 | "rules": [ 6 | { 7 | "original": "Rainbow Six", 8 | "conv": "zh-cn:彩虹六号; zh-tw:虹彩六號;" 9 | }, 10 | { 11 | "original": "Rainbow Six: Siege", 12 | "conv": "zh-cn:彩虹六号:围攻; zh-tw:虹彩六號:圍攻行動;" 13 | }, 14 | { 15 | "original": "Operation Skull Rain", 16 | "conv": "zh-cn:骷髅雨行动; zh-tw:骷顱雨行動;" 17 | }, 18 | { 19 | "original": "Operation Health", 20 | "conv": "zh-cn:健康行动; zh-tw:健檢行動;" 21 | }, 22 | { 23 | "original": "Operation White Noise", 24 | "conv": "zh-cn:白噪声行动; zh-tw:白雜訊行動;" 25 | }, 26 | { 27 | "original": "Operation Chimera", 28 | "conv": "zh-cn:奇美拉行动; zh-tw:嵌合體行動;" 29 | }, 30 | { 31 | "original": "Operation Ember Rise", 32 | "conv": "zh-cn:余烬重燃行动; zh-tw:復燃行動;" 33 | }, 34 | { 35 | "original": "Black Eye", 36 | "conv": "zh-cn:黑眼; zh-tw:闇眼;" 37 | }, 38 | { 39 | "original": "Black Mirror", 40 | "conv": "zh-cn:黑镜; zh-tw:闇鏡;" 41 | }, 42 | { 43 | "original": "", 44 | "conv": "zh-cn:移动追踪设备; zh-tw:行動追跡設備; zh-hk:流動追踪設備; zh-cn:移动追踪设备; zh-my:移动追踪设备; zh-sg:移动追踪设备; zh-mo:流動追踪設備;" 45 | }, 46 | { 47 | "original": "", 48 | "conv": "zh-cn:病毒入侵设备; zh-tw:病毒駭入設備;" 49 | }, 50 | { 51 | "original": "", 52 | "conv": "zh-cn:激光攻击摄影机; zh-sg:镭射攻击摄影机; zh-my:镭射攻击摄影机; zh-hk:鐳射攻擊攝影機; zh-mo:激光攻擊攝影機; zh-tw:雷射攻擊攝影機;" 53 | }, 54 | { 55 | "original": "Casual", 56 | "conv": "zh-cn:非正式战; zh-tw:休閒;" 57 | }, 58 | { 59 | "original": "Local", 60 | "conv": "zh-cn:本地网络; zh-tw:區域網路;" 61 | }, 62 | { 63 | "original": "Online", 64 | "conv": "zh-cn:在线; zh-tw:線上;" 65 | }, 66 | { 67 | "original": "Outbreak", 68 | "conv": "zh-cn:爆发模式; zh-tw:災變模式;" 69 | }, 70 | { 71 | "original": "Custom Game", 72 | "conv": "zh-cn:自订模式; zh-tw:自訂模式;" 73 | }, 74 | { 75 | "original": "Matchmaking", 76 | "conv": "zh-cn:匹配竞赛; zh-tw:配對競賽;" 77 | }, 78 | { 79 | "original": "customize", 80 | "conv": "zh-cn:自定义; zh-tw:客製化;" 81 | }, 82 | { 83 | "original": "boom-man", 84 | "conv": "zh-cn:自爆兵; zh-tw:自殺炸彈客;" 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/SARS-CoV-2 variant.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SARS-CoV-2 variant", 3 | "description": "SARS-CoV-2变异株", 4 | "path": "Module:CGroup/SARS-CoV-2 variant", 5 | "rules": [ 6 | { 7 | "original": "Alpha", 8 | "conv": "zh-cn:阿尔法; zh-hk:Alpha; zh-tw: Alpha; zh-sg: Alpha;" 9 | }, 10 | { 11 | "original": "Beta", 12 | "conv": "zh-cn:贝塔; zh-hk: Beta; zh-tw:Beta; zh-sg:Beta;" 13 | }, 14 | { 15 | "original": "Gamma", 16 | "conv": "zh-cn:伽马; zh-hk:Gamma; zh-tw:Gamma; zh-sg:Gamma;" 17 | }, 18 | { 19 | "original": "Delta", 20 | "conv": "zh-cn:德尔塔; zh-hk:Delta; zh-tw:Delta; zh-sg:Delta;" 21 | }, 22 | { 23 | "original": "Eta", 24 | "conv": "zh-cn:埃塔; zh-hk:Eta; zh-tw:Eta; zh-sg:Eta;" 25 | }, 26 | { 27 | "original": "Iota", 28 | "conv": "zh-cn:约塔; zh-hk:Iota; zh-tw:Iota; zh-sg:Iota;" 29 | }, 30 | { 31 | "original": "Kappa", 32 | "conv": "zh-cn:卡帕; zh-hk:Kappa; zh-tw:Kappa; zh-sg:Kappa;" 33 | }, 34 | { 35 | "original": "Lambda", 36 | "conv": "zh-cn:拉姆达; zh-hk:Lambda; zh-tw:Lambda; zh-sg:Lambda;" 37 | }, 38 | { 39 | "original": "Theta", 40 | "conv": "zh-cn:西塔; zh-hk:Theta; zh-tw:Theta; zh-sg:Theta;" 41 | }, 42 | { 43 | "original": "Zeta", 44 | "conv": "zh-cn:泽塔; zh-hk:Zeta; zh-tw:Zeta; zh-sg:Zeta;" 45 | }, 46 | { 47 | "original": "Epsilon", 48 | "conv": "zh-cn:艾普西隆; zh-hk:Epsilon; zh-tw:Epsilon; zh-sg:Epsilon;" 49 | }, 50 | { 51 | "original": "Mu", 52 | "conv": "zh-cn:缪; zh-hk:Mu; zh-tw:Mu; zh-sg:Mu;" 53 | }, 54 | { 55 | "original": "Omicron", 56 | "conv": "zh-cn:奥密克戎; zh-hk:Omicron; zh-tw:Omicron; zh-sg:奥密克戎;" 57 | }, 58 | { 59 | "original": "Deltacron", 60 | "conv": "zh-cn:德尔塔克戎; zh-hk:Deltacron; zh-tw:Deltacron; zh-sg:德尔塔克戎;" 61 | }, 62 | { 63 | "original": "spike protein", 64 | "conv": "zh-cn:刺突蛋白; zh-hk:棘蛋白; zh-tw:棘蛋白; zh-sg:棘蛋白" 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /data/cgroups/SPL.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SPL", 3 | "description": "蘇格蘭超級聯賽", 4 | "path": "Template:CGroup/SPL", 5 | "rules": [ 6 | { 7 | "original": "Aberdeen", 8 | "conv": "zh:阿伯丁;zh-hans:阿伯丁;zh-hant:阿伯丁;zh-hk:鴨巴甸;zh-tw:亞伯丁;zh-mo:鴨巴甸;" 9 | }, 10 | { 11 | "original": "Celtic", 12 | "conv": "zh:凯尔特人;zh-hans:凯尔特人;zh-hant:凱爾特人;zh-hk:些路迪;zh-tw:塞爾提克;zh-mo:些路迪;" 13 | }, 14 | { 15 | "original": "Dundee", 16 | "conv": "zh:邓迪;zh-hans:邓迪;zh-hk:登地;zh-tw:鄧迪;" 17 | }, 18 | { 19 | "original": "Dundee United", 20 | "conv": "zh:邓迪联;zh-hans:邓迪联;zh-hk:登地聯;zh-tw:鄧迪聯;" 21 | }, 22 | { 23 | "original": "Falkirk", 24 | "conv": "zh:法尔科克; zh-hans:法尔科克; zh-hant:福爾柯克;" 25 | }, 26 | { 27 | "original": "Gretna", 28 | "conv": "zh:格雷纳;zh-hans:格雷纳;zh-hk:基特拿;zh-tw:格雷那;" 29 | }, 30 | { 31 | "original": "Hamilton Academical", 32 | "conv": "zh:咸美顿;zh-hans:汉密尔顿;zh-hk:咸美頓;zh-tw:漢密爾頓;" 33 | }, 34 | { 35 | "original": "Heart of Midlothian", 36 | "conv": "zh:哈茨;zh-hans:哈茨;zh-hk:赫斯;zh-tw:哈茨;" 37 | }, 38 | { 39 | "original": "Hibernian", 40 | "conv": "zh:希伯尼安; zh-hans:希伯尼安; zh-hant:喜百年; zh-hk:喜伯年; zh-tw:希伯尼;" 41 | }, 42 | { 43 | "original": "Inverness CT", 44 | "conv": "zh:因弗内斯;zh-hans:因弗内斯;zh-hk:恩華尼斯;zh-tw:因弗內斯; zh-mo:恩華利斯" 45 | }, 46 | { 47 | "original": "Kilmarnock", 48 | "conv": "zh:基马诺克; zh-hans:基马诺克; zh-hant:基馬諾克; zh-hk:基爾馬諾克;zh-mo:基馬諾克;" 49 | }, 50 | { 51 | "original": "Livingston", 52 | "conv": "zh-hans:利文斯顿; zh-hk:利雲斯頓;zh-tw: 利文斯頓;" 53 | }, 54 | { 55 | "original": "Partick Thistle", 56 | "conv": "zh-hans:帕尔蒂克;zh-hant:巴特里;zh-tw:巴特里;" 57 | }, 58 | { 59 | "original": "Rangers FC", 60 | "conv": "zh-hans:格拉斯哥流浪者;zh-hk:格拉斯哥流浪;zh-tw:格拉斯哥流浪者;" 61 | }, 62 | { 63 | "original": "Rangers FC", 64 | "conv": "zh-hans:流浪者;zh-hk:格拉斯哥流浪;zh-tw:流浪者;" 65 | }, 66 | { 67 | "original": "St Mirren", 68 | "conv": "zh:圣米伦; zh-hans:圣米伦; zh-hant:聖美倫;" 69 | }, 70 | { 71 | "original": "St Johnston", 72 | "conv": "zh:圣約翰斯頓;zh-hans:圣约翰斯顿;zh-hk:聖莊士東;zh-tw:聖約翰斯頓;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/Selena Gomez.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Selena Gomez", 3 | "description": "赛琳娜·戈麦斯", 4 | "path": "Template:CGroup/Selena Gomez", 5 | "rules": [ 6 | { 7 | "original": "Selena Gomez", 8 | "conv": "zh-hans:赛琳娜·戈麦斯; zh-tw:席琳娜·戈梅茲; zh-hk:莎蓮娜·高美絲" 9 | }, 10 | { 11 | "original": "Selena Gomez & the Scene", 12 | "conv": "zh-hans:赛琳娜·戈麦斯与现场乐队; zh-tw:魔法少女席琳娜" 13 | }, 14 | { 15 | "original": "Save The Day", 16 | "conv": "zh-cn:让时间停留; zh-tw:讓時光停留" 17 | }, 18 | { 19 | "original": "Write Your Name", 20 | "conv": "zh-cn:写下你的名字; zh-tw:寫下你的名" 21 | }, 22 | { 23 | "original": "For You", 24 | "conv": "zh-cn:为你; zh-tw:只有為你" 25 | }, 26 | { 27 | "original": "Revival", 28 | "conv": "zh-cn:复苏; zh-tw:甦醒" 29 | }, 30 | { 31 | "original": "Kill Em with Kindness", 32 | "conv": "zh-cn:爱的绝杀; zh-tw:愛的戰場" 33 | }, 34 | { 35 | "original": "Hands to Myself", 36 | "conv": "zh-cn:爱不释手; zh-tw:撫摸" 37 | }, 38 | { 39 | "original": "Same Old Love", 40 | "conv": "zh-cn:旧情; zh-tw:揮別舊愛" 41 | }, 42 | { 43 | "original": "Me & the Rhythm", 44 | "conv": "zh-cn:我和节奏; zh-tw:我與音樂國度" 45 | }, 46 | { 47 | "original": "Survivors", 48 | "conv": "zh-cn:幸存者; zh-tw:存活" 49 | }, 50 | { 51 | "original": "Body Heat", 52 | "conv": "zh-cn:身体热度; zh-tw:身體燃燒" 53 | }, 54 | { 55 | "original": "Rise", 56 | "conv": "zh-cn:上升; zh-tw:再起" 57 | }, 58 | { 59 | "original": "Me & My Girls", 60 | "conv": "zh-cn:我和姐妹们; zh-tw:女孩們與我" 61 | }, 62 | { 63 | "original": "Outta My Hands (LOCO)", 64 | "conv": "zh-cn:无法掌控(疯子); zh-tw:抓不住的你" 65 | }, 66 | { 67 | "original": "Cologne", 68 | "conv": "zh-cn:古龙香水; zh-tw:香水" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /data/cgroups/Sia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sia", 3 | "description": "希雅", 4 | "path": "Template:CGroup/Sia", 5 | "rules": [ 6 | { 7 | "original": "1000 Forms of Fear", 8 | "conv": "zh-cn:一千种恐惧的方式; zh-tw:一千種恐懼" 9 | }, 10 | { 11 | "original": "Burn the Pages", 12 | "conv": "zh-cn:焚烧回忆; zh-tw:焚燒書頁" 13 | }, 14 | { 15 | "original": "Eye of the Needle", 16 | "conv": "zh-cn:针尖之眼; zh-tw:尖針之眼" 17 | }, 18 | { 19 | "original": "Hostage", 20 | "conv": "zh-cn:人质; zh-tw:愛的人質" 21 | }, 22 | { 23 | "original": "Fair Game", 24 | "conv": "zh-cn:公平游戏; zh-tw:情逢敵手" 25 | }, 26 | { 27 | "original": "Elastic Heart", 28 | "conv": "zh-cn:勇敢的心; zh-tw:勇者之心" 29 | }, 30 | { 31 | "original": "Free the Animal", 32 | "conv": "zh-cn:释放天性; zh-tw:解放動物" 33 | }, 34 | { 35 | "original": "Free the Animal", 36 | "conv": "zh-cn:释放天性; zh-tw:解放動物" 37 | }, 38 | { 39 | "original": "This Is Acting", 40 | "conv": "zh-cn:好戏登场; zh-tw:超有戲" 41 | }, 42 | { 43 | "original": "Alive", 44 | "conv": "zh-cn:活着; zh-tw:我活著" 45 | }, 46 | { 47 | "original": "One Million Bullets", 48 | "conv": "zh-cn:遍体鳞伤; zh-tw:百萬發子彈" 49 | }, 50 | { 51 | "original": "Move Your Body", 52 | "conv": "zh-cn:尽情舞动; zh-tw:盡情搖擺" 53 | }, 54 | { 55 | "original": "Unstoppable", 56 | "conv": "zh-cn:势不可挡; zh-tw:無畏無懼" 57 | }, 58 | { 59 | "original": "Cheap Thrills", 60 | "conv": "zh-cn:廉价娱乐; zh-tw:無價娛樂" 61 | }, 62 | { 63 | "original": "Reaper", 64 | "conv": "zh-cn:爱情终结者; zh-tw:愛的收成者" 65 | }, 66 | { 67 | "original": "Footprints", 68 | "conv": "zh-cn:脚印; zh-tw:愛情足跡" 69 | }, 70 | { 71 | "original": "Sweet Design", 72 | "conv": "zh-cn:甜美身姿; zh-tw:甜蜜圖騰" 73 | }, 74 | { 75 | "original": "Space Between", 76 | "conv": "zh-cn:距离感; zh-tw:懸殊差距" 77 | }, 78 | { 79 | "original": "Confetti", 80 | "conv": "zh-cn:五彩礼花; zh-tw:五彩紙花" 81 | }, 82 | { 83 | "original": "Midnight Decisions", 84 | "conv": "zh-cn:午夜抉择; zh-tw:午夜的決定" 85 | }, 86 | { 87 | "original": "Jesus Wept", 88 | "conv": "zh-cn:上帝的哭泣; zh-tw:耶穌的眼淚" 89 | } 90 | ] 91 | } -------------------------------------------------------------------------------- /data/cgroups/Signals and Systems.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Signals and Systems", 3 | "description": "-{zh-cn:信号; zh-tw:訊號;}-与系统", 4 | "path": "Module:CGroup/Signals and Systems", 5 | "rules": [ 6 | { 7 | "original": "transform", 8 | "conv": "zh-hans:变换; zh-hant:轉換;" 9 | }, 10 | { 11 | "original": "inverse transform", 12 | "conv": "zh-hans:逆变换; zh-hant:反轉換;" 13 | }, 14 | { 15 | "original": "Convolution", 16 | "conv": "zh-cn:卷积;zh-tw:摺積;" 17 | }, 18 | { 19 | "original": "Fourier", 20 | "conv": "zh:傅里叶;zh-hans:傅里叶;zh-hk:傅利葉;zh-tw:傅立葉;" 21 | }, 22 | { 23 | "original": "Moving average", 24 | "conv": "zh-cn:移动平均; zh-tw:滑動平均;" 25 | }, 26 | { 27 | "original": "Circular convolution", 28 | "conv": "zh:圓周摺積;zh-hans:循环卷积;zh-hant:圓周摺積;" 29 | }, 30 | { 31 | "original": "Analog", 32 | "conv": "zh-tw:類比; zh-cn:模拟; zh-hk:模擬;" 33 | }, 34 | { 35 | "original": "Digital", 36 | "conv": "zh-tw:數位; zh-cn:数字; zh-hk:數碼;" 37 | }, 38 | { 39 | "original": "information", 40 | "conv": "zh-cn:信息; zh-tw:資訊;" 41 | }, 42 | { 43 | "original": "Pulse", 44 | "conv": "zh-cn:脉冲; zh-tw:脈波;" 45 | }, 46 | { 47 | "original": "Sampling", 48 | "conv": "zh-hans:采样; zh-hant:取樣;" 49 | }, 50 | { 51 | "original": "Signal", 52 | "conv": "zh:信號;zh-tw:訊號;zh-cn:信号;" 53 | }, 54 | { 55 | "original": "Impulse response", 56 | "conv": "zh-hans:冲激响应;zh-hant:脈衝響應;" 57 | }, 58 | { 59 | "original": "Impulse invariance", 60 | "conv": "zh-hans:冲激不变法;zh-hant:脈衝不變法;" 61 | }, 62 | { 63 | "original": "Settling time", 64 | "conv": "zh-cn:稳定时间; zh-tw:穩定時間;" 65 | }, 66 | { 67 | "original": "Settling time", 68 | "conv": "zh-cn:调节时间; zh-tw:整定時間;" 69 | }, 70 | { 71 | "original": "Time-invariant", 72 | "conv": "zh-cn:时不变;zh-tw:非時變;" 73 | }, 74 | { 75 | "original": "Feedback", 76 | "conv": "回授=>zh-cn:反馈;zh-tw:回受;" 77 | }, 78 | { 79 | "original": "Open loop", 80 | "conv": "zh-hans:开环;zh-hant:開迴路;" 81 | }, 82 | { 83 | "original": "Close loop", 84 | "conv": "zh-hans:闭环;zh-hant:閉迴路;" 85 | }, 86 | { 87 | "original": "Overshoot", 88 | "conv": "zh-cn:过冲;zh-tw:過衝;" 89 | } 90 | ] 91 | } -------------------------------------------------------------------------------- /data/cgroups/Signpost.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Signpost", 3 | "description": "-{zh-hant:維基短訊; zh-hans:维基短讯}-", 4 | "path": "Template:CGroup/Signpost", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hans:简讯;zh-hant:簡訊" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "試版" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-hans:发布;zh-hant:出版" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /data/cgroups/SouthPark.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SouthPark", 3 | "description": "-{zh-hans:南方公园;zh-hant:南方公園;zh-cn:南方公园;zh-tw:南方四賤客;zh-hk:衰仔樂園;zh-mo:衰仔樂園;}-", 4 | "path": "Template:CGroup/SouthPark", 5 | "rules": [ 6 | { 7 | "original": "South Park", 8 | "conv": ";zh-cn:南方公园;zh-tw:南方四賤客;zh-hk:衰仔樂園;zh-mo:衰仔樂園;zh-sg:南方公园;zh-hant:南方公園" 9 | }, 10 | { 11 | "original": "South Park Elementary", 12 | "conv": ";zh-cn:南方公园小学;zh-tw:南方公園國民小學;zh-hk:聖育強小學" 13 | }, 14 | { 15 | "original": "Osama bin Laden", 16 | "conv": "zh-cn:本·拉登;zh-tw:賓·拉登;zh-hk:賓·拉登;zh-mo:賓·拉登;" 17 | }, 18 | { 19 | "original": "Sony", 20 | "conv": "zh-cn:索尼;zh-tw:新力;zh-hk:Sony;zh-mo:Sony;" 21 | }, 22 | { 23 | "original": "Star Wars", 24 | "conv": "zh-cn:星球大战;zh-tw:星際大戰;zh-hk:星球大戰;zh-mo:星球大戰;" 25 | }, 26 | { 27 | "original": "The Simpsons", 28 | "conv": "zh-cn:辛普森一家;zh-tw:辛普森家庭;zh-hk:阿森一族;zh-mo:阿森一族;" 29 | }, 30 | { 31 | "original": "Cartman", 32 | "conv": "zh-cn:卡特曼;zh-tw:阿ㄆㄧㄚˇ;zh-hk:蛋散;zh-mo:蛋散;" 33 | }, 34 | { 35 | "original": "Kenny", 36 | "conv": "zh-cn:肯尼;zh-tw:阿尼;zh-hk:碌葛;zh-mo:碌葛;" 37 | }, 38 | { 39 | "original": "Stan", 40 | "conv": "zh-cn:斯坦;zh-tw:屎蛋;zh-hk:粉腸;zh-mo:粉腸;" 41 | }, 42 | { 43 | "original": "Kyle", 44 | "conv": "zh-cn:凯尔;zh-tw:凱子;zh-hk:茂利;zh-mo:茂利;" 45 | }, 46 | { 47 | "original": "Mr.Garrison", 48 | "conv": "zh-cn:加里森老师;zh-tw:葛屁老師;zh-hk:史sir;zh-mo:史sir;" 49 | }, 50 | { 51 | "original": "Mel Gibson", 52 | "conv": "zh-cn:梅尔·吉布森;zh-hk:米路·吉遜;zh-tw:梅爾·吉勃遜;" 53 | }, 54 | { 55 | "original": "Tom Cruise", 56 | "conv": "zh-cn:汤姆·克魯斯; zh-tw:湯姆·克魯斯;zh-hk:湯·告魯斯" 57 | }, 58 | { 59 | "original": "Wendy", 60 | "conv": "zh-cn:温蒂;zh-hk:大波蓮;zh-tw:溫蒂;" 61 | }, 62 | { 63 | "original": "Ike", 64 | "conv": "zh-cn:艾克;zh-hk:茂丙;zh-tw:BB;" 65 | }, 66 | { 67 | "original": "Butters", 68 | "conv": "zh-cn:巴特斯;zh-hk:巴特斯;zh-tw:大頭;" 69 | }, 70 | { 71 | "original": "Chef", 72 | "conv": "zh-cn:厨师;zh-hk:廢柴;zh-tw:老爹;" 73 | }, 74 | { 75 | "original": "Mr.Hat", 76 | "conv": "zh-cn:帽子先生;zh-hk:高帽叔叔;zh-tw:藏鏡人;" 77 | }, 78 | { 79 | "original": "Jimbo", 80 | "conv": "zh-cn:金波;zh-tw:金寶;" 81 | }, 82 | { 83 | "original": "Ned", 84 | "conv": "zh-cn:內德;zh-tw:阿諾;" 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/Summon Night.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Summon Night", 3 | "description": "召喚夜響曲系列", 4 | "path": "Module:CGroup/Summon Night", 5 | "rules": [ 6 | { 7 | "original": "サモンナイト", 8 | "conv": "zh-cn:召唤之夜;zh-tw:召喚夜響曲;" 9 | }, 10 | { 11 | "original": "夜明けの翼", 12 | "conv": "zh-cn:黎明之翼;zh-tw:破曉之翼;" 13 | }, 14 | { 15 | "original": "ツインエイジ", 16 | "conv": "zh-cn:孪生时代;zh-tw:雙紀元;" 17 | }, 18 | { 19 | "original": "Tears Crown", 20 | "conv": "zh-cn:泪之皇冠;zh-tw:淚光寶冠;" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/TCM.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TCM", 3 | "description": "中醫學", 4 | "path": "Template:CGroup/TCM", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-cn:厚朴;zh-tw:厚朴;zh-hk:厚朴;zh-sg:厚朴" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-cn:白术;zh-tw:白朮;zh-hk:白朮;zh-sg:白术" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:苍术;zh-tw:蒼朮;zh-hk:蒼朮;zh-sg:苍术" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-cn:干姜;zh-tw:乾薑;zh-hk:乾薑;zh-sg:干姜" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:神曲;zh-tw:神麴;zh-hk:神麴;zh-sg:神曲" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-cn:谷芽;zh-tw:穀芽;zh-hk:穀芽;zh-sg:谷芽" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-cn:炮制;zh-tw:炮製;zh-hk:炮製;zh-sg:炮制" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-cn:修制;zh-tw:修製;zh-hk:修製;zh-sg:修制" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-cn:共制;zh-tw:共製;zh-hk:共製;zh-sg:共制" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-cn:水制;zh-tw:水製;zh-hk:水製;zh-sg:水制" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-cn:火制;zh-tw:火製;zh-hk:火製;zh-sg:火制" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-cn:醋制;zh-tw:醋製;zh-hk:醋製;zh-sg:醋制" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-cn:醋制;zh-tw:醋製;zh-hk:醋製;zh-sg:醋制" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-cn:制霜;zh-tw:製霜;zh-hk:製霜;zh-sg:制霜" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-cn:制绒;zh-tw:製絨;zh-hk:製絨;zh-sg:制绒" 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /data/cgroups/TLeague.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TLeague", 3 | "description": "泰國職業足球聯賽", 4 | "path": "Template:CGroup/TLeague", 5 | "rules": [ 6 | { 7 | "original": "Thai FA Cup", 8 | "conv": "zh:泰路警察; zh-cn:警察特罗; zh-tw:泰路警察; zh-hk:泰路警察; " 9 | }, 10 | { 11 | "original": "Thai FA Cup", 12 | "conv": "zh:BEC泰路薩薩拿; zh-cn:BEC特罗萨萨纳; zh-tw:BEC泰路薩薩拿; zh-hk:BEC泰路薩薩拿; " 13 | }, 14 | { 15 | "original": "Thai FA Cup", 16 | "conv": "zh:泰国足协杯; zh-hans:泰国足协杯; zh-tw:泰國足協盃; zh-hk:泰國足總盃; " 17 | }, 18 | { 19 | "original": "Thai League 1", 20 | "conv": "zh:泰國甲組足球聯賽; zh-hans:泰国足球甲级联赛; zh-tw:泰國足球甲級聯賽; zh-hk:泰國甲組足球聯賽; " 21 | }, 22 | { 23 | "original": "Thai League 2", 24 | "conv": "zh:泰國乙組足球聯賽; zh-hans:泰国足球乙级联赛; zh-tw:泰國足球乙級聯賽; zh-hk:泰國乙組足球聯賽; " 25 | }, 26 | { 27 | "original": "Thai League 3", 28 | "conv": "zh:泰國丙組足球聯賽; zh-hans:泰国足球丙级联赛; zh-tw:泰國足球丙級聯賽; zh-hk:泰國丙組足球聯賽; " 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/cgroups/Telcom.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Telcom", 3 | "description": "电信", 4 | "path": "Module:CGroup/Telcom", 5 | "rules": [ 6 | { 7 | "original": "telecommunication", 8 | "conv": "zh-hans:电信; zh-hk:電訊; zh-tw:電信;" 9 | }, 10 | { 11 | "original": "Communication", 12 | "conv": "zh-cn:通信;zh-tw:通訊;" 13 | }, 14 | { 15 | "original": "digital", 16 | "conv": "zh-hans:数字;zh-hk:數碼;zh-tw:數位;" 17 | }, 18 | { 19 | "original": "analog", 20 | "conv": "zh-hans:模拟; zh-hant:類比;" 21 | }, 22 | { 23 | "original": "network", 24 | "conv": "zh-cn:网络; zh-tw:網路; zh-hk:網絡;" 25 | }, 26 | { 27 | "original": "Integrated Services Digital Network", 28 | "conv": "zh-hans:综合业务数字网;zh-hk:綜合服務數碼網絡;zh-tw:整合服務數位網路;" 29 | }, 30 | { 31 | "original": "calling party", 32 | "conv": "zh-cn:呼叫方; zh-tw:發話方; " 33 | }, 34 | { 35 | "original": "called party", 36 | "conv": "zh-cn:被叫方; zh-tw:受話方; " 37 | }, 38 | { 39 | "original": "gateway", 40 | "conv": "zh-cn:网关; zh-tw:閘道; " 41 | }, 42 | { 43 | "original": "quality", 44 | "conv": "zh-hans:质量; zh-hant:品質; " 45 | }, 46 | { 47 | "original": "missing", 48 | "conv": "zh-hans:丢失; zh-hant:遺失; " 49 | }, 50 | { 51 | "original": "message", 52 | "conv": "zh-hans:报文; zh-hant:封包; " 53 | }, 54 | { 55 | "original": "message", 56 | "conv": "zh-hans:消息; zh-hant:訊息; " 57 | }, 58 | { 59 | "original": "Private Branch Exchange", 60 | "conv": "zh-hans:专用小交换机; zh-hant:專用交換機; " 61 | }, 62 | { 63 | "original": "Public Switched Telephone Network", 64 | "conv": "zh-cn:公共交换电话网; zh-tw:公用交換電話網路; " 65 | }, 66 | { 67 | "original": "protocol", 68 | "conv": "zh-hans:协议; zh-hant:協定;" 69 | }, 70 | { 71 | "original": "Protocol stack", 72 | "conv": "zh-hans:协议栈; zh-hant:協定疊;" 73 | }, 74 | { 75 | "original": "Protocol Suite", 76 | "conv": "zh-hans:协议族; zh-hant:協定套組;" 77 | }, 78 | { 79 | "original": "Real-time Transport Protocol", 80 | "conv": "zh-cn:实时传输协议; zh-tw:即時傳輸協定; zh-hk:實時傳輸協定;" 81 | }, 82 | { 83 | "original": "Session Initiation Protocol", 84 | "conv": "zh-cn:会话发起协议; zh-tw:對話啟動協定;" 85 | }, 86 | { 87 | "original": "Internet Protocol", 88 | "conv": "zh-cn:网际协议; zh-hk:網際網絡協定;zh-tw:網際網路協定;" 89 | } 90 | ] 91 | } -------------------------------------------------------------------------------- /data/cgroups/TfL.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "TfL", 3 | "description": "伦敦交通局有关翻译", 4 | "path": "Template:CGroup/TfL", 5 | "rules": [] 6 | } -------------------------------------------------------------------------------- /data/cgroups/The Chainsmokers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Chainsmokers", 3 | "description": "The Chainsmokers", 4 | "path": "Template:CGroup/The Chainsmokers", 5 | "rules": [ 6 | { 7 | "original": "The Chainsmokers", 8 | "conv": "zh-cn:烟鬼组合; zh-tw:老菸槍雙人組" 9 | }, 10 | { 11 | "original": "Collage", 12 | "conv": "zh-cn:拼贴; zh-tw:神曲拼貼" 13 | }, 14 | { 15 | "original": "All We Know", 16 | "conv": "zh-cn:心知肚明;zh-tw:唯一信念" 17 | }, 18 | { 19 | "original": "Closer", 20 | "conv": "zh-cn:靠近;zh-tw:靠近我" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/The Promised Neverland.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Promised Neverland", 3 | "description": "约定的梦幻岛", 4 | "path": "Module:CGroup/The Promised Neverland", 5 | "rules": [ 6 | { 7 | "original": "コニー", 8 | "conv": "zh-cn:科尼; zh-hant:柯妮" 9 | }, 10 | { 11 | "original": "キャロル", 12 | "conv": "zh-cn:卡罗露; zh-hant:卡蘿爾; zh-tw:卡洛; zh-hk:卡洛" 13 | }, 14 | { 15 | "original": "イザベラ", 16 | "conv": "zh-cn:伊莎贝拉 ;zh-hant:伊薩貝拉" 17 | }, 18 | { 19 | "original": "クローネ", 20 | "conv": "zh-cn:克洛涅; zh-hant:克洛涅; zh-tw:克羅妮; zh-hk:克羅妮" 21 | }, 22 | { 23 | "original": "マルク", 24 | "conv": "zh-cn:马尔科; zh-hant:馬克" 25 | }, 26 | { 27 | "original": "ドン", 28 | "conv": "唐=>zh-cn:冬; 唐=>zh-hant:唐" 29 | }, 30 | { 31 | "original": "ギルダ", 32 | "conv": "zh-cn:吉尔达; zh-hant:吉爾妲" 33 | }, 34 | { 35 | "original": "ラニオン", 36 | "conv": "zh-cn:拉尼; zh-hant:拉尼恩" 37 | }, 38 | { 39 | "original": "ムジカ", 40 | "conv": "zh-cn:穆希卡; zh-hant:穆吉卡" 41 | }, 42 | { 43 | "original": "ソンジュ", 44 | "conv": "zh-cn:宋杰; zh-hant:頌施" 45 | }, 46 | { 47 | "original": "ザック", 48 | "conv": "zh-cn:扎克; zh-hant:札克" 49 | }, 50 | { 51 | "original": "ジリアン", 52 | "conv": "zh-cn:基兰; zh-hant:吉莉安" 53 | }, 54 | { 55 | "original": "オリバー", 56 | "conv": "zh-cn:奥利弗; zh-hant:奥利佛" 57 | }, 58 | { 59 | "original": "ミネルヴァ", 60 | "conv": "zh-cn:密内瓦; zh-hant:密涅瓦" 61 | }, 62 | { 63 | "original": "ノウマ", 64 | "conv": "zh-cn:诺玛; zh-hant:諾爾瑪" 65 | }, 66 | { 67 | "original": "ナット", 68 | "conv": "zh-cn:纳特; zh-hant:納特; zh-tw:奈特; zh-hk:奈特" 69 | }, 70 | { 71 | "original": "出水ぽすか", 72 | "conv": "zh-cn:出水珀斯卡; zh-tw:出水明日香" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/ThePeanuts.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ThePeanuts", 3 | "description": "花生漫畫", 4 | "path": "Template:CGroup/ThePeanuts", 5 | "rules": [ 6 | { 7 | "original": "Charles Schulz", 8 | "conv": "zh-cn:查尔斯·舒尔茨; zh-hk:查理斯·舒爾茨; zh-mo:查理斯·舒爾茨; zh-sg:查尔斯·舒尔茨; zh-tw:查爾斯·舒茲" 9 | }, 10 | { 11 | "original": "Schulz", 12 | "conv": "zh-cn:舒尔茨; zh-hk:舒爾茨; zh-mo:舒爾茨; zh-sg:舒尔茨; zh-tw:舒茲" 13 | }, 14 | { 15 | "original": "Frieda", 16 | "conv": "zh-cn:傅丽达; zh-hk:菲莉達; zh-mo:菲莉達; zh-sg:傅丽达; zh-tw:傅麗達" 17 | }, 18 | { 19 | "original": "Linus", 20 | "conv": "zh-cn:莱纳斯; zh-hk:萊納斯; zh-mo:萊納斯; zh-sg:莱纳斯; zh-tw:奈勒斯" 21 | }, 22 | { 23 | "original": "Lucy", 24 | "conv": "zh-cn:露西; zh-hk:露絲; zh-mo:露絲; zh-sg:露西; zh-tw:露西" 25 | }, 26 | { 27 | "original": "Marcie", 28 | "conv": "zh-cn:玛西; zh-hk:瑪思; zh-mo:瑪思; zh-sg:玛西; zh-tw:瑪西" 29 | }, 30 | { 31 | "original": "Patty", 32 | "conv": "zh-cn:派蒂; zh-hk:碧蒂; zh-mo:碧蒂; zh-sg:派蒂; zh-tw:佩蒂" 33 | }, 34 | { 35 | "original": "Peppermint Patty", 36 | "conv": "zh-cn:薄荷·派蒂; zh-hk:薄荷·碧蒂; zh-mo:薄荷·碧蒂; zh-sg:薄荷·派蒂; zh-tw:派伯敏特·佩蒂" 37 | }, 38 | { 39 | "original": "PigPen", 40 | "conv": "zh-cn:乒乓; zh-hk:豬圈仔; zh-mo:豬圈仔; zh-sg:乒乓; zh-tw:乒乓" 41 | }, 42 | { 43 | "original": "Rerun", 44 | "conv": "zh-cn:礼让; zh-hk:禮讓; zh-mo:禮讓; zh-sg:礼让; zh-tw:小雷" 45 | }, 46 | { 47 | "original": "Schroeder", 48 | "conv": "zh-cn:施洛德; zh-hk:舒路達; zh-mo:舒路達; zh-sg:施洛德; zh-tw:謝勒德" 49 | }, 50 | { 51 | "original": "Snoopy", 52 | "conv": "zh-cn:史努比; zh-hk:史諾比; zh-mo:史諾比; zh-sg:史努比; zh-tw:史努比" 53 | }, 54 | { 55 | "original": "Violet", 56 | "conv": "zh-cn:阿兰; zh-hk:范蕾特; zh-mo:范蕾特; zh-sg:范蕾特; zh-tw:范蕾特" 57 | }, 58 | { 59 | "original": "Woodstock", 60 | "conv": "zh-cn:糊涂塌客; zh-hk:胡士托; zh-mo:胡士托; zh-sg:糊涂塌客; zh-tw:糊塗塌客" 61 | }, 62 | { 63 | "original": "The Peanuts Movie", 64 | "conv": "zh-cn:史努比:花生大电影; zh-tw:史努比 The Peanuts Movie; zh-hk:史諾比:花生漫畫大電影; zh-sg:史努比:花生漫画大电影;" 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /data/cgroups/Tunisia.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Tunisia", 3 | "description": "“突尼斯-突尼-{西亞}-”转换", 4 | "path": "Module:CGroup/Tunisia", 5 | "rules": [ 6 | { 7 | "original": "Tunisia", 8 | "conv": "zh-cn:突尼斯; zh-hk:突尼西亞; zh-tw:突尼西亞; zh-my:突尼斯; zh-sg:突尼斯;" 9 | }, 10 | { 11 | "original": "Republic of Tunisia", 12 | "conv": "zh-cn:突尼斯共和国; zh-hk:突尼西亞共和國; zh-tw:突尼西亞共和國; zh-my:突尼斯共和国; zh-sg:突尼斯共和国;" 13 | }, 14 | { 15 | "original": "President of Tunisia", 16 | "conv": "zh-cn:突尼斯总统; zh-hk:突尼西亞總統; zh-tw:突尼西亞總統; zh-my:突尼斯总统; zh-sg:突尼斯总统;" 17 | }, 18 | { 19 | "original": "Central Bank of Tunisia", 20 | "conv": "zh-cn:突尼斯中央银行; zh-hk:突尼西亞中央銀行; zh-tw:突尼西亞中央銀行; zh-my:突尼斯中央银行; zh-sg:突尼斯中央银行;" 21 | }, 22 | { 23 | "original": "Tunisian dinar", 24 | "conv": "zh-cn:突尼斯第纳尔; zh-hk:突尼西亞第納爾; zh-tw:突尼西亞第納爾; zh-my:突尼斯第纳尔; zh-sg:突尼斯第纳尔;" 25 | }, 26 | { 27 | "original": "Tunisian citizens", 28 | "conv": "zh-cn:突尼斯公民; zh-hk:突尼西亞公民; zh-tw:突尼西亞公民; zh-my:突尼斯公民; zh-sg:突尼斯公民;" 29 | }, 30 | { 31 | "original": "Tunisia visa", 32 | "conv": "zh-cn:突尼斯签证; zh-hk:突尼西亞簽證; zh-tw:突尼西亞簽證; zh-my:突尼斯签证; zh-sg:突尼斯签证;" 33 | }, 34 | { 35 | "original": "Tunisian Arabic", 36 | "conv": "zh-cn:突尼斯阿拉伯语; zh-hk:突尼西亞阿拉伯語; zh-tw:突尼西亞阿拉伯語; zh-my:突尼斯阿拉伯语; zh-sg:突尼斯阿拉伯语;" 37 | }, 38 | { 39 | "original": "Tunis", 40 | "conv": "zh-hans:突尼斯市; zh-hant:突尼斯市;" 41 | }, 42 | { 43 | "original": "Tunis Governorate", 44 | "conv": "zh-hans:突尼斯省; zh-hant:突尼斯省;" 45 | }, 46 | { 47 | "original": "Lake of Tunis", 48 | "conv": "zh-hans:突尼斯湖; zh-hant:突尼斯湖;" 49 | }, 50 | { 51 | "original": "Lake of Tunis", 52 | "conv": "zh-hans:突尼斯潟湖; zh-hant:突尼斯潟湖;" 53 | }, 54 | { 55 | "original": "Gulf of Tunis", 56 | "conv": "zh-hans:突尼斯湾; zh-hant:突尼斯灣;" 57 | }, 58 | { 59 | "original": "Tunis University", 60 | "conv": "zh-hans:突尼斯大学; zh-hant:突尼斯大學;" 61 | }, 62 | { 63 | "original": "Tunis Light Metro", 64 | "conv": "zh-hans:突尼斯轻轨; zh-hant:突尼斯輕軌;" 65 | }, 66 | { 67 | "original": "bey of Tunis", 68 | "conv": "zh-hans:突尼斯贝伊; zh-hant:突尼斯貝伊;" 69 | }, 70 | { 71 | "original": "Espérance Sportive de Tunis", 72 | "conv": "zh-hans:突尼斯希望体育俱乐部; zh-hk:艾斯柏蘭斯體育會; zh-tw:突尼斯希望體育俱樂部; zh-my:突尼斯希望体育俱乐部; zh-sg:突尼斯希望体育俱乐部;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/US Senators.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "US Senators", 3 | "description": "美國聯邦參議員", 4 | "path": "Template:CGroup/US Senators", 5 | "rules": [ 6 | { 7 | "original": "Kerry", 8 | "conv": "zh-hans:克里;zh-hk:克里;zh-tw:凱瑞;" 9 | }, 10 | { 11 | "original": "Kerry", 12 | "conv": "凱利=>zh-cn:克里;凱利=>zh-tw:凱瑞;凱利=>zh-hk:克里" 13 | }, 14 | { 15 | "original": "Kerry", 16 | "conv": "凱里=>zh-cn:克里;凱里=>zh-tw:凱瑞;凱里=>zh-hk:克里" 17 | }, 18 | { 19 | "original": "John Sidney McCain III", 20 | "conv": "zh-hans:麦凯恩;zh-hk:麥凱恩;zh-tw:麥肯;" 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/Unilever.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unilever", 3 | "description": "聯合利華", 4 | "path": "Template:CGroup/Unilever", 5 | "rules": [ 6 | { 7 | "original": "AXE/LYNX", 8 | "conv": "zh-cn:凌仕;zh-hk:LYNX;zh-tw:AXE;" 9 | }, 10 | { 11 | "original": "BEN & JERRY'S", 12 | "conv": "zh-hk:BEN & JERRY'S;" 13 | }, 14 | { 15 | "original": "CIF", 16 | "conv": "zh-cn:晶杰;zh-hk:潔而亮;" 17 | }, 18 | { 19 | "original": "CLEAR", 20 | "conv": "zh-cn:清扬;zh-hk:淨;zh-tw:淨;" 21 | }, 22 | { 23 | "original": "COMFORT/SNUGGLE", 24 | "conv": "zh-cn:金纺;zh-hk:金紡;zh-tw:熊寶貝;" 25 | }, 26 | { 27 | "original": "DOVE", 28 | "conv": "zh-cn:多芬;zh-hk:多芬;zh-tw:多芬;" 29 | }, 30 | { 31 | "original": "KNORR", 32 | "conv": "zh-cn:家乐;zh-hk:家樂牌;zh-sg:家乐;zh-tw:康寶;" 33 | }, 34 | { 35 | "original": "LIFEBUOY", 36 | "conv": "zh-cn:卫宝;zh-hk:衛健;" 37 | }, 38 | { 39 | "original": "LIPTON", 40 | "conv": "zh-cn:立顿;zh-hk:立頓;zh-sg:立顿;zh-tw:立頓;" 41 | }, 42 | { 43 | "original": "LUX", 44 | "conv": "zh-cn:力士;zh-hk:力士;zh-tw:麗仕;" 45 | }, 46 | { 47 | "original": "OMO", 48 | "conv": "zh-cn:奥妙;" 49 | }, 50 | { 51 | "original": "POND'S", 52 | "conv": "zh-cn:旁氏;zh-hk:旁氏;zh-tw:旁氏;" 53 | }, 54 | { 55 | "original": "REXONA", 56 | "conv": "zh-cn:舒耐;zh-hk:蕊娜;zh-tw:蕊娜;" 57 | }, 58 | { 59 | "original": "TRESemmé", 60 | "conv": "zh-hk:TRESemmé;" 61 | }, 62 | { 63 | "original": "UNILEVER FOOD SOLUTIONS", 64 | "conv": "zh-cn:联合利华饮食策划;zh-hk:聯合利華飲食策劃;zh-sg:联合利华饮食策划;zh-tw:聯合利華飲食策劃;" 65 | }, 66 | { 67 | "original": "VASELINE", 68 | "conv": "zh-cn:凡士林;zh-hk:凡士林;zh-tw:凡士林;" 69 | }, 70 | { 71 | "original": "WALL'S", 72 | "conv": "zh-cn:和路雪;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/VLeague.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "VLeague", 3 | "description": "越南職業足球聯賽", 4 | "path": "Template:CGroup/VLeague", 5 | "rules": [ 6 | { 7 | "original": "Cúp Quốc gia Việt Nam", 8 | "conv": "zh:越南国家杯; zh-cn:越南国家杯; zh-hant:越南國家盃; " 9 | }, 10 | { 11 | "original": "Câu lạc bộ bóng đá Becamex Bình Dương", 12 | "conv": "zh-hant:平陽貝卡麥克斯; zh-hans:平阳贝卡麦克斯; zh-hk:平陽比金邁; " 13 | }, 14 | { 15 | "original": "Sông Lam Nghệ An F.C.", 16 | "conv": "zh-hant:乂安藍江; zh-hans:乂安蓝江; zh-hk:宋蘭義安; " 17 | }, 18 | { 19 | "original": "Câu lạc bộ Bóng đá Thành phố Hồ Chí Minh", 20 | "conv": "zh-hant:胡志明市足球俱樂部; zh-hans:胡志明市足球俱乐部; zh-hk:胡志明市足球會; " 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /data/cgroups/Valkyria.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Valkyria", 3 | "description": "[[戰場女武神系列|戰場女武神]]", 4 | "path": "Template:CGroup/Valkyria", 5 | "rules": [ 6 | { 7 | "original": "Hardins", 8 | "conv": "zh:哈汀斯; zh-hans:哈迪斯; zh-hant:哈汀斯;zh-cn:;zh-tw:;zh-hk:" 9 | }, 10 | { 11 | "original": "Gassenarl", 12 | "conv": "zh:嘉賽納; zh-hans:格赛纳尔; zh-hant:嘉賽納;zh-cn:;zh-tw:;zh-hk:" 13 | }, 14 | { 15 | "original": "Koolhaas", 16 | "conv": "zh:科爾哈斯; zh-hans:柯尔哈斯; zh-hant:科爾哈斯;zh-cn:;zh-tw:;zh-hk:" 17 | }, 18 | { 19 | "original": "王立士官学校", 20 | "conv": "zh:王立士官學校; zh-hans:王立军官学校; zh-hant:王立軍官學校;zh-cn:;zh-tw:;zh-hk:" 21 | }, 22 | { 23 | "original": "Kurt", 24 | "conv": "zh:克爾特; zh-hans:克鲁特; zh-hant:克爾特;zh-cn:;zh-tw:克爾特;zh-hk:" 25 | }, 26 | { 27 | "original": "Irving", 28 | "conv": "zh:歐文; zh-hans:厄文; zh-hant:歐文;zh-cn:;zh-tw:艾文;zh-hk:" 29 | }, 30 | { 31 | "original": "Riela", 32 | "conv": "zh:莉艾拉; zh-hans:莉艾拉; zh-hant:莉艾拉;zh-cn:;zh-tw:里艾菈;zh-hk:" 33 | }, 34 | { 35 | "original": "Riela", 36 | "conv": "zh:伊姆卡; zh-hans:伊姆卡; zh-hant:伊姆卡;zh-cn:;zh-tw:伊穆卡;zh-hk:" 37 | }, 38 | { 39 | "original": "Gusurg", 40 | "conv": "zh:古斯魯格; zh-hans:古斯鲁格; zh-hant:古斯魯格;zh-cn:;zh-tw:古斯格;zh-hk:" 41 | }, 42 | { 43 | "original": "Alphonse", 44 | "conv": "zh:阿爾馮斯; zh-hans:阿尔冯斯; zh-hant:阿爾馮斯;zh-cn:;zh-tw:愛爾楓斯;zh-hk:" 45 | }, 46 | { 47 | "original": "Serge", 48 | "conv": "zh:塞爾卓; zh-hans:塞尔卓; zh-hant:塞爾卓;zh-cn:;zh-tw:塞爾日;zh-hk:" 49 | }, 50 | { 51 | "original": "Carisa", 52 | "conv": "zh:卡莉莎; zh-hans:卡莉莎; zh-hant:卡莉莎;zh-cn:;zh-tw:凱莉莎;zh-hk:" 53 | }, 54 | { 55 | "original": "Contzen", 56 | "conv": "zh:康贊; zh-hans:康赞; zh-hant:康贊;zh-cn:;zh-tw:康特恩;zh-hk:" 57 | }, 58 | { 59 | "original": "Drake", 60 | "conv": "zh:德雷克; zh-hans:德雷克; zh-hant:德雷克;zh-cn:;zh-tw:卓格;zh-hk:" 61 | }, 62 | { 63 | "original": "Margit", 64 | "conv": "zh:瑪露姬特; zh-hans:玛露姬特; zh-hant:瑪露姬特;zh-cn:;zh-tw:瑪爾琪特;zh-hk:" 65 | }, 66 | { 67 | "original": "Dahau", 68 | "conv": "zh:達哈烏; zh-hans:达哈尔; zh-hant:達哈烏;zh-cn:;zh-tw:達蒿;zh-hk:" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /data/cgroups/WORKING!!.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "WORKING!!", 3 | "description": "《WORKING!!》", 4 | "path": "Template:CGroup/WORKING!!", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh:溫; zh-cn:温; zh-hk:温; zh-tw:溫;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh:WORKING!!; zh-cn:WORKING!!; zh-hk:WORKING!!; zh-tw:WORKING!!;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh:迷糊餐廳; zh-cn:迷糊餐厅; zh-hk:無聊西餐廳; zh-tw:迷糊餐廳;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh:Square Enix; zh-cn:史克威尔艾尼克斯; zh-hk:Square Enix; zh-tw:史克威爾艾尼克斯;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh:Wagnaria; zh-cn:瓦古娜利亞; zh-hk:Wagnaria; zh-tw:瓦古娜利亞;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh:小鳥遊; zh-cn:小鸟游; zh-hk:小鳥遊; zh-tw:小鳥遊;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh:小遊鳥; zh-cn:小游鸟; zh-hk:小遊鳥; zh-tw:小遊鳥;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh:真晝; zh-cn:真昼; zh-hk:眞晝; zh-tw:真晝;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh:真柴; zh-cn:真柴; zh-hk:眞柴; zh-tw:真柴;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh:; zh-cn:; zh-hk:; zh-tw:;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/Warhammer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Warhammer", 3 | "description": "战锤40000", 4 | "path": "Template:CGroup/Warhammer", 5 | "rules": [ 6 | { 7 | "original": "Chaos Rising", 8 | "conv": "zh-cn:混沌崛起; zh-tw:渾沌再起;" 9 | }, 10 | { 11 | "original": "Dark Crusade", 12 | "conv": "zh-cn:黑暗十字军; zh-tw:暗黑聖戰;" 13 | }, 14 | { 15 | "original": "Dawn of War", 16 | "conv": "zh-cn:战争黎明; zh-tw:破曉之戰;" 17 | }, 18 | { 19 | "original": "Fire Warrior", 20 | "conv": "zh-cn:火焰战士; zh-tw:烈焰戰鎚;" 21 | }, 22 | { 23 | "original": "Warhammer 40,000: Fire Warrior", 24 | "conv": "zh-cn:战锤40000:火焰战士; zh-tw:烈焰戰鎚;" 25 | }, 26 | { 27 | "original": "Retribution", 28 | "conv": "zh-cn:报应; zh-tw:天譴;" 29 | }, 30 | { 31 | "original": "Winter Assult", 32 | "conv": "zh-cn:冬季攻势; zh-tw:冬襲;" 33 | }, 34 | { 35 | "original": "Warhammer 40,000:Space Marine", 36 | "conv": "zh-cn:战锤40000:星际战士; zh-tw:戰鎚:殺無雙; zh-hk:戰鎚40000:星際戰士;" 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /data/cgroups/Watch.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Watch", 3 | "description": "巡者系列", 4 | "path": "Template:CGroup/Watch", 5 | "rules": [ 6 | { 7 | "original": "Night Watch", 8 | "conv": "zh-hans:守夜人;zh-hant:夜巡者;" 9 | }, 10 | { 11 | "original": "Day Watch", 12 | "conv": "zh-hans:守日人;zh-hant:日巡者;" 13 | }, 14 | { 15 | "original": "Dusk Watch", 16 | "conv": "zh-hans:黄昏使者;zh-hant:幽巡者;" 17 | }, 18 | { 19 | "original": "the last watch", 20 | "conv": "zh-hans:最后的守护人;zh-hant:終巡者;" 21 | }, 22 | { 23 | "original": "Destiny", 24 | "conv": "zh-hans:自身的命运;zh-hant:自己的命運;" 25 | }, 26 | { 27 | "original": "Among His Own Kind", 28 | "conv": "zh-hans:自己人在自己人中间;zh-hant:;" 29 | }, 30 | { 31 | "original": "All for My Own Kind", 32 | "conv": "zh-hans:只为自己人;zh-hant:;" 33 | }, 34 | { 35 | "original": "", 36 | "conv": "zh-hans:;zh-hant:閒人莫入;" 37 | }, 38 | { 39 | "original": "", 40 | "conv": "zh-hans:;zh-hant:異界外人;" 41 | }, 42 | { 43 | "original": "", 44 | "conv": "zh-hans:;zh-hant:超凡法力;" 45 | }, 46 | { 47 | "original": "", 48 | "conv": "zh-hans:黄昏界;zh-hant:幽界;" 49 | }, 50 | { 51 | "original": "", 52 | "conv": "zh-hans:他者;zh-hant:超凡人;" 53 | }, 54 | { 55 | "original": "", 56 | "conv": "zh-hans:守夜人巡查队;zh-hant:夜巡隊;" 57 | }, 58 | { 59 | "original": "", 60 | "conv": "zh-hans:守日人巡查队;zh-hant:日巡隊;" 61 | }, 62 | { 63 | "original": "", 64 | "conv": "zh-hans:宗教法庭;zh-hant:大審判法庭;" 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /data/cgroups/check1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import os 3 | from glob import glob 4 | import json 5 | 6 | CGROUPS_DIR = os.path.join(os.path.dirname(__file__), "./") 7 | OUTPUT_PATH = os.path.join(os.path.dirname(__file__), "../../web/public/cgroups.json") 8 | 9 | 10 | def combine_names(name, desc): 11 | # TODO: handle conv rule 12 | if name in desc: 13 | combined = desc 14 | elif desc in name: 15 | combined = name 16 | else: 17 | combined = f"{name} / {desc}" 18 | return combined 19 | 20 | 21 | def check_conv(conv): 22 | # packed = "\n".join(rule['conv'] for rule in rules) 23 | # packed = "" 24 | # for rule in rules: 25 | # # rule['original'] is unused for now 26 | # packed += f"-{{H|{rule['conv']}}}-" 27 | if "=>" in conv: 28 | ff = None 29 | for single in filter(None, map(lambda s: s.strip(), conv.split(""))): 30 | if "=>" not in single: 31 | print("E1", conv, f"no => in {single}") 32 | break 33 | f, t = single.split("=>") 34 | f = f.strip() 35 | t = t.strip() 36 | if ff is None: 37 | ff = f 38 | elif f != ff: 39 | print("E2", conv, f"{f} != {ff}") 40 | break 41 | # return packed 42 | 43 | 44 | def main(): 45 | cgroups = {} 46 | for f in glob(os.path.join(CGROUPS_DIR, "*.json")): 47 | with open(f, "r") as f: 48 | cgroup = json.loads(f.read()) 49 | # name = combine_names(cgroup["name"], cgroup['description']) 50 | for rule in cgroup["rules"]: 51 | check_conv(rule["conv"]) 52 | # cgroups[name] = rules 53 | with open(OUTPUT_PATH, "w") as f: 54 | f.write(json.dumps(cgroups, ensure_ascii=False, indent=2)) 55 | 56 | 57 | if __name__ == "__main__": 58 | main() 59 | -------------------------------------------------------------------------------- /data/cgroups/inter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inter", 3 | "description": "國際米蘭", 4 | "path": "Template:CGroup/inter", 5 | "rules": [ 6 | { 7 | "original": "Francesco Toldo", 8 | "conv": "zh:托度;zh-hans:弗朗切斯科·托尔多;zh-hk:托度;zh-tw:弗朗切斯科·托爾多;" 9 | }, 10 | { 11 | "original": "Júlio César Soares", 12 | "conv": "zh:朱利奥·塞萨尔;zh-hans:儒利奥·塞萨尔;zh-hk:祖利奧施薩;zh-tw:儒里奧·塞薩爾;" 13 | }, 14 | { 15 | "original": "Paolo Orlandoni", 16 | "conv": "zh:保罗·奧兰多尼;zh-hans:保罗·奥兰多尼;zh-hk:奧蘭當尼;zh-tw:保罗·奧兰多尼;" 17 | }, 18 | { 19 | "original": "Iván Córdoba", 20 | "conv": "zh:科尔多巴;zh-hans:科尔多巴;zh-hk:哥度巴;zh-tw:科尔多巴;" 21 | }, 22 | { 23 | "original": "João Mário", 24 | "conv": "zh:祖奧·馬里奧;zh-hans:若昂·马里奥;zh-hk:祖奧·馬里奧;zh-tw:若昂·馬里奧;" 25 | }, 26 | { 27 | "original": "José Mourinho", 28 | "conv": "zh:何塞·穆里尼奥;zh-hans:何塞·穆里尼奥;zh-hk:荷西·摩連奴;zh-tw:若澤·穆里尼奧;" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/cgroups/rugby.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rugby", 3 | "description": "-{zh-cn:橄榄球; zh-tw:橄欖球; zh-hk:欖球}-", 4 | "path": "Module:CGroup/rugby", 5 | "rules": [ 6 | { 7 | "original": "Rugby", 8 | "conv": "zh-cn:橄榄球; zh-tw:橄欖球; zh-hk:欖球" 9 | }, 10 | { 11 | "original": "Rugby sevens", 12 | "conv": "zh-cn:七人制橄榄球; zh-tw:七人制橄欖球; zh-hk:七人欖球" 13 | }, 14 | { 15 | "original": "Rugby World Cup", 16 | "conv": "zh-hk:世界盃欖球賽; zh-hans:橄榄球世界杯赛; zh-hant:世界盃橄欖球賽;" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /data/cgroups/sandbox.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sandbox", 3 | "description": "公共转换组沙盒", 4 | "path": "Module:CGroup/sandbox", 5 | "rules": [ 6 | { 7 | "original": "Academy of *", 8 | "conv": "电影艺术与科学学院=>zh-tw:影藝學院;电影艺术与科学学院=>zh-hk:影藝學院;电影艺术与科学学院=>zh-mo:影藝學院;电影艺术与科学学院=>zh-sg:影艺学院;电影艺术与科学学院=>zh-my:影艺学院;電影藝術與科學學院=>zh-tw:影藝學院;電影藝術與科學學院=>zh-hk:影藝學院;電影藝術與科學學院=>zh-mo:影藝學院;電影藝術與科學學院=>zh-sg:影艺学院;電影藝術與科學學院=>zh-my:影艺学院;" 9 | }, 10 | { 11 | "original": "Academy of *", 12 | "conv": "电影艺术与科学学院=>zh-tw:影藝學院;电影艺术与科学学院=>zh-hk:影藝學院;电影艺术与科学学院=>zh-mo:影藝學院;电影艺术与科学学院=>zh-sg:影艺学院;电影艺术与科学学院=>zh-my:影艺学院;電影藝術與科學學院=>zh-tw:影藝學院;電影藝術與科學學院=>zh-hk:影藝學院;電影藝術與科學學院=>zh-mo:影藝學院;電影藝術與科學學院=>zh-sg:影艺学院;電影藝術與科學學院=>zh-my:影艺学院;" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /data/cgroups/伊拉克足球.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "伊拉克足球", 3 | "description": "伊拉克職業足球聯賽", 4 | "path": "Template:CGroup/伊拉克足球", 5 | "rules": [ 6 | { 7 | "original": "Al Shorta", 8 | "conv": "zh:阿尔索达; zh-hans:巴格达警察; zh-cn:巴格达警察; zh-hk:艾爾索達; " 9 | }, 10 | { 11 | "original": "Al-Zawra'a SC", 12 | "conv": "zh-hans:萨乌拉; zh-cn:祖拉; zh-hk:薩烏拉; " 13 | }, 14 | { 15 | "original": "Erbil SC", 16 | "conv": "zh:埃尔比勒; zh-hans:埃尔比勒; zh-cn:埃尔比勒竞技; zh-hk:阿比爾; " 17 | }, 18 | { 19 | "original": "Naft Al-Wasat", 20 | "conv": "zh-hans:纳夫艾瓦萨; zh-cn:纳杰夫中央石油; zh-hk:納夫艾華薩特; " 21 | }, 22 | { 23 | "original": "Iraqi Premier League", 24 | "conv": "zh:伊拉克足球超级联赛; zh-hans:伊拉克足球超级联赛; zh-cn:伊拉克足球超级联赛; zh-hant:伊拉克超級足球聯賽; zh-hk:伊拉克超級足球聯賽; " 25 | }, 26 | { 27 | "original": "Iraq FA Cup", 28 | "conv": "zh:伊拉克足协杯; zh-hans:伊拉克足协杯; zh-cn:伊拉克足协杯; zh-hk:伊拉克足總盃; " 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/cgroups/伊斯蘭.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "伊斯蘭", 3 | "description": "伊斯蘭主題", 4 | "path": "Module:CGroup/伊斯蘭", 5 | "rules": [ 6 | { 7 | "original": "Abbasid", 8 | "conv": "zh-hans:阿拔斯; zh-hant:阿拔斯; zh-tw:阿拔斯" 9 | }, 10 | { 11 | "original": "Abbasid Caliphate", 12 | "conv": "zh-hans:阿拔斯王朝; zh-hant:阿拔斯帝國; 阿巴斯王朝=>zh-tw:阿拔斯王朝" 13 | }, 14 | { 15 | "original": "Ayyubid", 16 | "conv": "zh-hans:阿尤布; zh-hant:阿尤布; zh-tw:埃宥比" 17 | }, 18 | { 19 | "original": "Caliphate of Córdoba", 20 | "conv": "zh-hans:后倭马亚王朝; zh-hant:後倭瑪亞王朝; zh-tw:後伍麥亞王朝; zh-hk:後烏瑪耶王朝; zh-mo:後烏瑪耶王朝" 21 | }, 22 | { 23 | "original": "al-Fātimiyyūn", 24 | "conv": "zh-hans:法蒂玛; zh-hant:法蒂米; zh-tw:法提瑪" 25 | }, 26 | { 27 | "original": "Sulṭanat Misr al-Mamālīk", 28 | "conv": "zh-hans:马穆鲁克王朝; zh-hant:馬木留克王朝; zh-tw:馬木路克王朝" 29 | }, 30 | { 31 | "original": "Mamluk", 32 | "conv": "马木留克=>zh-hans:马穆鲁克; 马木留克=>zh-hant:馬木留克; 马木留克=>zh-tw:馬木路克" 33 | }, 34 | { 35 | "original": "Mamluk", 36 | "conv": "zh-hans:马穆鲁克; zh-hant:馬木留克; zh-tw:馬木路克" 37 | }, 38 | { 39 | "original": "Muawiyah", 40 | "conv": "zh-hans:穆阿维叶; zh-hant:穆阿維亞" 41 | }, 42 | { 43 | "original": "Osmanlı İmparatorluğu", 44 | "conv": "zh-cn:奥斯曼帝国; zh-tw:鄂圖曼帝國; zh-hk:鄂圖曼帝國; zh-mo:鄂圖曼帝國; zh-hant:奧斯曼帝國" 45 | }, 46 | { 47 | "original": "Osmanlı Türkleri", 48 | "conv": "zh-cn:奥斯曼土耳其; zh-tw:鄂圖曼土耳其; zh-hk:鄂圖曼土耳其; zh-mo:鄂圖曼土耳其; zh-hant:奧斯曼土耳其" 49 | }, 50 | { 51 | "original": "Osmanlı Türkleri", 52 | "conv": "zh-cn:奥斯曼人; zh-tw:鄂圖曼人; zh-hk:鄂圖曼人; zh-mo:鄂圖曼人; zh-hant:奧斯曼人" 53 | }, 54 | { 55 | "original": "Saljūqiyān-e Rūm", 56 | "conv": "zh-cn:罗姆苏丹国; zh-tw:魯姆蘇丹國; zh-hk:魯姆蘇丹國" 57 | }, 58 | { 59 | "original": "Umayyads", 60 | "conv": "伍麦叶=>zh-hans:倭马亚; 伍麦叶=>zh-hant:伍麥亞; 伍麦叶=>zh-tw:倭瑪亞" 61 | }, 62 | { 63 | "original": "Umayyads", 64 | "conv": "zh-hans:倭马亚; zh-hant:伍麥亞; zh-tw:倭瑪亞" 65 | }, 66 | { 67 | "original": "Umayyad Caliphate", 68 | "conv": "zh-hans:倭马亚王朝; zh-hant:伍麥亞王朝; zh-tw:倭瑪亞王朝" 69 | }, 70 | { 71 | "original": "Yazīd", 72 | "conv": "zh-hans:耶齐德; zh-hant:耶齊德; zh-tw:雅季德" 73 | }, 74 | { 75 | "original": "Yazīd ibn Mu‘awiya ibn Abī Sufyān", 76 | "conv": "zh-hans:耶齐德一世; zh-hant:耶齊德一世; zh-tw:雅季德一世" 77 | } 78 | ] 79 | } -------------------------------------------------------------------------------- /data/cgroups/伊朗足球.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "伊朗足球", 3 | "description": "伊朗職業足球聯賽", 4 | "path": "Template:CGroup/伊朗足球", 5 | "rules": [ 6 | { 7 | "original": "Sepahan F.C.", 8 | "conv": "zh:沙巴罕伊斯法罕; zh-hans:塞帕罕; zh-cn:塞帕罕; zh-hk:沙巴罕; " 9 | }, 10 | { 11 | "original": "Esteghlal F.C.", 12 | "conv": "zh:埃斯特拉尔; zh-hans:德黑兰独立; zh-cn:德黑兰独立; zh-tw:德黑蘭獨立; zh-hk:艾斯迪格拿; " 13 | }, 14 | { 15 | "original": "Esteghlal Ahvaz F.C.", 16 | "conv": "zh-cn:阿瓦士独立; zh-hk:艾華斯; " 17 | }, 18 | { 19 | "original": "Esteghlal Khuzestan F.C.", 20 | "conv": "zh-cn:胡齐斯坦独立; zh-hk:古澤斯旦; " 21 | }, 22 | { 23 | "original": "Foolad F.C.", 24 | "conv": "zh:弗拉德; zh-hans:胡齐斯坦钢铁; zh-cn:胡齐斯坦钢铁; zh-hant:胡齊斯坦鋼鐵; zh-hk:富拿特; " 25 | }, 26 | { 27 | "original": "Naft Tehran F.C.", 28 | "conv": "zh:德黑兰石油; zh-hans:德黑兰石油; zh-cn:德黑兰石油; zh-hk:德黑蘭石油; " 29 | }, 30 | { 31 | "original": "Tractor Sazi F.C.", 32 | "conv": "zh:大不里士拖拉机; zh-hans:大不里士拖拉机; zh-cn:大不里士拖拉机; zh-hant:大不里士拖拉機; zh-hk:泰拉克托; " 33 | }, 34 | { 35 | "original": "Padideh F.C.", 36 | "conv": "zh-hans:佩迪德; zh-tw:佩迪德; zh-hk:柏迪治; " 37 | }, 38 | { 39 | "original": "Persepolis F.C.", 40 | "conv": "zh:波斯波利斯; zh-hans:波斯波利斯; zh-cn:波斯波利斯; zh-hk:柏斯波利斯; zh-tw:波斯波里斯 " 41 | }, 42 | { 43 | "original": "Malavan F.C.", 44 | "conv": "zh:马拉云; zh-hans:安扎利港水手; zh-hk:馬拉雲; " 45 | }, 46 | { 47 | "original": "Saba Qom F.C.", 48 | "conv": "zh:沙巴庫姆; zh-hans:库姆萨巴; zh-cn:萨巴电池; zh-hk:沙巴科姆; " 49 | }, 50 | { 51 | "original": "Rah Ahan Sorinet F.C.", 52 | "conv": "zh:拉亞罕; zh-hans:雷伊铁路; zh-hk:拉亞漢; " 53 | }, 54 | { 55 | "original": "Zob Ahan Isfahan F.C.", 56 | "conv": "zh:伊斯法罕佐布阿汉; zh-hans:佐帕罕; zh-cn:佐布阿汉; zh-hk:索柏阿罕; zh-hant:索柏阿漢; " 57 | }, 58 | { 59 | "original": "Paykan F.C.", 60 | "conv": "zh-tw:培坎; zh-hans:加兹温箭头; zh-hk:柏簡; " 61 | }, 62 | { 63 | "original": "Shahr Khodro F.C.", 64 | "conv": "zh:沙哈霍德罗; zh-hans:沙哈霍德罗; zh-cn:汽车城; zh-hk:帕蒂德馬斯哈德; zh-tw:沙哈霍德羅; " 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /data/cgroups/佛教.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "佛教", 3 | "description": "佛教", 4 | "path": "Module:CGroup/佛教", 5 | "rules": [ 6 | { 7 | "original": "Kuśi-nagara", 8 | "conv": "zh-cn:拘尸那揭罗; zh-tw:拘尸那揭羅;" 9 | }, 10 | { 11 | "original": "Kuśi-nagara", 12 | "conv": "zh-cn:拘尸那罗;zh-hk:拘尸那羅;zh-tw:拘尸那羅" 13 | }, 14 | { 15 | "original": "Kalaśikhin", 16 | "conv": "zh-hans:迦罗尸弃;zh-hant:迦羅尸棄" 17 | }, 18 | { 19 | "original": "Kalaśikhin", 20 | "conv": "zh-hans:歌罗尸弃;zh-hant:歌羅尸棄" 21 | }, 22 | { 23 | "original": "Pañcaśikhin", 24 | "conv": "zh-hans:般遮尸弃;zh-hant:般遮尸棄" 25 | }, 26 | { 27 | "original": "Ratnaśikhin", 28 | "conv": "zh-hans:窂罗尸弃;zh-hant:窂羅尸棄" 29 | }, 30 | { 31 | "original": "Ratnaśikhin", 32 | "conv": "zh-hans:罽那尸弃;zh-hant:罽那尸棄" 33 | }, 34 | { 35 | "original": "Ratnaśikhin", 36 | "conv": "zh-hans:剌那尸弃;zh-hant:剌那尸棄" 37 | }, 38 | { 39 | "original": "Śikhin", 40 | "conv": "zh-hans:尸弃;zh-hant:尸棄" 41 | }, 42 | { 43 | "original": "Śikhin", 44 | "conv": "zh-hans:尸弃那;zh-hant:尸棄那" 45 | }, 46 | { 47 | "original": "Vipassin", 48 | "conv": "zh-hans:毘婆尸;zh-hant:毘婆尸" 49 | }, 50 | { 51 | "original": "Vipassin", 52 | "conv": "zh-hans:毗婆尸;zh-hant:毗婆尸" 53 | }, 54 | { 55 | "original": "Vipassin", 56 | "conv": "zh-hans:毘钵尸;zh-hant:毘鉢尸" 57 | }, 58 | { 59 | "original": "Vipassin", 60 | "conv": "zh-hans:微钵尸;zh-hant:微鉢尸" 61 | }, 62 | { 63 | "original": "Vipassin", 64 | "conv": "zh-hans:鞞婆尸;zh-hant:鞞婆尸" 65 | } 66 | ] 67 | } -------------------------------------------------------------------------------- /data/cgroups/加超聯.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "加超聯", 3 | "description": "加拿大超級足球聯賽", 4 | "path": "Module:CGroup/加超聯", 5 | "rules": [ 6 | { 7 | "original": "Première ligue canadienne", 8 | "conv": "zh:加拿大超级足球联赛;zh-hans:加拿大超级足球联赛;zh-hk:加拿大超級足球聯賽;zh-hant:加拿大超級足球聯賽;" 9 | }, 10 | { 11 | "original": "Championnat canadien", 12 | "conv": "zh:加拿大足球锦标赛;zh-hans:加拿大足球锦标赛;zh-hk:加拿大足球錦標賽;zh-tw:加拿大足球錦標賽;" 13 | }, 14 | { 15 | "original": "PLCan / CanPL", 16 | "conv": "zh-hans:加超联;zh-hant:加超聯;" 17 | }, 18 | { 19 | "original": "Pacific FC", 20 | "conv": "zh-hans:太平洋FC;zh-hant:太平洋FC;zh-hk:太平洋FC;zh-mo:太平洋FC;" 21 | }, 22 | { 23 | "original": "Cavalry FC", 24 | "conv": "zh-hans:卡尔加利骑兵;zh-hant:卡爾加里騎兵;zh-hk:卡加利騎兵;zh-mo:卡加利騎兵;" 25 | }, 26 | { 27 | "original": "FC Edmonton", 28 | "conv": "zh-hans:FC埃德蒙顿;zh-hant:FC埃德蒙頓;zh-hk:FC愛民頓;zh-mo:FC愛民頓;" 29 | }, 30 | { 31 | "original": "Valour FC", 32 | "conv": "zh-hans:温尼伯荣军;zh-hant:溫尼伯榮軍;zh-hk:溫尼伯榮軍;zh-mo:溫尼伯榮軍;" 33 | }, 34 | { 35 | "original": "Forge FC", 36 | "conv": "zh-hans:哈密尔顿锻钢;zh-hant:哈密爾頓鍛鋼;zh-hk:咸美頓鍛鋼;zh-mo:咸美頓鍛鋼;" 37 | }, 38 | { 39 | "original": "York9 FC", 40 | "conv": "zh-hans:约克九镇;zh-hant:約克九鎮;zh-hk:約克九鎮;zh-mo:約克九鎮;" 41 | }, 42 | { 43 | "original": "York United FC", 44 | "conv": "zh-hans:约克联;zh-hant:約克聯;zh-hk:約克聯;zh-mo:約克聯;" 45 | }, 46 | { 47 | "original": "Atlético Ottawa", 48 | "conv": "zh-hans:渥太华竞技;zh-hant:渥太華競技;zh-hk:渥太華競技;zh-mo:渥太華競技;" 49 | }, 50 | { 51 | "original": "HFX Wanderers FC", 52 | "conv": "zh-hans:哈利法克斯流浪者;zh-hant:哈利法克斯流浪者;zh-hk:哈利法斯流浪;zh-mo:哈利法斯流浪;" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/博弈论.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "博弈论", 3 | "description": "博弈论/賽局理論", 4 | "path": "Module:CGroup/博弈论", 5 | "rules": [ 6 | { 7 | "original": "game theory", 8 | "conv": "zh-cn:博弈论; zh-tw:賽局理論; zh-hk:博弈論;" 9 | }, 10 | { 11 | "original": "game", 12 | "conv": "zh-cn:博弈; zh-tw:賽局; zh-hk:博弈;" 13 | }, 14 | { 15 | "original": "complete information", 16 | "conv": "zh-cn:完全信息; zh-tw:完全訊息;" 17 | }, 18 | { 19 | "original": "game tree", 20 | "conv": "zh-tw:競賽樹; zh-cn:博弈树; zh-hk:博弈樹;" 21 | }, 22 | { 23 | "original": "information", 24 | "conv": "zh-cn:信息; zh-tw:資訊;" 25 | }, 26 | { 27 | "original": "information set", 28 | "conv": "zh-cn:信息集; zh-tw:資訊集合;" 29 | }, 30 | { 31 | "original": "operational research", 32 | "conv": "zh-cn:运筹学; zh-hk:運籌學; zh-tw:作業研究;" 33 | }, 34 | { 35 | "original": "Prisoners dilemma", 36 | "conv": "zh-cn:囚徒困境; zh-tw:囚犯困境; zh-hk:囚徒困境;" 37 | }, 38 | { 39 | "original": "sequential game", 40 | "conv": "zh-cn:序贯博弈; zh-tw:序列賽局; zh-hk:序列博弈;" 41 | }, 42 | { 43 | "original": "signaling game", 44 | "conv": "zh-cn:信号博弈; zh-tw:傳訊賽局; zh-hk:信號博弈;" 45 | }, 46 | { 47 | "original": "volunteer", 48 | "conv": "zh-cn:志愿者; zh-tw:自願者; zh-hk:志願者;" 49 | }, 50 | { 51 | "original": "Bayesian game", 52 | "conv": "zh-cn:贝叶斯博弈; zh-tw:貝氏賽局; zh-hk:貝葉斯博弈;" 53 | }, 54 | { 55 | "original": "Pareto", 56 | "conv": "zh-cn:帕累托; zh-hk:柏拉圖; zh-tw:柏拉圖; 帕雷托=>zh-hk:柏拉圖; 帕雷托=>zh-tw:柏拉圖;" 57 | }, 58 | { 59 | "original": "Pareto optimality", 60 | "conv": "zh-cn:帕累托最优; zh-hant:帕雷托最優; zh-hk:柏拉圖最適; zh-tw:柏拉圖最適; 帕雷托最优=>zh-hk:柏拉圖最適; 帕雷托最优=>zh-tw:柏拉圖最適;" 61 | } 62 | ] 63 | } -------------------------------------------------------------------------------- /data/cgroups/叙利亚职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "叙利亚职业足球联赛", 3 | "description": "叙利亚职业足球联赛", 4 | "path": "Template:CGroup/叙利亚职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Wahda", 8 | "conv": "zh:大马士革单元; zh-hans:大马士革单元; zh-cn:大马士革单元; zh-hk:大馬士革單元; " 9 | }, 10 | { 11 | "original": "Jaish", 12 | "conv": "zh:大马士革武装; zh-hans:大马士革卫队; zh-cn:大马士革武装; zh-hk:敘利亞武裝部隊; " 13 | }, 14 | { 15 | "original": "Muhafaza", 16 | "conv": "zh:大马士革保守; zh-hans:大马士革保守; zh-cn:大马士革保守; " 17 | }, 18 | { 19 | "original": "Shorta", 20 | "conv": "zh:大马士革警察; zh-hans:大马士革警察; zh-cn:大马士革警察; zh-hk:大馬士革警察; " 21 | }, 22 | { 23 | "original": "Majd", 24 | "conv": "zh:大马士革荣耀; zh-hans:大马士革荣耀; zh-cn:大马士革荣耀; " 25 | }, 26 | { 27 | "original": "Karamah", 28 | "conv": "zh:霍姆斯尊严; zh-hans:霍姆斯尊严; zh-cn:霍姆斯尊严; zh-hk:霍姆斯尊嚴; " 29 | }, 30 | { 31 | "original": "Wathba", 32 | "conv": "zh:霍姆斯腾跃; zh-hans:霍姆斯腾跃; zh-cn:霍姆斯腾跃; " 33 | }, 34 | { 35 | "original": "Taliya", 36 | "conv": "zh:哈马先锋; zh-hans:哈马先锋; zh-cn:哈马先锋; " 37 | }, 38 | { 39 | "original": "Nawair", 40 | "conv": "zh:哈马水利; zh-hans:哈马水利; zh-cn:哈马水利; " 41 | }, 42 | { 43 | "original": "Ittihad", 44 | "conv": "zh:阿勒颇工会; zh-hans:阿勒颇工会; zh-cn:阿勒颇工会; zh-hk:阿勒頗工會; " 45 | }, 46 | { 47 | "original": "Hurriya", 48 | "conv": "zh:阿勒颇自由; zh-hans:阿勒颇自由; zh-cn:阿勒颇自由; " 49 | }, 50 | { 51 | "original": "Tishreen", 52 | "conv": "zh:十至十一月; zh-hans:十至十一月; zh-cn:十至十一月; " 53 | }, 54 | { 55 | "original": "Hutteen", 56 | "conv": "zh:拉塔基亚哈丁; zh-hans:拉塔基亚哈丁; zh-cn:拉塔基亚哈丁; " 57 | }, 58 | { 59 | "original": "Omayya", 60 | "conv": "zh:伊德利卜文化; zh-hans:伊德利卜文化; zh-cn:伊德利卜文化; " 61 | }, 62 | { 63 | "original": "Baniyas Refinery", 64 | "conv": "zh:巴尼亚斯化工厂; zh-hans:巴尼亚斯化工厂; zh-cn:巴尼亚斯化工厂; " 65 | }, 66 | { 67 | "original": "Futowa", 68 | "conv": "zh:代尔祖尔霸主; zh-hans:代尔祖尔霸主; zh-cn:代尔祖尔霸主; " 69 | }, 70 | { 71 | "original": "Jazeera", 72 | "conv": "zh:哈塞克半岛; zh-hans:哈塞克半岛; zh-cn:哈塞克半岛; " 73 | }, 74 | { 75 | "original": "Jihad", 76 | "conv": "zh:卡米什利圣战; zh-hans:卡米什利圣战; zh-hant:卡米什利聖戰; " 77 | }, 78 | { 79 | "original": "Syrian Premier League", 80 | "conv": "zh:叙利亚足球超级联赛; zh-hans:叙利亚足球超级联赛; zh-cn:叙利亚足球超级联赛; zh-hk:敘利亞超級足球聯賽; " 81 | }, 82 | { 83 | "original": "Syrian Cup", 84 | "conv": "zh:叙利亚杯; zh-hans:叙利亚杯; zh-cn:叙利亚杯; " 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/單雙書名號轉換.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "單雙書名號轉換", 3 | "description": "單雙書名號轉換", 4 | "path": "Module:CGroup/單雙書名號轉換", 5 | "rules": [ 6 | { 7 | "original": "〈", 8 | "conv": "〈=>zh-cn:《; 〈=>zh-my:《; 〈=>zh-sg:《; 〈=>zh-hk:《; 〈=>zh-mo:《;〈=>zh-tw:〈;" 9 | }, 10 | { 11 | "original": "〉", 12 | "conv": "〉=>zh-cn:》; 〉=>zh-my:》; 〉=>zh-sg:》; 〉=>zh-hk:》; 〉=>zh-mo:》; 〉=>zh-tw:〉;" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /data/cgroups/圍棋.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "圍棋", 3 | "description": "圍棋", 4 | "path": "Module:CGroup/圍棋", 5 | "rules": [ 6 | { 7 | "original": "定石", 8 | "conv": "zh-cn:定式; zh-tw:定石;" 9 | }, 10 | { 11 | "original": "當たり", 12 | "conv": "zh-cn:打吃; zh-tw:叫吃;" 13 | }, 14 | { 15 | "original": "碁", 16 | "conv": "zh-hans:碁; zh-hant:碁;" 17 | }, 18 | { 19 | "original": "詰碁", 20 | "conv": "zh-tw:詰碁; zh-cn:诘棋;" 21 | }, 22 | { 23 | "original": "", 24 | "conv": "zh-cn:枷吃; zh-tw:門封;" 25 | }, 26 | { 27 | "original": "番碁", 28 | "conv": "zh-cn:局赛; zh-tw:番碁;" 29 | }, 30 | { 31 | "original": "準名人", 32 | "conv": "zh-hans:准名人; zh-hant:準名人;" 33 | }, 34 | { 35 | "original": "棋士", 36 | "conv": "zh-cn:棋手; zh-tw:棋士;" 37 | }, 38 | { 39 | "original": "이세돌", 40 | "conv": "zh-hans:李世石; zh-hant:李世乭;" 41 | }, 42 | { 43 | "original": "치훈", 44 | "conv": "zh-hans:治勋; zh-hant:治勳;" 45 | }, 46 | { 47 | "original": "이동훈", 48 | "conv": "zh-hans:李东勋; zh-hant:李東勳;" 49 | }, 50 | { 51 | "original": "周俊勳", 52 | "conv": "zh-hans:周俊勋; zh-hant:周俊勳;" 53 | }, 54 | { 55 | "original": "雁金準一", 56 | "conv": "zh-hans:雁金准一; zh-hant:雁金準一;" 57 | }, 58 | { 59 | "original": "小松快禅", 60 | "conv": "zh-hans:小松快禅; zh-hant:小松快禪;" 61 | }, 62 | { 63 | "original": "寺山怜", 64 | "conv": "zh-hans:寺山怜; zh-hant:寺山怜;" 65 | }, 66 | { 67 | "original": "강승민", 68 | "conv": "zh-hans:姜昇旼;zh-hant:姜昇旼;" 69 | }, 70 | { 71 | "original": "강승민", 72 | "conv": "姜升旼=>zh-cn:姜昇旼;姜升旼=>zh-hant:姜昇旼;" 73 | }, 74 | { 75 | "original": "林杰漢", 76 | "conv": "zh-hans:林杰汉; zh-hant:林杰漢;" 77 | }, 78 | { 79 | "original": "孔杰", 80 | "conv": "zh-hans:孔杰; zh-hant:孔杰;" 81 | }, 82 | { 83 | "original": "", 84 | "conv": "zh-hans:芮迺伟;zh-hant:芮迺偉" 85 | }, 86 | { 87 | "original": "", 88 | "conv": "芮乃伟=>zh-cn:芮迺伟;芮乃伟=>zh-hant:芮迺偉;" 89 | } 90 | ] 91 | } -------------------------------------------------------------------------------- /data/cgroups/娛樂.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "娛樂", 3 | "description": "娛樂", 4 | "path": "Template:CGroup/娛樂", 5 | "rules": [ 6 | { 7 | "original": "", 8 | "conv": "zh-hans:大运会;zh-hant:世大運;" 9 | }, 10 | { 11 | "original": "", 12 | "conv": "zh-hans:魔方;zh-hant:魔術方塊;" 13 | }, 14 | { 15 | "original": "", 16 | "conv": "zh-hans:残疾人奥林匹克运动会;zh-hk:傷殘奧林匹克運動會;zh-tw:帕拉林匹克運動會;" 17 | }, 18 | { 19 | "original": "", 20 | "conv": "zh-hans:残奥会;zh-tw:帕拉林匹克運動會;zh-hk:殘奧會;" 21 | }, 22 | { 23 | "original": "", 24 | "conv": "zh-hans:残奥;zh-tw:帕運;zh-hk:殘奧;" 25 | }, 26 | { 27 | "original": "", 28 | "conv": "zh-hans:沒戏;zh-hant:沒戲唱;" 29 | }, 30 | { 31 | "original": "", 32 | "conv": "zh-hans:国庆节;zh-hant:國慶日;" 33 | }, 34 | { 35 | "original": "", 36 | "conv": "zh-hans:游园会;zh-hant:園遊會;" 37 | }, 38 | { 39 | "original": "", 40 | "conv": "zh-hans:单本剧;zh-hant:單元劇;" 41 | }, 42 | { 43 | "original": "", 44 | "conv": "zh-hans:小蝸;zh-hant:小耳朵;" 45 | }, 46 | { 47 | "original": "", 48 | "conv": "zh-cn:戛纳; zh-tw:坎城; zh-hk:康城; zh-sg:康城; zh-my:康城;" 49 | }, 50 | { 51 | "original": "", 52 | "conv": "zh-hans:悬疑; zh-hant:懸疑;" 53 | }, 54 | { 55 | "original": "", 56 | "conv": "zh-hans:朋克; zh-hant:龐克;" 57 | }, 58 | { 59 | "original": "", 60 | "conv": "zh-hans:军旅; zh-hant:軍教;" 61 | }, 62 | { 63 | "original": "", 64 | "conv": "zh-hans:军旅剧; zh-hant:軍教片;" 65 | }, 66 | { 67 | "original": "", 68 | "conv": "zh-hans:系列片; zh-hant:影集; zh-hk:劇集;" 69 | }, 70 | { 71 | "original": "", 72 | "conv": "zh-hans:报告文学; zh-hant:報導文學;" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/巴勒斯坦职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "巴勒斯坦职业足球联赛", 3 | "description": "巴勒斯坦職業足球聯賽", 4 | "path": "Template:CGroup/巴勒斯坦职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Taraji Wadi Al-Nes", 8 | "conv": "zh:内斯谷回归; zh-hans:内斯谷回归; zh-cn:内斯谷回归; zh-hk:塔拉治華迪艾尼斯; " 9 | }, 10 | { 11 | "original": "Hilal Al-Quds", 12 | "conv": "zh:新月圣城; zh-hans:新月圣城; zh-cn:新月圣城; zh-hk:希拉爾基斯; " 13 | }, 14 | { 15 | "original": "Shabab Al-Khalil", 16 | "conv": "zh:哈利勒沙巴布; zh-hans:哈利勒青年; zh-cn:哈利勒青年; zh-hk:薩巴艾基哈爾; " 17 | }, 18 | { 19 | "original": "West Bank Premier League", 20 | "conv": "zh:西岸足球超级联赛; zh-hans:西岸足球超级联赛; zh-cn:西岸足球超级联赛; zh-hant:西岸超級足球聯賽; zh-hk:西岸超級足球聯賽; " 21 | }, 22 | { 23 | "original": "Palestine Cup", 24 | "conv": "zh:巴勒斯坦杯; zh-hans:巴勒斯坦杯; zh-cn:巴勒斯坦杯; zh-hk:巴勒斯坦盃; " 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /data/cgroups/巴林职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "巴林职业足球联赛", 3 | "description": "巴林職業足球聯賽", 4 | "path": "Template:CGroup/巴林职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Riffa SC", 8 | "conv": "zh:里法体育俱乐部; zh-hans:里法体育俱乐部; zh-cn:里法竞技俱乐部; zh-hk:阿爾利化體育會; " 9 | }, 10 | { 11 | "original": "Riffa", 12 | "conv": "zh:里法体育; zh-hans:里法体育; zh-cn:里法竞技; zh-hk:阿爾利化; " 13 | }, 14 | { 15 | "original": "Al-Hidd", 16 | "conv": "zh:希德; zh-hans:希德; zh-cn:希德; zh-hk:艾希迪; " 17 | }, 18 | { 19 | "original": "East Riffa", 20 | "conv": "zh:东里法; zh-hans:东里法; zh-cn:东里法; zh-hk:东列法; " 21 | }, 22 | { 23 | "original": "Bahrain SC", 24 | "conv": "zh:巴林体育俱乐部; zh-hans:巴林体育俱乐部; zh-cn:巴林竞技俱乐部; zh-hk:阿爾巴林體育會; " 25 | }, 26 | { 27 | "original": "Bahrain SC", 28 | "conv": "zh:巴林体育; zh-hans:巴林体育; zh-cn:巴林竞技; zh-hk:阿爾巴林; " 29 | }, 30 | { 31 | "original": "Al-Muharraq SC", 32 | "conv": "zh:穆哈拉格体育俱乐部; zh-hans:穆哈拉格体育俱乐部; zh-cn:穆哈拉格竞技俱乐部; zh-hk:阿爾慕哈瑞克體育會; " 33 | }, 34 | { 35 | "original": "Al-Muharraq SC", 36 | "conv": "zh:穆哈拉格; zh-hans:穆哈拉格; zh-cn:穆哈拉格; zh-hk:慕哈瑞克; " 37 | }, 38 | { 39 | "original": "Malkiya Club", 40 | "conv": "zh:马尔基亚体育俱乐部; zh-hans:马尔基亚体育俱乐部; zh-cn:马尔基亚竞技俱乐部; zh-hk:瑪基亞體育會; " 41 | }, 42 | { 43 | "original": "Al-Malkiya Club", 44 | "conv": "zh:马尔基亚; zh-hans:马尔基亚; zh-cn:马尔基亚; zh-hk:瑪基亞; " 45 | }, 46 | { 47 | "original": "Busaiteen Club", 48 | "conv": "zh:布赛廷俱乐部; zh-hans:布赛廷俱乐部; zh-cn:布赛廷俱乐部; zh-hk:布賽廷俱樂部; " 49 | }, 50 | { 51 | "original": "Busaiteen", 52 | "conv": "zh:布赛廷; zh-hans:布赛廷; zh-cn:布赛廷; zh-hk:布賽廷; " 53 | }, 54 | { 55 | "original": "Al Hala SC", 56 | "conv": "zh:哈拉体育俱乐部; zh-hans:哈拉体育俱乐部; zh-cn:哈拉竞技俱乐部; zh-hk:阿爾哈拉體育會; " 57 | }, 58 | { 59 | "original": "Al Hala", 60 | "conv": "zh:哈拉体育; zh-hans:哈拉体育; zh-cn:哈拉竞技; zh-hk:哈拉體育會; " 61 | }, 62 | { 63 | "original": "Al-Shabab Club (Manama)", 64 | "conv": "zh:麦纳麦青年俱乐部; zh-hans:麦纳麦青年俱乐部; zh-cn:麦纳麦青年俱乐部; zh-hk:沙巴柏麥納麥足球會; " 65 | }, 66 | { 67 | "original": "Al-Shabab Club (Manama)", 68 | "conv": "zh:麦纳麦青年; zh-hans:麦纳麦青年; zh-cn:麦纳麦青年; zh-hk:沙巴柏麥納麥; " 69 | }, 70 | { 71 | "original": "Manama Club", 72 | "conv": "zh:麦纳麦俱乐部; zh-hans:麦纳麦俱乐部; zh-cn:麦纳麦俱乐部; zh-hk:麥納麥足球會; " 73 | }, 74 | { 75 | "original": "Manama Club", 76 | "conv": "zh:麦纳麦; zh-hans:麦纳麦; zh-cn:麦纳麦; zh-hk:麥納麥; " 77 | }, 78 | { 79 | "original": "Bahraini Premier League", 80 | "conv": "zh:巴林足球超级联赛; zh-hans:巴林足球超级联赛; zh-cn:巴林足球超级联赛; zh-hant:巴林超級足球聯賽; zh-hk:巴林超級足球聯賽; " 81 | }, 82 | { 83 | "original": "Bahraini King's Cup", 84 | "conv": "zh:巴林国王杯; zh-hans:巴林国王杯; zh-cn:巴林国王杯; zh-hk:巴林國王盃; " 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/暗影诗章 (动画).json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "闇影詩章 (動畫)", 3 | "description": "本转换组主要是针对中国大陆和港澳台地区动画译名的转换", 4 | "path": "Module:CGroup/暗影诗章 (动画)", 5 | "rules": [ 6 | { 7 | "original": "", 8 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 9 | }, 10 | { 11 | "original": "", 12 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 13 | }, 14 | { 15 | "original": "", 16 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 17 | }, 18 | { 19 | "original": "", 20 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 21 | }, 22 | { 23 | "original": "", 24 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 25 | }, 26 | { 27 | "original": "", 28 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 29 | }, 30 | { 31 | "original": "", 32 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 33 | }, 34 | { 35 | "original": "", 36 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 37 | }, 38 | { 39 | "original": "", 40 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 41 | }, 42 | { 43 | "original": "", 44 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 45 | }, 46 | { 47 | "original": "", 48 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 49 | }, 50 | { 51 | "original": "", 52 | "conv": "zh:中文;zh-hans:简体;zh-hant:繁體;zh-cn:大陆;zh-tw:臺灣;zh-hk:香港;zh-sg:新馬;zh-mo:澳門;" 53 | } 54 | ] 55 | } -------------------------------------------------------------------------------- /data/cgroups/村上春樹.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "村上春樹", 3 | "description": "村上春樹", 4 | "path": "Module:CGroup/村上春樹", 5 | "rules": [ 6 | { 7 | "original": "风の歌を聴け", 8 | "conv": "zh-cn:且听风吟;zh-tw:聽風的歌;zh-hk:聽風的歌;zh-sg:且听风吟;" 9 | }, 10 | { 11 | "original": "1973年のピンボール", 12 | "conv": "zh-cn:一九七三年的弹子球;zh-tw:一九七三年的彈珠玩具;zh-hk:一九七三年的彈珠玩具;zh-sg:一九七三年的弹子球;" 13 | }, 14 | { 15 | "original": "1973年のピンボール", 16 | "conv": "zh-cn:1973年的弹子球;zh-tw:1973年的彈珠玩具;zh-hk:1973年的彈珠玩具;zh-sg:1973年的弹子球;" 17 | }, 18 | { 19 | "original": "世界の終りとハードボイルド・ワンダーランド", 20 | "conv": "zh-cn:世界尽头与冷酷仙境;zh-tw:世界末日與冷酷異境;zh-hk:世界末日與冷酷異境;zh-sg:世界尽头与冷酷仙境;" 21 | }, 22 | { 23 | "original": "ダンス・ダンス・ダンス", 24 | "conv": "zh-cn:舞!舞!舞!;zh-tw:舞·舞·舞;zh-hk:舞·舞·舞;zh-sg:舞!舞!舞!;" 25 | }, 26 | { 27 | "original": "国境の南、太陽の西", 28 | "conv": "zh-cn:国境以南 太阳以西;zh-tw:國境之南 太陽之西;zh-hk:國境之南 太陽之西;zh-sg:国境以南 太阳以西;" 29 | }, 30 | { 31 | "original": "ねじまき鳥クロニクル", 32 | "conv": "zh-cn:奇鸟行状录;zh-tw:發條鳥年代記;zh-hk:發條鳥年代記;zh-sg:奇鸟行状录;" 33 | }, 34 | { 35 | "original": "スプートニクの恋人", 36 | "conv": "zh-cn:斯普特尼克恋人;zh-tw:人造衛星情人;zh-hk:人造衛星情人;zh-sg:斯普特尼克恋人;" 37 | }, 38 | { 39 | "original": "アフターダーク", 40 | "conv": "zh-cn:天黑以后;zh-tw:黑夜之後;zh-hk:黑夜之後;zh-sg:天黑以后;" 41 | }, 42 | { 43 | "original": "螢・納屋を焼く・その他の短編", 44 | "conv": "zh-cn:萤;zh-hant:螢火蟲;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/民族.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "民族", 3 | "description": "民族", 4 | "path": "Module:CGroup/民族", 5 | "rules": [ 6 | { 7 | "original": "Bushmen", 8 | "conv": "zh-hans:布须曼; zh-hk:布希曼; zh-tw:布希曼" 9 | }, 10 | { 11 | "original": "Gothic", 12 | "conv": "zh-cn:哥特; zh-hk:歌德; zh-tw:哥德; zh-sg:歌德" 13 | }, 14 | { 15 | "original": "Kurd", 16 | "conv": "zh:库尔德; zh-hans:库尔德; zh-hk:庫爾德; zh-tw:庫德" 17 | }, 18 | { 19 | "original": "Solomons", 20 | "conv": "zh-hans:所罗门人; zh-hant:所羅門人; zh-tw:索羅門人" 21 | }, 22 | { 23 | "original": "Suebi", 24 | "conv": "zh-hans:苏维汇; zh-hant:蘇維匯; zh-tw:斯維比" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /data/cgroups/泰國人名.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "泰國人名", 3 | "description": "泰國人名", 4 | "path": "Template:CGroup/泰國人名", 5 | "rules": [ 6 | { 7 | "original": "ยิ่งลักษณ์", 8 | "conv": "zh-cn:英拉;zh-tw:盈拉;zh-hk:英祿;zh-sg:英叻;|display={{{display|no" 9 | }, 10 | { 11 | "original": "ชินวัตร", 12 | "conv": "zh-cn:西那瓦;zh-tw:欽那瓦; zh-hk:西那瓦;zh-sg:钦那瓦;|display={{{display|no" 13 | }, 14 | { 15 | "original": "ทักษิณl", 16 | "conv": "zh-cn:他信;zh-tw:塔克辛; zh-hk:他信; zh-sg:达信;|display={{{display|no" 17 | }, 18 | { 19 | "original": "อภิสิทธิ์", 20 | "conv": "zh-cn:阿披实;zh-tw:艾比希;zh-hk:阿披實; zh-sg:阿比昔;|display={{{display|no" 21 | }, 22 | { 23 | "original": "ภูมิพลอดุลยเดช", 24 | "conv": "zh-cn:普密蓬; zh-tw:蒲美蓬;zh-hk:普密蓬;zh-sg:蒲眉蓬;|display={{{display|no" 25 | }, 26 | { 27 | "original": "ชวน หลีกภัย", 28 | "conv": "zh-cn:川·立派;zh-tw:乃川;zh-hk:川立派;|display={{{display|no" 29 | }, 30 | { 31 | "original": "ชวลิต", 32 | "conv": "zh-cn:差瓦立;zh-tw:昭華利;zh-hk:差瓦立;zh-sg:查瓦利;|display={{{display|no" 33 | }, 34 | { 35 | "original": "สนธิ", 36 | "conv": "zh-cn:颂提;zh-tw:宋帝;zh-hk:頌提;|display={{{display|no" 37 | }, 38 | { 39 | "original": "สมชาย", 40 | "conv": "zh-cn:颂猜;zh-tw:宋才;zh-hk:頌猜;|display={{{display|no" 41 | }, 42 | { 43 | "original": "ชาติชาย", 44 | "conv": "zh-cn:差猜;zh-tw:察柴;zh-hk:差提猜;|display={{{display|no" 45 | }, 46 | { 47 | "original": "คึกฤทธิ์ ปราโมช", 48 | "conv": "zh-cn:克立·巴莫;zh-tw:克里巴莫;zh-hk:克立·巴莫;|display={{{display|no" 49 | }, 50 | { 51 | "original": "เสนีย์", 52 | "conv": "zh-cn:社尼;zh-tw:西尼;zh-hk:社尼;|display={{{display|no" 53 | }, 54 | { 55 | "original": "ธานินทร์", 56 | "conv": "zh-cn:他宁;zh-tw:譚寧;zh-hk:他寧;|display={{{display|no" 57 | }, 58 | { 59 | "original": "เกรียงศักดิ์", 60 | "conv": "zh-cn:江萨;zh-tw:克利安薩;zh-hk:江薩;|display={{{display|no" 61 | }, 62 | { 63 | "original": "สงัด", 64 | "conv": "zh-cn:沙鄂;zh-tw:桑加德;zh-hk:沙鄂;|display={{{display|no" 65 | }, 66 | { 67 | "original": "จันทร์โอชา", 68 | "conv": "zh-tw:詹歐查;zh-hk:占奧差;zh-cn:占奥差;|display={{{display|no" 69 | }, 70 | { 71 | "original": "ประยุทธ์", 72 | "conv": "zh-tw:帕拉育;zh-hk:巴育;zh-cn:巴育;|display={{{display|no" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/涼宮春日的憂鬱.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "涼宮春日的憂鬱", 3 | "description": "涼宮春日的憂鬱", 4 | "path": "Template:CGroup/涼宮春日的憂鬱", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-cn:约翰·史密斯; zh-tw:約翰·史密斯; zh-hk:John Smith; zh:約翰·史密夫;" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-cn:约翰; zh-tw:約翰; zh-hk:John; zh:約翰;" 13 | }, 14 | { 15 | "original": null, 16 | "conv": "zh-cn:史密斯; zh-tw:史密斯; zh-hk:Smith; zh:史密夫;" 17 | }, 18 | { 19 | "original": null, 20 | "conv": "zh-cn:电脑研究社社长; zh-tw:電腦研究社社長; zh-hk:電腦研究部主席;" 21 | }, 22 | { 23 | "original": null, 24 | "conv": "zh-cn:电脑研究社; zh-tw:電腦研究社; zh-hk:電腦研究部;" 25 | }, 26 | { 27 | "original": null, 28 | "conv": "zh-cn:闭锁空间; zh-tw:閉鎖空間; zh-hk:封閉空間;" 29 | }, 30 | { 31 | "original": null, 32 | "conv": "zh-cn:信息; zh-tw:資訊;" 33 | }, 34 | { 35 | "original": null, 36 | "conv": "zh-cn:通过; zh-tw:透過;" 37 | }, 38 | { 39 | "original": null, 40 | "conv": "zh-cn:禁止事项; zh-tw:禁止項目; zh-hk:禁止事項;" 41 | }, 42 | { 43 | "original": null, 44 | "conv": "zh-cn:初中; zh-tw:國中; zh-hk:初中;" 45 | }, 46 | { 47 | "original": null, 48 | "conv": "zh-cn:学姐; zh-tw:學姐; zh-hk:師姐;" 49 | }, 50 | { 51 | "original": null, 52 | "conv": "zh-cn:管理人伯伯; zh-tw:管理人伯伯; zh-hk:看更伯伯;" 53 | }, 54 | { 55 | "original": null, 56 | "conv": "zh-cn:文艺社社长; zh-tw:文藝社社長; zh-hk:文藝部部長" 57 | }, 58 | { 59 | "original": null, 60 | "conv": "zh-cn:文艺社; zh-tw:文藝社; zh-hk:文藝部" 61 | }, 62 | { 63 | "original": null, 64 | "conv": "zh-cn:晴天好心情; zh-tw:晴天愉快; zh-hk:天晴心晴;" 65 | }, 66 | { 67 | "original": null, 68 | "conv": "zh-cn:凉宫春日的直观;zh-tw:涼宮春日的直覺;" 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /data/cgroups/畜牧.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "畜牧", 3 | "description": "畜牧", 4 | "path": "Module:CGroup/畜牧", 5 | "rules": [ 6 | { 7 | "original": "stress", 8 | "conv": "zh:应激;zh-hans:应激;zh-hant:緊迫;zh-cn:应激;zh-tw:緊迫;zh-hk:緊迫;zh-sg:应激;zh-mo:緊迫;" 9 | }, 10 | { 11 | "original": "Porcine stress syndrome", 12 | "conv": "zh:猪应激综合征;zh-hans:猪应激综合征;zh-hant:豬緊迫症候群;zh-cn:猪应激综合征;zh-tw:豬緊迫症候群;zh-hk:豬緊迫症候群;zh-sg:猪应激综合征;zh-mo:豬緊迫症候群;" 13 | }, 14 | { 15 | "original": "pseudorabies", 16 | "conv": "zh:伪狂犬;zh-hans:伪狂犬;zh-hant:假性狂犬;zh-cn:伪狂犬;zh-tw:假性狂犬;zh-hk:假性狂犬;zh-sg:伪狂犬;zh-mo:假性狂犬;" 17 | }, 18 | { 19 | "original": "wean", 20 | "conv": "zh:断奶;zh-hans:断奶;zh-hant:離乳;zh-cn:断奶;zh-tw:斷奶;zh-hk:離乳;zh-sg:断奶;zh-mo:離乳;" 21 | }, 22 | { 23 | "original": "performance test", 24 | "conv": "zh:性能测定;zh-hans:性能测定;zh-hant:性能檢定;zh-cn:性能测定;zh-tw:性能檢定;zh-hk:性能檢定;zh-sg:性能测定;zh-mo:性能檢定;" 25 | }, 26 | { 27 | "original": "Infectious bursal disease", 28 | "conv": "zh:传染性法氏囊病;zh-hans:传染性法氏囊病;zh-hant:傳染性華氏囊病;zh-cn:传染性法氏囊病;zh-tw:傳染性華氏囊病;zh-hk:傳染性華氏囊病;zh-sg:传染性法氏囊病;zh-mo:傳染性華氏囊病;" 29 | }, 30 | { 31 | "original": "Berkshire", 32 | "conv": "zh:巴克夏;zh-hans:巴克夏;zh-hant:盤克夏;zh-cn:巴克夏;zh-tw:盤克夏;zh-hk:盤克夏;zh-sg:巴克夏;zh-mo:盤克夏;" 33 | }, 34 | { 35 | "original": "Hampshire", 36 | "conv": "zh:汉普夏;zh-hans:汉普夏;zh-hant:漢布夏;zh-cn:汉普夏;zh-tw:漢布夏;zh-hk:漢布夏;zh-sg:汉普夏;zh-mo:漢布夏;" 37 | }, 38 | { 39 | "original": "Landrace", 40 | "conv": "zh:藍瑞斯;zh-hans:长白猪;zh-hant:藍瑞斯;zh-cn:长白猪;zh-tw:藍瑞斯;zh-hk:藍瑞斯;zh-sg:长白猪;zh-mo:藍瑞斯;" 41 | }, 42 | { 43 | "original": "mycoplasmosis", 44 | "conv": "zh:支原体;zh-hans:支原体;zh-hant:黴漿菌;zh-cn:支原体;zh-tw:黴漿菌;zh-hk:黴漿菌;zh-sg:支原体;zh-mo:黴漿菌;" 45 | } 46 | ] 47 | } -------------------------------------------------------------------------------- /data/cgroups/當個創世神.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "當個創世神", 3 | "description": "Minecraft", 4 | "path": "Template:CGroup/當個創世神", 5 | "rules": [ 6 | { 7 | "original": "Minecraft", 8 | "conv": "zh-cn:我的世界;zh-tw:當個創世神;" 9 | }, 10 | { 11 | "original": "Minecraft News", 12 | "conv": "zh-cn:我的世界新闻;zh-tw:創世神新聞;" 13 | }, 14 | { 15 | "original": "Minecraft Bedrock Edition", 16 | "conv": "zh-cn:我的世界 基岩版;zh-tw:當個創世神 基岩版;" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /data/cgroups/科威特职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "科威特职业足球联赛", 3 | "description": "科威特职业足球联赛", 4 | "path": "Module:CGroup/科威特职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Kuwait SC", 8 | "conv": "zh:阿尔科威特;zh-hans:科威特体育;zh-hant:阿爾科威特;zh-cn:科威特竞技;zh-hk:科威特競技;" 9 | }, 10 | { 11 | "original": "Qadsia SC", 12 | "conv": "zh:卡迪西亚;zh-hans:卡迪西亚;zh-hant:卡迪斯亞;zh-cn:卡迪西亚;" 13 | }, 14 | { 15 | "original": "Al-Arabi SC", 16 | "conv": "zh:阿尔阿拉比;zh-hans:科威特阿拉比;zh-hant:科威特阿拉比;zh-cn:科威特沙漠;zh-hk:艾拉比;" 17 | }, 18 | { 19 | "original": "Kuwait Premier League", 20 | "conv": "zh:科威特足球超级联赛;zh-hans:科威特足球超级联赛;zh-hant:科威特足球超級聯賽;zh-cn:科威特足球超级联赛;zh-hk:科威特超級足球聯賽;" 21 | }, 22 | { 23 | "original": "Kuwait Emir Cup", 24 | "conv": "zh:科威特国王杯;zh-hans:科威特国王杯;zh-hant:科威特國王盃;zh-cn:科威特国王杯;zh-hk:科威特國王盃;" 25 | }, 26 | { 27 | "original": "Kuwait Crown Prince Cup", 28 | "conv": "zh:科威特王储杯;zh-hans:科威特皇冠王子杯;zh-hant:科威特王储盃;zh-cn:科威特王储杯;zh-hk:科威特王储盃;" 29 | }, 30 | { 31 | "original": "Kuwait Federation Cup", 32 | "conv": "zh:科威特联合会杯;zh-hans:科威特联盟杯;zh-hant:科威特聯盟盃;zh-cn:科威特联合会杯;zh-hk:科威特聯盟盃;" 33 | }, 34 | { 35 | "original": "Kuwait Super Cup", 36 | "conv": "zh:科威特超级杯;zh-hans:科威特超级杯;zh-hant:科威特超级盃;zh-cn:科威特超级杯;zh-hk:科威特超级盃;" 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /data/cgroups/约旦职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "约旦职业足球联赛", 3 | "description": "约旦職業足球聯賽", 4 | "path": "Template:CGroup/约旦职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Al-Wehdat", 8 | "conv": "zh:安曼新营; zh-hans:安曼新营; zh-cn:安曼新营; zh-hk:艾華達; " 9 | }, 10 | { 11 | "original": "Al-Jazeera", 12 | "conv": "zh:安曼半岛; zh-hans:安曼半岛; zh-cn:安曼半岛; zh-hk:艾查斯拿; " 13 | }, 14 | { 15 | "original": "Al-Shabab Ordon", 16 | "conv": "zh:安曼约旦青年; zh-hans:安曼约旦青年; zh-cn:安曼约旦青年; zh-hk:沙巴阿羅登; " 17 | }, 18 | { 19 | "original": "Al-Ahli(Amman)", 20 | "conv": "zh:安曼阿赫利; zh-hans:安曼民族; zh-cn:安曼国民; zh-hk:阿爾利; " 21 | }, 22 | { 23 | "original": "Al-Ahli(Amman)", 24 | "conv": "zh:安曼阿赫利; zh-hans:安曼民族; zh-cn:安曼国民; zh-hk:艾阿里安曼; " 25 | }, 26 | { 27 | "original": "Jordan Premier League", 28 | "conv": "zh:约旦足球超级联赛; zh-hans:约旦足球超级联赛; zh-cn:约旦足球超级联赛; zh-hant:約旦超級足球聯賽; zh-hk:約旦超級足球聯賽; " 29 | }, 30 | { 31 | "original": "Jordan FA Cup", 32 | "conv": "zh:约旦足协杯; zh-hans:约旦足协杯; zh-cn:约旦足协杯; zh-hk:約旦足總盃; " 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /data/cgroups/艾维里奥斯.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "艾维里奥斯", 3 | "description": "艾维里奥斯", 4 | "path": "Module:CGroup/艾维里奥斯", 5 | "rules": [ 6 | { 7 | "original": "", 8 | "conv": "zh:艾伊·弗里齐斯;zh-tw:" 9 | }, 10 | { 11 | "original": "Adam Moonlit(アダム=ムーンリット)", 12 | "conv": "zh:亚当·穆恩利特;zh-tw:亞當=穆利特;" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /data/cgroups/葡超.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "葡超", 3 | "description": "-{zh-hk:葡萄牙超級足球聯賽;zh-tw:葡萄牙足球超級聯賽;zh-cn:葡萄牙足球超级联赛;}-", 4 | "path": "Template:CGroup/葡超", 5 | "rules": [ 6 | { 7 | "original": "Primeira Liga", 8 | "conv": "zh-hans:葡萄牙足球超级联赛;zh-hk:葡萄牙超級足球聯賽;zh-tw:葡萄牙足球超級聯賽;" 9 | }, 10 | { 11 | "original": "Belenense", 12 | "conv": "zh-hans:贝伦人; zh-hk:比蘭倫斯; zh-tw:貝倫人;" 13 | }, 14 | { 15 | "original": "Benfica (Sport Lisboa e Benfica)", 16 | "conv": "zh-hans:本菲卡;zh-hk:賓菲加;zh-tw:本菲卡;" 17 | }, 18 | { 19 | "original": "Boavista", 20 | "conv": "zh-hans:博阿维什塔;zh-hk:博維斯塔;zh-tw:博阿維斯塔;" 21 | }, 22 | { 23 | "original": "Estoril (Grupo Desportivo Estoril Praia)", 24 | "conv": "zh:埃斯托里爾; zh-hans:埃什托里尔; zh-hk:艾斯杜尼; zh-mo:伊斯托里爾;" 25 | }, 26 | { 27 | "original": "Farense", 28 | "conv": "zh-hans:法鲁人;zh-hk:法倫斯;" 29 | }, 30 | { 31 | "original": "Ferreira", 32 | "conv": "zh-hans:费雷拉; zh-hk:費利拿; zh-tw:費雷拉;" 33 | }, 34 | { 35 | "original": "Gil Vicente", 36 | "conv": "zh-hans:吉尔维森特; zh-tw:吉爾維森特; zh-hk:基維辛迪;" 37 | }, 38 | { 39 | "original": "Guimaraes", 40 | "conv": "zh-hans:吉马良斯; zh-hant:吉馬良斯; zh-hk:甘馬雷斯;" 41 | }, 42 | { 43 | "original": "Moreirense", 44 | "conv": "zh-hans:莫雷伦斯; zh-hk:摩里倫斯; zh-tw:莫雷倫斯;" 45 | }, 46 | { 47 | "original": "Olhanense (Sporting Clube Olhanense)", 48 | "conv": "zh-hans:奥良人;zh-hk:奧漢倫斯;" 49 | }, 50 | { 51 | "original": "Penafiel", 52 | "conv": "zh-hans:佩纳菲尔; zh-hk:彭拿費爾; zh-tw:佩納菲爾;" 53 | }, 54 | { 55 | "original": "Portimonense", 56 | "conv": "zh-hans:波蒂莫嫩塞;zh-cn:波尔蒂芒人;zh-hk:樸迪莫倫斯;zh-tw:波爾蒂芒人;" 57 | }, 58 | { 59 | "original": "Porto (Futebol Clube do Porto)", 60 | "conv": "zh-cn:波尔图;zh-hk:波圖;zh-mo:波爾圖;zh-tw:波爾圖;" 61 | }, 62 | { 63 | "original": "Sporting CP", 64 | "conv": "zh-hk:士砵亭;zh-cn:葡萄牙体育;zh-tw:體育CP;" 65 | }, 66 | { 67 | "original": "Setúbal (Vitória de Setúbal, Vitória Futebol Clube)", 68 | "conv": "zh-hans:塞图巴尔; zh-hk:塞圖巴爾;" 69 | }, 70 | { 71 | "original": "Tondela", 72 | "conv": "zh-cn:通德拉; zh-tw:通德拉; zh-hk:唐迪拉" 73 | } 74 | ] 75 | } -------------------------------------------------------------------------------- /data/cgroups/语言与语音.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "语言与语音", 3 | "description": "语言与语音", 4 | "path": "Template:CGroup/语言与语音", 5 | "rules": [ 6 | { 7 | "original": null, 8 | "conv": "zh-hans:元音;zh-hk:元音;zh-tw:元音" 9 | }, 10 | { 11 | "original": null, 12 | "conv": "zh-hans:辅音;zh-hant:輔音;zh-hk:輔音;zh-tw:輔音" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /data/cgroups/釣魚臺列嶼.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "釣魚臺列嶼", 3 | "description": "Diaoyu_Islands", 4 | "path": "Template:CGroup/釣魚臺列嶼", 5 | "rules": [ 6 | { 7 | "original": "diaoyu_island", 8 | "conv": "zh-cn:钓鱼岛; zh-tw:釣魚臺; zh-hk:釣魚台; zh-sg:钓鱼岛;" 9 | }, 10 | { 11 | "original": "diaoyu_islands", 12 | "conv": "zh-cn:钓鱼岛及其附属岛屿; zh-tw:釣魚臺列嶼; zh-hk:釣魚台及其附屬島嶼; zh-sg:钓鱼岛及其附属岛屿; zh-hant:釣魚台列嶼; zh-mo:釣魚台及其附屬島嶼;" 13 | }, 14 | { 15 | "original": "diaoyu_bei", 16 | "conv": "zh-cn:北屿; zh-tw:沖北岩; zh-hk:北嶼;" 17 | }, 18 | { 19 | "original": "diaoyu_nan", 20 | "conv": "zh-cn:南屿; zh-tw:沖南岩; zh-hk:南嶼;" 21 | }, 22 | { 23 | "original": "diaoyu_fei", 24 | "conv": "zh-cn:飞屿; zh-tw:飛瀨; zh-hk:飛嶼;" 25 | }, 26 | { 27 | "original": "Continental_shelf", 28 | "conv": "zh-cn:大陆架; zh-hk:大陸架; zh-tw:大陸棚; zh-my:大陆棚;" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/cgroups/闇.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "闇", 3 | "description": "-{zh-hans:暗黑;zh-tw:闇;}-", 4 | "path": "Template:CGroup/闇", 5 | "rules": [ 6 | { 7 | "original": "Dark", 8 | "conv": "zh-hans:暗黑;zh-tw:闇; " 9 | }, 10 | { 11 | "original": "Michael", 12 | "conv": "zh-hans:米切尔; zh-tw:麥可; " 13 | }, 14 | { 15 | "original": "Doppler", 16 | "conv": "zh-hans:多普勒; zh-tw:多普勒; " 17 | }, 18 | { 19 | "original": "Andreas Pietschmann", 20 | "conv": "zh-hans:安德烈亚斯·皮特斯柯曼; zh-tw:安德列爾·畢耶須曼; " 21 | }, 22 | { 23 | "original": "Sebastian Rudolph", 24 | "conv": "zh-hans:塞巴斯蒂安·鲁道夫; zh-tw:塞巴斯蒂安·儒道夫; " 25 | }, 26 | { 27 | "original": "Sebastian Rudolph", 28 | "conv": "zh-hans:马娅·舍内; zh-tw:瑪嘉·雄恩; " 29 | }, 30 | { 31 | "original": "Anne Ratte-Polle", 32 | "conv": "zh-hans:安妮·拉特-波列; zh-tw:安·拉特波耶; " 33 | }, 34 | { 35 | "original": "Oliver Masucci", 36 | "conv": "zh-hans:奥利弗·马萨奇; zh-tw:奧立佛·麥蘇希; " 37 | }, 38 | { 39 | "original": "Jördis Triebel", 40 | "conv": "zh-hans:乔迪丝·翠贝尔; zh-tw:茱蒂·翠貝兒; " 41 | }, 42 | { 43 | "original": "Stephan Kampwirth", 44 | "conv": "zh-hans:斯蒂芬·坎普沃斯; zh-tw:史蒂芬·卡姆沃斯; " 45 | }, 46 | { 47 | "original": "Karoline Eichhorn", 48 | "conv": "zh-hans:卡罗莉内·艾希霍恩; zh-tw:卡洛琳·艾奇霍恩; " 49 | }, 50 | { 51 | "original": "Michael Mendl", 52 | "conv": "zh-hans:米高·文度; zh-tw:麥克·曼杜; " 53 | }, 54 | { 55 | "original": "Mark Waschke", 56 | "conv": "zh-hans:马克·瓦斯科; zh-tw:馬克·瓦斯奇科; " 57 | }, 58 | { 59 | "original": "Jantje Friese", 60 | "conv": "zh-hans:扬特耶·弗里泽;zh-tw:香緹耶·芙里斯; " 61 | }, 62 | { 63 | "original": "Max Wiedemann", 64 | "conv": "zh-hans:马克斯·魏德曼;zh-tw:馬克斯·威德曼; " 65 | }, 66 | { 67 | "original": "Justyna Müsch", 68 | "conv": "zh-hans:贾斯蒂娜·米施;zh-tw:尤斯提娜·米施; " 69 | }, 70 | { 71 | "original": "Nikolaus Summerer", 72 | "conv": "zh-hans:尼古拉斯·山梅勒;zh-tw:尼古勞斯·山梅勒; " 73 | }, 74 | { 75 | "original": "reactor", 76 | "conv": "zh-cn:反应堆; zh-tw:反應爐; zh-hk:反應堆; " 77 | }, 78 | { 79 | "original": "guard", 80 | "conv": "zh-hans:保安; zh-tw:保全; " 81 | }, 82 | { 83 | "original": "hotel", 84 | "conv": "zh-cn:酒店; zh-tw:飯店; zh-hk:酒店; " 85 | } 86 | ] 87 | } -------------------------------------------------------------------------------- /data/cgroups/阿曼职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "阿曼职业足球联赛", 3 | "description": "阿曼職業足球聯賽", 4 | "path": "Template:CGroup/阿曼职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Al-Nahda", 8 | "conv": "zh:布赖米顽强; zh-hans:布赖米顽强; zh-cn:布赖米顽强; zh-hk:阿爾拿達; " 9 | }, 10 | { 11 | "original": "Fanja", 12 | "conv": "zh:芬贾; zh-hans:芬贾; zh-cn:芬贾; zh-hk:費加亞; " 13 | }, 14 | { 15 | "original": "Saham", 16 | "conv": "zh:萨罕; zh-hans:萨罕; zh-cn:萨罕; zh-hk:沙漢姆; " 17 | }, 18 | { 19 | "original": "Oman Professional League", 20 | "conv": "zh:阿曼职业足球联赛; zh-hans:阿曼职业足球联赛; zh-cn:阿曼职业足球联赛; zh-hant:阿曼足球聯賽; zh-hk:阿曼足球聯賽; " 21 | }, 22 | { 23 | "original": "Sultan Qaboos Cup", 24 | "conv": "zh:阿曼苏丹杯; zh-hans:阿曼苏丹杯; zh-cn:阿曼苏丹杯; zh-hk:阿曼蘇丹盃; " 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /data/cgroups/音樂劇.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "音樂劇", 3 | "description": "音樂劇", 4 | "path": "Module:CGroup/音樂劇", 5 | "rules": [] 6 | } -------------------------------------------------------------------------------- /data/cgroups/黎巴嫩职业足球联赛.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "黎巴嫩职业足球联赛", 3 | "description": "黎巴嫩职业足球联赛", 4 | "path": "Template:CGroup/黎巴嫩职业足球联赛", 5 | "rules": [ 6 | { 7 | "original": "Al Nejmeh", 8 | "conv": "zh:贝鲁特星; zh-hans:贝鲁特星; zh-cn:贝鲁特星; zh-hant:貝魯特星; " 9 | }, 10 | { 11 | "original": "Al-Safa' Beirut", 12 | "conv": "zh:贝鲁特宁静; zh-hans:贝鲁特宁静; zh-hant:貝魯特寧靜; " 13 | }, 14 | { 15 | "original": "Racing Beirut", 16 | "conv": "zh:贝鲁特竞技; zh-hans:贝鲁特竞技; zh-cn:贝鲁特竞技; " 17 | }, 18 | { 19 | "original": "Salam Zgharta", 20 | "conv": "zh:兹加尔塔和平; zh-hans:兹加尔塔和平; zh-hant:茲加爾塔和平; " 21 | }, 22 | { 23 | "original": "Lebanese Premier League", 24 | "conv": "zh:黎巴嫩足球超级联赛; zh-hans:黎巴嫩足球超级联赛; zh-cn:黎巴嫩足球超级联赛; zh-hk:黎巴嫩超級足球聯賽; " 25 | }, 26 | { 27 | "original": "Lebanese FA Cup", 28 | "conv": "zh:黎巴嫩足协杯; zh-hans:黎巴嫩足协杯; zh-cn:黎巴嫩足协杯; zh-hk:黎巴嫩足總盃" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /data/merge_cgroups_for_web.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | from pathlib import Path 3 | from glob import glob 4 | import json 5 | import re 6 | from datetime import datetime 7 | from sys import stderr 8 | 9 | CGROUPS_DIR = Path(__file__).parent / "./cgroups" 10 | OUTPUT_PATH = Path(__file__).parent / "../web/public/cgroups.json" 11 | 12 | REGEX_LINK = re.compile(r"\[\[(.+?)(\|.+?)?\]\]") 13 | 14 | 15 | def combine_names(name, desc): 16 | # TODO: handle conv rule 17 | name = name.strip() 18 | desc = desc.strip() 19 | if name in desc: 20 | combined = desc 21 | elif desc in name: 22 | combined = name 23 | else: 24 | combined = f"{name} / {desc}" 25 | combined = REGEX_LINK.sub(r"\1", combined) 26 | return combined 27 | 28 | 29 | def pack_rules(rules): 30 | packed = "\n".join(rule["conv"] for rule in rules) 31 | # packed = "" 32 | # for rule in rules: 33 | # # rule['original'] is unused for now 34 | # packed += f"-{{H|{rule['conv']}}}-" 35 | return packed 36 | 37 | 38 | def now(): 39 | return datetime.now().timestamp() 40 | 41 | 42 | def main(): 43 | cgroups = {} 44 | for f in glob(str(CGROUPS_DIR / "*.json")): 45 | with open(f, "r") as f: 46 | cgroup = json.loads(f.read()) 47 | name = combine_names(cgroup["name"], cgroup["description"]) 48 | rules = pack_rules(cgroup["rules"]) 49 | cgroups[name] = rules 50 | with open(OUTPUT_PATH, "w") as f: 51 | f.write( 52 | json.dumps( 53 | {"timestamp": now(), "data": cgroups}, ensure_ascii=False, indent=2 54 | ) 55 | ) 56 | print( 57 | "Generated. Remember to apply `zhconv --wikitext Zh` to the final json for rules in titles/descriptions.", 58 | file=stderr, 59 | ) 60 | 61 | 62 | if __name__ == "__main__": 63 | main() 64 | -------------------------------------------------------------------------------- /data/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "data-extractor" 3 | version = "0.0.0" 4 | description = "" 5 | authors = ["Hung-I Wang "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.9" 9 | mwclient = "^0.10.1" 10 | 11 | [tool.poetry.dev-dependencies] 12 | 13 | [build-system] 14 | requires = ["poetry-core>=1.0.0"] 15 | build-backend = "poetry.core.masonry.api" 16 | -------------------------------------------------------------------------------- /pyo3/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | 3 | # Byte-compiled / optimized / DLL files 4 | __pycache__/ 5 | .pytest_cache/ 6 | *.py[cod] 7 | 8 | # C extensions 9 | *.so 10 | 11 | # Distribution / packaging 12 | .Python 13 | .venv/ 14 | env/ 15 | bin/ 16 | build/ 17 | develop-eggs/ 18 | dist/ 19 | eggs/ 20 | lib/ 21 | lib64/ 22 | parts/ 23 | sdist/ 24 | var/ 25 | include/ 26 | man/ 27 | venv/ 28 | *.egg-info/ 29 | .installed.cfg 30 | *.egg 31 | 32 | # Installer logs 33 | pip-log.txt 34 | pip-delete-this-directory.txt 35 | pip-selfcheck.json 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .cache 42 | nosetests.xml 43 | coverage.xml 44 | 45 | # Translations 46 | *.mo 47 | 48 | # Mr Developer 49 | .mr.developer.cfg 50 | .project 51 | .pydevproject 52 | 53 | # Rope 54 | .ropeproject 55 | 56 | # Django stuff: 57 | *.log 58 | *.pot 59 | 60 | .DS_Store 61 | 62 | # Sphinx documentation 63 | docs/_build/ 64 | 65 | # PyCharm 66 | .idea/ 67 | 68 | # VSCode 69 | .vscode/ 70 | 71 | # Pyenv 72 | .python-version -------------------------------------------------------------------------------- /pyo3/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "zhconv-pyo3" 3 | authors.workspace = true 4 | categories.workspace = true 5 | description = "zhconv as in MediaWiki, 🦀oxidized for more efficiency" 6 | edition.workspace = true 7 | license.workspace = true 8 | repository.workspace = true 9 | version.workspace = true 10 | 11 | [lib] 12 | name = "zhconv_rs" 13 | crate-type = ["cdylib"] 14 | 15 | [features] 16 | default = [] 17 | opencc = ["zhconv/opencc"] 18 | 19 | [dependencies] 20 | zhconv = { path = "../" } 21 | pyo3 = { version = "0.23", features = ["extension-module", "abi3-py39"] } 22 | pyo3-file = "0.10.0" 23 | 24 | [lints] 25 | workspace = true 26 | -------------------------------------------------------------------------------- /pyo3/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["maturin>=1.8,<1.9"] 3 | build-backend = "maturin" 4 | 5 | [project] 6 | name = "zhconv-rs" 7 | readme = "README.md" 8 | requires-python = ">=3.9" 9 | classifiers = [ 10 | "Programming Language :: Rust", 11 | "Programming Language :: Python :: Implementation :: CPython", 12 | "Programming Language :: Python :: Implementation :: PyPy", 13 | "Topic :: Text Processing :: Linguistic", 14 | "Natural Language :: Chinese (Traditional)", 15 | "Natural Language :: Chinese (Simplified)", 16 | ] 17 | 18 | [project.urls] 19 | # Homepage = "https://github.com/Gowee/zhconv-rs" 20 | Source = "https://github.com/Gowee/zhconv-rs/tree/main/pyo3" 21 | # Tracker = "https://github.com/Gowee/zhconv-rs/issues" 22 | -------------------------------------------------------------------------------- /pyo3/zhconv_rs.pyi: -------------------------------------------------------------------------------- 1 | from typing import Optional, Union, Literal, Sequence, Tuple, TextIO, Callable 2 | 3 | # TODO: case-insensitive literal 4 | ZhVariant = Union[ 5 | Literal["zh"], # dummy for nothing 6 | Literal["zh-Hant"], 7 | Literal["zh-Hans"], 8 | Literal["zh-TW"], 9 | Literal["zh-HK"], 10 | Literal["zh-MO"], 11 | Literal["zh-CN"], 12 | Literal["zh-SG"], 13 | Literal["zh-MY"], 14 | Literal["zh-hant"], 15 | Literal["zh-hans"], 16 | Literal["zh-tw"], 17 | Literal["zh-hk"], 18 | Literal["zh-mo"], 19 | Literal["zh-cn"], 20 | Literal["zh-sg"], 21 | Literal["zh-my"], 22 | ] 23 | 24 | def zhconv(text: str, target: ZhVariant, wikitext: bool = False) -> str: 25 | pass 26 | 27 | def make_converter( 28 | base: Optional[ZhVariant], rules: Union[Sequence[Tuple[str, str]], str, TextIO] 29 | ) -> Callable[[str], str]: 30 | pass 31 | 32 | def is_hans(text: str) -> bool: 33 | pass 34 | 35 | def is_hans_confidence(text: str) -> float: 36 | pass 37 | 38 | def infer_variant(text: str) -> ZhVariant: 39 | pass 40 | 41 | def infer_variant_confidence(text: str) -> Sequence[Tuple[ZhVariant, float]]: 42 | pass 43 | -------------------------------------------------------------------------------- /src/pagerules.rs: -------------------------------------------------------------------------------- 1 | //! Struct to extract global rules from wikitext. 2 | //! 3 | //! **Note**: This module is exposed for convenience. It might have breaking changes at any time in 4 | //! violation of semver. 5 | 6 | use std::str::FromStr; 7 | 8 | use crate::{ 9 | rule::{extract_rules, ConvAction}, 10 | variant::{Variant, VariantMap}, 11 | }; 12 | 13 | /// A set of rules, usually extracted from the wikitext of a page 14 | #[derive(Debug, Clone)] 15 | pub struct PageRules { 16 | title: Option>, 17 | conv_actions: Vec, 18 | } 19 | 20 | impl PageRules { 21 | pub fn get_title(&self, target: Variant) -> Option<&str> { 22 | // MEDIAWIKI: fallback applies to title conversion 23 | self.title 24 | .as_ref() 25 | .and_then(|map| map.get_text_with_fallback(target)) 26 | } 27 | 28 | pub fn as_conv_actions(&self) -> &[ConvAction] { 29 | &self.conv_actions 30 | } 31 | 32 | // pub fn iter_adds(&self) -> impl Iterator { 33 | 34 | // } 35 | } 36 | 37 | impl FromStr for PageRules { 38 | type Err = (); // TODO: better error propagation 39 | 40 | fn from_str(s: &str) -> Result { 41 | // pages are not structured data, so it is normal see a lot of incompliant usage of rule 42 | // we just ignore them to ensure this function never return Err 43 | let mut title = None; 44 | let mut conv_actions = vec![]; 45 | // or should be propogate the error? 46 | for rule in extract_rules(s).filter_map(|r| r.ok()) { 47 | if rule.set_title { 48 | if let Some(map) = rule.conv.as_ref().and_then(|conv| conv.get_bid()).cloned() { 49 | // actually, our parser ensure this is !is_empty 50 | // just be more tolerant here 51 | if !map.is_empty() { 52 | title = Some(map); // unwrap? 53 | } 54 | } 55 | } 56 | // it is absolutely normal that not all rules are global 57 | if let Some(ca) = rule.into_conv_action() { 58 | conv_actions.push(ca); 59 | } 60 | } 61 | Ok(PageRules { 62 | title, 63 | conv_actions, 64 | }) 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- 1 | macro_rules! get_with_fallback { 2 | ( $map:expr, $key:expr, $( $others:tt )* ) => { 3 | $map.get(&$key).or_else(|| get_with_fallback!($map, $($others)* )) 4 | }; 5 | ( $map:expr, $key:expr ) => { 6 | $map.get(&$key) 7 | }; 8 | } 9 | pub(crate) use get_with_fallback; 10 | 11 | macro_rules! for_wasm { 12 | ($($item:item)*) => {$( 13 | #[cfg(target_arch = "wasm32")] 14 | #[cfg(feature = "wasm")] 15 | $item 16 | )*} 17 | } 18 | pub(crate) use for_wasm; 19 | 20 | #[cfg(feature = "compress")] 21 | pub fn zstd_decompress(bytes: &[u8]) -> Vec { 22 | use std::io::Read; 23 | 24 | let mut buf = vec![]; 25 | ruzstd::decoding::StreamingDecoder::new(bytes) 26 | .unwrap() 27 | .read_to_end(&mut buf) 28 | .unwrap(); 29 | buf 30 | } 31 | 32 | macro_rules! regex { 33 | ($re:literal $(,)?) => {{ 34 | static RE: once_cell::sync::OnceCell = once_cell::sync::OnceCell::new(); 35 | RE.get_or_init(|| regex::Regex::new($re).unwrap()) 36 | }}; 37 | } 38 | pub(crate) use regex; 39 | 40 | // // https://stackoverflow.com/a/51345372/5488616 41 | // macro_rules! unwrap_or_return { 42 | // ( $e:expr ) => { 43 | // match $e { 44 | // Some(x) => x, 45 | // None => return, 46 | // } 47 | // }; 48 | // ( $e:expr, $r:expr ) => { 49 | // match $e { 50 | // Some(x) => x, 51 | // None => return $r, 52 | // } 53 | // }; 54 | // } 55 | // pub(crate) use unwrap_or_return; 56 | -------------------------------------------------------------------------------- /typst/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | debug/ 4 | target/ 5 | 6 | # These are backup files generated by rustfmt 7 | **/*.rs.bk 8 | 9 | # MSVC Windows builds of rustc generate these, which store debugging information 10 | *.pdb 11 | 12 | # RustRover 13 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 14 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 15 | # and can be added to the global gitignore or merged into this file. For a more nuclear 16 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 17 | #.idea/ 18 | 19 | *.pdf 20 | test.typ 21 | *.wasm 22 | -------------------------------------------------------------------------------- /typst/Cargo.toml: -------------------------------------------------------------------------------- 1 | # https://github.com/astrale-sharp/wasm-minimal-protocol/blob/master/examples/hello_rust/Cargo.toml 2 | [package] 3 | name = "zhconv-typst" 4 | version = "0.1.0" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [dependencies] 11 | wasm-minimal-protocol = { git = "https://github.com/astrale-sharp/wasm-minimal-protocol.git"} 12 | zhconv = { path = "../", default-features = false, features = ["compress"] } 13 | 14 | [profile.release] 15 | lto = true # Enable link-time optimization 16 | strip = true # Strip symbols from binary* 17 | opt-level = 'z' # Optimize for size 18 | codegen-units = 1 # Reduce number of codegen units to increase optimizations 19 | panic = 'abort' # Abort on panic 20 | 21 | [workspace] # so that it is not included in the upper workspace 22 | -------------------------------------------------------------------------------- /typst/README.md: -------------------------------------------------------------------------------- 1 | # zhconv-typst 2 | 3 | zhconv-typst converts Chinese text between Traditional, Simplified and regional variants in typst, utilizing [zhconv-rs](https://github.com/Gowee/zhconv-rs). 4 | 5 | ## Usage 6 | 7 | To use the `zhconv` plugin in your Typst project, import it as follows: 8 | 9 | ```typst 10 | #import "@preview/zhconv:0.3.1": zhconv 11 | ``` 12 | 13 | ### Text Conversion 14 | 15 | The primary function provided by this package is `zhconv`, which converts strings or nested contents to a target Chinese variant. 16 | 17 | ```typst 18 | #zhconv(content, "target-variant", wikitext: false) 19 | ``` 20 | 21 | - `content`: The text or content to be converted. 22 | - `target-variant`: The target Chinese variant (e.g., `"zh-hant"` , `"zh-hans"`, `"zh-cn"`, `"zh-tw"`, `"zh-hk"`). 23 | - `wikitext`: An optional boolean flag to specify if the text should be processed as wikitext (default is `false`). 24 | 25 | #### Example 26 | 27 | ##### Convert a string 28 | 29 | ```typst 30 | #let text = "互联网" 31 | Original: #text 32 | - #emph([zh-HK]): #zhconv(text, "zh-hk") 33 | - #emph([zh-TW]): #zhconv(text, "zh-tw") 34 | ``` 35 | 36 | ##### Convert nested contents 37 | 38 | ```typst 39 | #zhconv([ 40 | 柳外輕雷池上雨 \ 41 | 雨聲滴碎荷聲 \ 42 | 43 | 小樓西角斷虹明 \ 44 | 闌干倚處 \ 45 | 待得月華生 \ 46 | ], "zh-hans") 47 | ``` 48 | -------------------------------------------------------------------------------- /typst/example.typ: -------------------------------------------------------------------------------- 1 | #set text(font: "Source Han Serif") 2 | 3 | #align(center, text(22pt, weight: "bold")[ 4 | zhconv-rs 中文简繁及地區詞轉換 5 | ]) 6 | 7 | = Usage 8 | At first: 9 | `#import "@preview/zhconv:0.0.0": zhconv` 10 | // #import "@preview/zhconv:0.0.0": zhconv 11 | #import "zhconv.typ": zhconv 12 | 13 | #box(stroke: red, 14 | `#zhconv([ 15 | 柳外輕雷池上雨 16 | 雨聲滴碎荷聲 17 | 小樓西角斷虹明 18 | 闌乾倚處 19 | 待得月華生 20 | ], "zh-hans")` 21 | ) 22 | 23 | #zhconv([ 24 | 柳外輕雷池上雨 25 | 雨聲滴碎荷聲 26 | 小樓西角斷虹明 27 | 闌乾倚處 28 | 待得月華生 29 | ], "zh-tw") 30 | 31 | #zhconv([ 32 | 柳外輕雷池上雨 \ 33 | 雨聲滴碎荷聲 \ 34 | 小樓西角斷虹明 \ 35 | 闌干倚處 \ 36 | 待得月華生 \ 37 | ], "zh-hans") -------------------------------------------------------------------------------- /typst/src/lib.rs: -------------------------------------------------------------------------------- 1 | use std::str::{self, FromStr}; 2 | 3 | use wasm_minimal_protocol::*; 4 | use zhconv::{zhconv as zhconv_plain, zhconv_mw, Variant}; 5 | 6 | initiate_protocol!(); 7 | 8 | #[wasm_func] 9 | pub fn zhconv(text: &[u8], target: &[u8], wikitext_flag: &[u8]) -> Result, String> { 10 | let text = str::from_utf8(text).map_err(|_e| String::from("Invalid text"))?; 11 | let target = str::from_utf8(target) 12 | .map_err(|_e| String::from("Invalid target variant")) 13 | .and_then(|target| { 14 | Variant::from_str(target) 15 | .map_err(|_e| format!("Unsupported target variant: {}", target)) 16 | })?; 17 | let wikitext = wikitext_flag[0] != 0; 18 | if wikitext { 19 | Ok(zhconv_mw(text, target).into()) 20 | } else { 21 | Ok(zhconv_plain(text, target).into()) 22 | } 23 | } 24 | 25 | #[wasm_func] 26 | pub fn is_hans(text: &[u8]) -> Result, String> { 27 | let text = str::from_utf8(text).map_err(|_e| String::from("Invalid text"))?; 28 | Ok(vec![zhconv::is_hans(text) as u8]) 29 | } 30 | -------------------------------------------------------------------------------- /typst/typst.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "zhconv" 3 | version = "0.3.3" 4 | entrypoint = "zhconv.typ" 5 | authors = ["Hung-I Wang "] 6 | license = "GPL-2.0" # GPL 2.0 or later 7 | description = "Convert Chinese text between Traditional/Simplified and regional variants. 中文简繁及地區詞轉換" 8 | repository = "https://github.com/Gowee/zhconv-rs" 9 | -------------------------------------------------------------------------------- /typst/zhconv.typ: -------------------------------------------------------------------------------- 1 | #let zhconv-wasm = plugin("./zhconv_typst.wasm") 2 | 3 | #let zhconv-str(text, target, wikitext: false) = { 4 | let wikitext-flag = if wikitext { (1,) } else { (0,) } 5 | str(zhconv-wasm.zhconv(bytes(text), bytes(target), bytes(wikitext-flag))) 6 | } 7 | 8 | #let is-hans-str(text) = { 9 | zhconv-wasm.is_hans(bytes(text)).at(0) != 0 10 | } 11 | 12 | #let zhconv(document, target, wikitext: false) = { 13 | if type(document) == str { 14 | zhconv-str(document, target, wikitext: wikitext) 15 | } 16 | else if type(document) == content and document.has("children") { // container 17 | for child in document.children [ 18 | #zhconv(child, target, wikitext: wikitext) 19 | ] 20 | } 21 | else if type(document) == content and document.has("text"){ // typical content 22 | zhconv(document.text, target, wikitext: wikitext) 23 | } 24 | else if type(document) == content and document.has("body"){ // e.g. circle, rect, list 25 | let args = document.fields() 26 | let body = zhconv(args.remove("body"), target, wikitext: wikitext) 27 | document.func()(body, ..args) 28 | } 29 | else { 30 | document 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | 25 | 26 | # ../pkg is used instead 27 | /pkg 28 | -------------------------------------------------------------------------------- /web/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `yarn start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `yarn test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `yarn build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `yarn eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 35 | 36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 39 | 40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | -------------------------------------------------------------------------------- /web/config-overrides.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | // const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); 4 | const { removeModuleScopePlugin } = require('customize-cra'); 5 | const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin"); 6 | 7 | module.exports = function override(config, env) { 8 | config.plugins.push( 9 | // new MonacoWebpackPlugin({ 10 | // languages: ['json', 'python', 'rust'] 11 | // }), 12 | new WasmPackPlugin({ 13 | crateDirectory: path.resolve(__dirname, "../"), 14 | withTypeScript: true, 15 | extraArgs: "-- --features opencc", 16 | // NOTE: it is 'index' by default, different from the default (package name) of wasm-pack 17 | outName: 'zhconv' 18 | })); 19 | 20 | const wasmExtensionRegExp = /\.wasm$/; 21 | 22 | config.resolve.extensions.push('.wasm'); 23 | 24 | config.module.rules.forEach(rule => { 25 | (rule.oneOf || []).forEach(oneOf => { 26 | if (oneOf.loader && oneOf.loader.indexOf('file-loader') >= 0) { 27 | // Make file-loader ignore WASM files 28 | oneOf.exclude.push(wasmExtensionRegExp); 29 | } 30 | }); 31 | }); 32 | 33 | // Add a dedicated loader for WASM 34 | config.module.rules.push({ 35 | test: wasmExtensionRegExp, 36 | include: path.resolve(__dirname, 'src'), 37 | use: [{ loader: require.resolve('wasm-loader'), options: {} }] 38 | }); 39 | 40 | removeModuleScopePlugin()(config); 41 | 42 | return config; 43 | } 44 | 45 | // Ref: 46 | // https://github.com/rustwasm/rust-webpack-template/issues/43#issuecomment-426597176 47 | // https://prestonrichey.com/blog/react-rust-wasm/ 48 | -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zhconv-web", 3 | "version": "0.2.0-beta", 4 | "private": true, 5 | "dependencies": { 6 | "@material-ui/core": "^4.12.3", 7 | "@material-ui/icons": "^4.11.2", 8 | "@testing-library/jest-dom": "^5.11.4", 9 | "@testing-library/react": "^11.1.0", 10 | "@testing-library/user-event": "^12.1.10", 11 | "@types/jest": "^26.0.15", 12 | "@types/node": "^12.0.0", 13 | "@types/react": "^17.0.0", 14 | "@types/react-dom": "^17.0.0", 15 | "@wasm-tool/wasm-pack-plugin": "^1.5.0", 16 | "react": "^17.0.2", 17 | "react-dom": "^17.0.2", 18 | "react-scripts": "4.0.3", 19 | "typescript": "^4.1.2", 20 | "web-vitals": "^1.0.1" 21 | }, 22 | "scripts": { 23 | "start": "react-app-rewired start", 24 | "build": "react-app-rewired build", 25 | "test": "react-app-rewired test", 26 | "eject": "react-app-rewired eject", 27 | "format": "yarn prettier -w src/ && yarn eslint --fix src/" 28 | }, 29 | "eslintConfig": { 30 | "extends": [ 31 | "react-app", 32 | "react-app/jest" 33 | ] 34 | }, 35 | "browserslist": { 36 | "production": [ 37 | ">0.2%", 38 | "not dead", 39 | "not op_mini all" 40 | ], 41 | "development": [ 42 | "last 1 chrome version", 43 | "last 1 firefox version", 44 | "last 1 safari version" 45 | ] 46 | }, 47 | "devDependencies": { 48 | "customize-cra": "^1.0.0", 49 | "prettier": "^2.3.2", 50 | "react-app-rewired": "^2.1.8", 51 | "wasm-loader": "^1.3.0", 52 | "webpack-cli": "^4.9.1" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /web/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | 31 | zhconv-rs 中文简繁及地區詞轉換 32 | 33 | 34 | 35 |
36 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /web/public/logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gowee/zhconv-rs/38f1406c10bab9473d0104d18ab8ca7a68b4f0d5/web/public/logo.ico -------------------------------------------------------------------------------- /web/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gowee/zhconv-rs/38f1406c10bab9473d0104d18ab8ca7a68b4f0d5/web/public/logo192.png -------------------------------------------------------------------------------- /web/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Gowee/zhconv-rs/38f1406c10bab9473d0104d18ab8ca7a68b4f0d5/web/public/logo512.png -------------------------------------------------------------------------------- /web/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "zhconv-rs", 3 | "name": "zhconv-rs", 4 | "icons": [ 5 | { 6 | "src": "logo.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /web/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /web/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /web/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { render, screen } from "@testing-library/react"; 3 | import App from "./App"; 4 | 5 | test("renders learn react link", () => { 6 | render(); 7 | const linkElement = screen.getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /web/src/components/CGroupCheckbox.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import FormControlLabel from "@material-ui/core/FormControlLabel"; 3 | import Checkbox from "@material-ui/core/Checkbox"; 4 | 5 | type Props = { 6 | name: string; 7 | checked: boolean; 8 | onCheck?: (name: string, checked: boolean) => void; 9 | }; 10 | 11 | function CGroupCheckbox({ name, checked, onCheck: handleCheck }: Props) { 12 | return ( 13 | 19 | handleCheck && handleCheck(event.target.name, event.target.checked) 20 | } 21 | name={name} 22 | /> 23 | } 24 | label={name} 25 | /> 26 | ); 27 | } 28 | 29 | function areEqual(prevProps: Props, nextProps: Props) { 30 | return ( 31 | prevProps.name === nextProps.name && prevProps.checked === nextProps.checked 32 | ); 33 | } 34 | 35 | // export default CGroupCheckbox; 36 | export default React.memo(CGroupCheckbox, areEqual); 37 | -------------------------------------------------------------------------------- /web/src/components/OutputEditor.tsx: -------------------------------------------------------------------------------- 1 | import Box from "@material-ui/core/Box"; 2 | import TextField from "@material-ui/core/TextField"; 3 | 4 | import { useEditorStyles } from "./editorCommon"; 5 | import OutputStatusLine from "./OutputStatusLine"; 6 | 7 | export default function OutputEditor({ output }: { output: any }) { 8 | const classes = useEditorStyles(); 9 | 10 | return ( 11 | 12 | {/* for Fab positioning */} 13 | {/* TODO: nowrap */} 14 | 24 | 25 | 26 | 27 | {/* */} 28 | 29 | ); 30 | } 31 | -------------------------------------------------------------------------------- /web/src/components/OutputStatusLine.tsx: -------------------------------------------------------------------------------- 1 | import { useMemo } from "react"; 2 | import Typography from "@material-ui/core/Typography"; 3 | import Box from "@material-ui/core/Box"; 4 | 5 | import { countLines } from "../utils"; 6 | 7 | export default function OutputStatusLine({ output }: { output: any }) { 8 | return ( 9 | 10 | Lines/橫行: {useMemo(() => countLines(output), [output])} 11 | 12 | ・ 13 | 14 | Chars/字: {output ? output.length : 0} 15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /web/src/components/editorCommon.tsx: -------------------------------------------------------------------------------- 1 | import { makeStyles } from "@material-ui/core/styles"; 2 | 3 | export const useEditorStyles = makeStyles((theme) => ({ 4 | statusLineWrapper: { 5 | marginTop: theme.spacing(0.5), 6 | marginBottom: theme.spacing(-1), 7 | }, 8 | })); 9 | -------------------------------------------------------------------------------- /web/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", 4 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /web/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import "./index.css"; 4 | import App from "./App"; 5 | import reportWebVitals from "./reportWebVitals"; 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById("root") 12 | ); 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals(); 18 | -------------------------------------------------------------------------------- /web/src/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /web/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /web/src/reportWebVitals.ts: -------------------------------------------------------------------------------- 1 | import { ReportHandler } from "web-vitals"; 2 | 3 | const reportWebVitals = (onPerfEntry?: ReportHandler) => { 4 | if (onPerfEntry && onPerfEntry instanceof Function) { 5 | import("web-vitals").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 6 | getCLS(onPerfEntry); 7 | getFID(onPerfEntry); 8 | getFCP(onPerfEntry); 9 | getLCP(onPerfEntry); 10 | getTTFB(onPerfEntry); 11 | }); 12 | } 13 | }; 14 | 15 | export default reportWebVitals; 16 | -------------------------------------------------------------------------------- /web/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import "@testing-library/jest-dom"; 6 | -------------------------------------------------------------------------------- /web/src/utils.ts: -------------------------------------------------------------------------------- 1 | export function countLines(s: string): number { 2 | if (!s) { 3 | return 0; 4 | } 5 | return s 6 | .trim() 7 | .split("\n") 8 | .filter((v) => v).length; 9 | } 10 | -------------------------------------------------------------------------------- /web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "noFallthroughCasesInSwitch": true, 16 | "module": "esnext", 17 | "moduleResolution": "node", 18 | "resolveJsonModule": true, 19 | "isolatedModules": true, 20 | "noEmit": true, 21 | "jsx": "react-jsx" 22 | }, 23 | "include": [ 24 | "src" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /worker/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | node_modules 3 | .wrangler 4 | dist/ 5 | .dev.vars 6 | -------------------------------------------------------------------------------- /worker/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "zhconv-worker" 3 | authors.workspace = true 4 | categories.workspace = true 5 | description.workspace = true 6 | edition.workspace = true 7 | license.workspace = true 8 | repository.workspace = true 9 | version.workspace = true 10 | 11 | [package.metadata.release] 12 | release = false 13 | 14 | # https://github.com/rustwasm/wasm-pack/issues/1247 15 | [package.metadata.wasm-pack.profile.release] 16 | wasm-opt = false 17 | 18 | [features] 19 | default = [] 20 | opencc = ["zhconv/opencc"] 21 | 22 | [lib] 23 | crate-type = ["cdylib"] 24 | 25 | [dependencies] 26 | worker = { version="0.5", features=['http', 'axum'] } 27 | worker-macros = { version="0.5", features=['http'] } 28 | axum = { version = "0.8", default-features = false, features=["query"] } 29 | axum-extra = { version = "0.10", default-features = false, features=["typed-header", "erased-json"]} 30 | serde = "1.0" 31 | headers = "0.4" 32 | tower-service = "0.3.2" 33 | console_error_panic_hook = { version = "0.1.1" } 34 | zhconv = { path = "../", features=["serde"] } 35 | 36 | [lints] 37 | workspace = true 38 | -------------------------------------------------------------------------------- /worker/doc.txt: -------------------------------------------------------------------------------- 1 | zhconv-rs 中文简繁及地區詞轉換 2 | 3 | REPO: https://github.com/gowee/zhconv-rs 4 | 5 | ENDPOINTS: 6 | 7 | 1. POST /convert/{target} 8 | Convert Chinese text between variants 9 | 10 | Path Parameters: 11 | - target: Variant type (zh-{hans, hant, tw, hk, cn}) 12 | 13 | Query Parameters: 14 | - wikitext: boolean (optional) - Set to 1 to handle WikiText markup 15 | 16 | Headers: 17 | - Authorization: Bearer token (optional unless the API_TOKEN secret is set) 18 | 19 | Request Body: 20 | - Plain text to be converted 21 | 22 | Response: 23 | - 200: Converted text 24 | - 401: Unauthorized (if token validation fails) 25 | 26 | 2. POST /is-hans 27 | Check if text is Simplified Chinese 28 | 29 | Headers: 30 | - Authorization: Bearer token (optional unless the API_TOKEN secret is set) 31 | 32 | Request Body: 33 | - Text to analyze 34 | 35 | Response: 36 | - 200: Confidence score (0.0 to 1.0, or NaN) 37 | - 401: Unauthorized (if token validation fails) 38 | 39 | 3. GET /info 40 | Returns the service info. 41 | 42 | Examples: 43 | 44 | POST /convert/zh-hant 45 | Content: \"简体字\" 46 | Response: \"簡體字\" 47 | 48 | POST /convert/zh-cn?wikitext=1 49 | Content: \"簡-{體}-字" 50 | Response: \"简體字\" 51 | 52 | POST /is-hans 53 | Content: \"简体字\" 54 | Response: \"1.0\"" 55 | 56 | curl https:///convert/zh-tw -H "Content-Type: text/plain" -X POST --data-binary @in.txt -o out.txt 57 | 58 | (The doc is generated by Amazon Q.) 59 | -------------------------------------------------------------------------------- /worker/src/utils.rs: -------------------------------------------------------------------------------- 1 | use serde::de::{self, Deserialize, Deserializer, Unexpected}; 2 | 3 | // src: https://github.com/serde-rs/serde/issues/1344#issuecomment-410309140 4 | pub fn bool_from_int<'de, D>(deserializer: D) -> Result 5 | where 6 | D: Deserializer<'de>, 7 | { 8 | match u8::deserialize(deserializer)? { 9 | 0 => Ok(false), 10 | 1 => Ok(true), 11 | other => Err(de::Error::invalid_value( 12 | Unexpected::Unsigned(other as u64), 13 | &"zero or one", 14 | )), 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /worker/wrangler.toml: -------------------------------------------------------------------------------- 1 | name = "zhconv" 2 | main = "build/worker/shim.mjs" 3 | compatibility_date = "2024-11-29" 4 | 5 | [build] 6 | command = "cargo install -q worker-build && worker-build --release" 7 | 8 | [vars] 9 | # BODY_LIMIT = "2097152" 10 | 11 | # Set it via `wrangler secret put API_TOKEN` instead. 12 | ## API_TOKEN = "e72ffa14-e7c8-4abd-a698-a675231a1a8e" 13 | --------------------------------------------------------------------------------