1{
2 lib,
3 vscode-utils,
4 writeShellScript,
5 nix-update,
6 vscode-extension-update,
7}:
8
9with vscode-utils;
10
11let
12
13 buildVscodeLanguagePack =
14 {
15 language,
16 version ? "1.101.2025061109",
17 hash,
18 }:
19 buildVscodeMarketplaceExtension {
20 mktplcRef = {
21 name = "vscode-language-pack-${language}";
22 publisher = "MS-CEINTL";
23 inherit version hash;
24 };
25 passthru.updateScript = lib.optionalAttrs (language == "fr") (
26 writeShellScript "vscode-language-packs-update-script" ''
27 ${lib.getExe vscode-extension-update} vscode-extensions.ms-ceintl.vscode-language-pack-fr --override-filename "pkgs/applications/editors/vscode/extensions/language-packs.nix"
28 for lang in cs de es it ja ko pl pt-br qps-ploc ru tr zh-hans zh-hant; do
29 ${lib.getExe nix-update} --version "skip" "vscode-extensions.ms-ceintl.vscode-language-pack-$lang" --override-filename "pkgs/applications/editors/vscode/extensions/language-packs.nix"
30 done
31 ''
32 );
33 meta = {
34 license = lib.licenses.mit;
35 };
36 };
37in
38
39# See list of core language packs at https://github.com/Microsoft/vscode-loc
40{
41 # French
42 vscode-language-pack-fr = buildVscodeLanguagePack {
43 language = "fr";
44 hash = "sha256-DeloielNVsZk+1/rGlyfT49Hst+Xh/jk7BYvqNwMQuU=";
45 };
46 # Italian
47 vscode-language-pack-it = buildVscodeLanguagePack {
48 language = "it";
49 hash = "sha256-tc5G3O6KYP9+CI7t+B2jP9saKSbjoK7jceqrAT1lbZ8=";
50 };
51 # German
52 vscode-language-pack-de = buildVscodeLanguagePack {
53 language = "de";
54 hash = "sha256-5fLQkZj3U175NUY2uMwrpUg3KWSb+FYV69XT995tgko=";
55 };
56 # Spanish
57 vscode-language-pack-es = buildVscodeLanguagePack {
58 language = "es";
59 hash = "sha256-OSpFOZc33jfcHWYiskqj5TIHjicdSAotXLeM9YnVycs=";
60 };
61 # Russian
62 vscode-language-pack-ru = buildVscodeLanguagePack {
63 language = "ru";
64 hash = "sha256-aqpBo19NvDYFWP1a6HnNvwuS6iEUhkn4lTihqy2EQqc=";
65 };
66 # Chinese (Simplified)
67 vscode-language-pack-zh-hans = buildVscodeLanguagePack {
68 language = "zh-hans";
69 hash = "sha256-mykSRH3v7uW1iu4RmNf7SnL9q1ZPLkRZwY3sv5IfNt0=";
70 };
71 # Chinese (Traditional)
72 vscode-language-pack-zh-hant = buildVscodeLanguagePack {
73 language = "zh-hant";
74 hash = "sha256-4AXpiJfFd4PpMR89IQWTnzeU+n3ROwmM1waI+h0odro=";
75 };
76 # Japanese
77 vscode-language-pack-ja = buildVscodeLanguagePack {
78 language = "ja";
79 hash = "sha256-TGDBrATWlIDiCyOqxuGL5IHRObLRkEpwX8yo1HnvEvE=";
80 };
81 # Korean
82 vscode-language-pack-ko = buildVscodeLanguagePack {
83 language = "ko";
84 hash = "sha256-QKnA/5/J8nwnc91BEwAxOCHHlSG8nYyDGdiwAf9A4kM=";
85 };
86 # Czech
87 vscode-language-pack-cs = buildVscodeLanguagePack {
88 language = "cs";
89 hash = "sha256-XXQ5zXPZA9l/7QJVTtMZB7kLsM5/92anG+Mvpxq81RE=";
90 };
91 # Portuguese (Brazil)
92 vscode-language-pack-pt-br = buildVscodeLanguagePack {
93 language = "pt-BR";
94 hash = "sha256-KYRt6KXkVthDXOZ2TLNJJFjDPvpknxRSi3Fo/T37KoA=";
95 };
96 # Turkish
97 vscode-language-pack-tr = buildVscodeLanguagePack {
98 language = "tr";
99 hash = "sha256-4qCRDHTQD1jZ/pugAfSDdWeYU0GpM9PvRWXYNcncSUA=";
100 };
101 # Polish
102 vscode-language-pack-pl = buildVscodeLanguagePack {
103 language = "pl";
104 hash = "sha256-Cg+VpwX78HmyOHB9OGPPjSmJFHAZ4HpQ+HceFJw/FgE=";
105 };
106 # Pseudo Language
107 vscode-language-pack-qps-ploc = buildVscodeLanguagePack {
108 language = "qps-ploc";
109 hash = "sha256-Z2qrwgziEupCEqHVGyY1WnZO3ZGM1LVDeSxmVgkEd3o=";
110 };
111}