summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2026-02-01 17:51:25 +0100
committerLeah Rowe <leah@libreboot.org>2026-02-01 22:09:33 +0100
commit8f128e6728e3486fa2c91d4610da3ab3df22249f (patch)
treeb42bef2d520f6a4d2b2dd1343451c5e70a74159e
parent1cf3181537b8d1fe1df0e91681f700850a3d9bf6 (diff)
GRUB: don't download po files in bootstrapHEADmaster
The files it downloads are not versioned, and they could change any time. GRUB has no way to deterministically grab these. I've removed GRUB's local for grabbing these, instead mirroring them myself and checking hashes; no hashes seem to have been provided by the upstream at Translation Project, so I just used the hashes I had on the files it had, when I downloaded them. From now on, I can just re-download these and re-calculate the hashes as desired, over time, when updating GRUB revisions. Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--config/grub/default/patches/0011-bootstrap-Don-t-download-po-files.patch91
-rw-r--r--config/grub/nvme/patches/0012-bootstrap-Don-t-download-po-files.patch91
-rw-r--r--config/grub/xhci_nvme/patches/0023-bootstrap-Don-t-download-po-files.patch91
-rw-r--r--config/submodule/grub/default/ast.po/module.cfg5
-rw-r--r--config/submodule/grub/default/ca.po/module.cfg5
-rw-r--r--config/submodule/grub/default/da.po/module.cfg5
-rw-r--r--config/submodule/grub/default/de.po/module.cfg5
-rw-r--r--config/submodule/grub/default/eo.po/module.cfg5
-rw-r--r--config/submodule/grub/default/es.po/module.cfg5
-rw-r--r--config/submodule/grub/default/fi.po/module.cfg5
-rw-r--r--config/submodule/grub/default/fr.po/module.cfg5
-rw-r--r--config/submodule/grub/default/gl.po/module.cfg5
-rw-r--r--config/submodule/grub/default/he.po/module.cfg5
-rw-r--r--config/submodule/grub/default/hr.po/module.cfg5
-rw-r--r--config/submodule/grub/default/hu.po/module.cfg5
-rw-r--r--config/submodule/grub/default/id.po/module.cfg5
-rw-r--r--config/submodule/grub/default/it.po/module.cfg5
-rw-r--r--config/submodule/grub/default/ja.po/module.cfg5
-rw-r--r--config/submodule/grub/default/ka.po/module.cfg5
-rw-r--r--config/submodule/grub/default/ko.po/module.cfg5
-rw-r--r--config/submodule/grub/default/lg.po/module.cfg5
-rw-r--r--config/submodule/grub/default/lt.po/module.cfg5
-rw-r--r--config/submodule/grub/default/module.list35
-rw-r--r--config/submodule/grub/default/nb.po/module.cfg5
-rw-r--r--config/submodule/grub/default/nl.po/module.cfg5
-rw-r--r--config/submodule/grub/default/pa.po/module.cfg5
-rw-r--r--config/submodule/grub/default/pl.po/module.cfg5
-rw-r--r--config/submodule/grub/default/pt.po/module.cfg5
-rw-r--r--config/submodule/grub/default/pt_BR.po/module.cfg5
-rw-r--r--config/submodule/grub/default/ro.po/module.cfg5
-rw-r--r--config/submodule/grub/default/ru.po/module.cfg5
-rw-r--r--config/submodule/grub/default/sl.po/module.cfg5
-rw-r--r--config/submodule/grub/default/sr.po/module.cfg5
-rw-r--r--config/submodule/grub/default/sv.po/module.cfg5
-rw-r--r--config/submodule/grub/default/tr.po/module.cfg5
-rw-r--r--config/submodule/grub/default/uk.po/module.cfg5
-rw-r--r--config/submodule/grub/default/vi.po/module.cfg5
-rw-r--r--config/submodule/grub/default/zh_CN.po/module.cfg5
-rw-r--r--config/submodule/grub/default/zh_TW.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ast.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ca.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/da.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/de.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/eo.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/es.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/fi.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/fr.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/gl.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/he.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/hr.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/hu.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/id.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/it.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ja.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ka.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ko.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/lg.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/lt.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/module.list35
-rw-r--r--config/submodule/grub/nvme/nb.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/nl.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/pa.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/pl.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/pt.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/pt_BR.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ro.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/ru.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/sl.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/sr.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/sv.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/tr.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/uk.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/vi.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/zh_CN.po/module.cfg5
-rw-r--r--config/submodule/grub/nvme/zh_TW.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ast.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ca.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/da.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/de.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/eo.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/es.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/fi.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/fr.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/gl.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/he.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/hr.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/hu.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/id.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/it.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ja.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ka.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ko.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/lg.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/lt.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/module.list35
-rw-r--r--config/submodule/grub/xhci_nvme/nb.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/nl.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/pa.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/pl.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/pt.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/pt_BR.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ro.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/ru.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/sl.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/sr.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/sv.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/tr.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/uk.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/vi.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/zh_CN.po/module.cfg5
-rw-r--r--config/submodule/grub/xhci_nvme/zh_TW.po/module.cfg5
111 files changed, 903 insertions, 0 deletions
diff --git a/config/grub/default/patches/0011-bootstrap-Don-t-download-po-files.patch b/config/grub/default/patches/0011-bootstrap-Don-t-download-po-files.patch
new file mode 100644
index 00000000..cfb66047
--- /dev/null
+++ b/config/grub/default/patches/0011-bootstrap-Don-t-download-po-files.patch
@@ -0,0 +1,91 @@
+From 5d18c96a22d98d137ea40bfc6aabadce933c2d45 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Sun, 1 Feb 2026 20:30:55 +0100
+Subject: [PATCH 1/1] bootstrap: Don't download po files
+
+GRUB doesn't verify checksums at all, and it pulls from
+this URL recursively:
+
+https://translationproject.org/latest/grub/
+
+These files can change at any time, and GRUB is just
+downloading them trustingly. Even if the upstream is
+totally benevolent, what if they got hacked?
+
+I downloaded them, hashed them and decided to mirror
+them on my RSYNC mirror. In this way, Libreboot can now
+use them in a deterministic fashion.
+
+Simply adding them to the GRUB source code would mean
+patching GRUB, which would add 8MB to lbmk. I won't do
+it.
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ bootstrap | 31 +++++++++++++------------------
+ 1 file changed, 13 insertions(+), 18 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index dc9fb4383..9fc5a5c36 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -1,5 +1,16 @@
+ #! /bin/sh
+-# DO NOT EDIT! GENERATED AUTOMATICALLY!
++# THIS FILE WAS EDITED BY LIBREBOOT TO REMOVE
++# HACKY GRUB BEHAVIOUR; po files now downloaded
++# by lbmk, via config/submodule/grub/ - so that
++# versioned files are possible, with proper checksum
++# verification, and mirrors are used.
++
++# Yes. This file has been modified. I intend to
++# eventually remove this hacky script. Probably
++# replace the entire GRUB build system.
++
++# Please do fix/edit or (when possible) remove
++# this file. Thank you.
+
+ # Bootstrap this package from checked-out sources.
+
+@@ -145,13 +156,6 @@ bootstrap_post_import_hook() { :; }
+ # Override it via your own definition in bootstrap.conf.
+ bootstrap_epilogue() { :; }
+
+-# The command to download all .po files for a specified domain into a
+-# specified directory. Fill in the first %s with the destination
+-# directory and the second with the domain name.
+-po_download_command_format=\
+-"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
+- https://translationproject.org/latest/%s/"
+-
+ # When extracting the package name from an AC_INIT invocation,
+ # prefer a non-empty tarname (4th argument of AC_INIT if given), else
+ # fall back to the package name (1st argument with munging).
+@@ -909,14 +913,6 @@ autopull()
+
+ # ----------------------------- Get translations. -----------------------------
+
+-download_po_files() {
+- subdir=$1
+- domain=$2
+- echo "$me: getting translations into $subdir for $domain..."
+- cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
+- eval "$cmd"
+-}
+-
+ # Mirror .po files to $po_dir/.reference and copy only the new
+ # or modified ones into $po_dir. Also update $po_dir/LINGUAS.
+ # Note po files that exist locally only are left in $po_dir but will
+@@ -932,8 +928,7 @@ update_po_files() {
+ ref_po_dir="$po_dir/.reference"
+
+ test -d $ref_po_dir || mkdir $ref_po_dir || return
+- download_po_files $ref_po_dir $domain \
+- && ls "$ref_po_dir"/*.po 2>/dev/null |
++ ls "$ref_po_dir"/*.po 2>/dev/null |
+ sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
+
+ for po in x $(ls $ref_po_dir | sed -n 's/\.po$//p'); do
+--
+2.47.3
+
diff --git a/config/grub/nvme/patches/0012-bootstrap-Don-t-download-po-files.patch b/config/grub/nvme/patches/0012-bootstrap-Don-t-download-po-files.patch
new file mode 100644
index 00000000..cfb66047
--- /dev/null
+++ b/config/grub/nvme/patches/0012-bootstrap-Don-t-download-po-files.patch
@@ -0,0 +1,91 @@
+From 5d18c96a22d98d137ea40bfc6aabadce933c2d45 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Sun, 1 Feb 2026 20:30:55 +0100
+Subject: [PATCH 1/1] bootstrap: Don't download po files
+
+GRUB doesn't verify checksums at all, and it pulls from
+this URL recursively:
+
+https://translationproject.org/latest/grub/
+
+These files can change at any time, and GRUB is just
+downloading them trustingly. Even if the upstream is
+totally benevolent, what if they got hacked?
+
+I downloaded them, hashed them and decided to mirror
+them on my RSYNC mirror. In this way, Libreboot can now
+use them in a deterministic fashion.
+
+Simply adding them to the GRUB source code would mean
+patching GRUB, which would add 8MB to lbmk. I won't do
+it.
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ bootstrap | 31 +++++++++++++------------------
+ 1 file changed, 13 insertions(+), 18 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index dc9fb4383..9fc5a5c36 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -1,5 +1,16 @@
+ #! /bin/sh
+-# DO NOT EDIT! GENERATED AUTOMATICALLY!
++# THIS FILE WAS EDITED BY LIBREBOOT TO REMOVE
++# HACKY GRUB BEHAVIOUR; po files now downloaded
++# by lbmk, via config/submodule/grub/ - so that
++# versioned files are possible, with proper checksum
++# verification, and mirrors are used.
++
++# Yes. This file has been modified. I intend to
++# eventually remove this hacky script. Probably
++# replace the entire GRUB build system.
++
++# Please do fix/edit or (when possible) remove
++# this file. Thank you.
+
+ # Bootstrap this package from checked-out sources.
+
+@@ -145,13 +156,6 @@ bootstrap_post_import_hook() { :; }
+ # Override it via your own definition in bootstrap.conf.
+ bootstrap_epilogue() { :; }
+
+-# The command to download all .po files for a specified domain into a
+-# specified directory. Fill in the first %s with the destination
+-# directory and the second with the domain name.
+-po_download_command_format=\
+-"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
+- https://translationproject.org/latest/%s/"
+-
+ # When extracting the package name from an AC_INIT invocation,
+ # prefer a non-empty tarname (4th argument of AC_INIT if given), else
+ # fall back to the package name (1st argument with munging).
+@@ -909,14 +913,6 @@ autopull()
+
+ # ----------------------------- Get translations. -----------------------------
+
+-download_po_files() {
+- subdir=$1
+- domain=$2
+- echo "$me: getting translations into $subdir for $domain..."
+- cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
+- eval "$cmd"
+-}
+-
+ # Mirror .po files to $po_dir/.reference and copy only the new
+ # or modified ones into $po_dir. Also update $po_dir/LINGUAS.
+ # Note po files that exist locally only are left in $po_dir but will
+@@ -932,8 +928,7 @@ update_po_files() {
+ ref_po_dir="$po_dir/.reference"
+
+ test -d $ref_po_dir || mkdir $ref_po_dir || return
+- download_po_files $ref_po_dir $domain \
+- && ls "$ref_po_dir"/*.po 2>/dev/null |
++ ls "$ref_po_dir"/*.po 2>/dev/null |
+ sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
+
+ for po in x $(ls $ref_po_dir | sed -n 's/\.po$//p'); do
+--
+2.47.3
+
diff --git a/config/grub/xhci_nvme/patches/0023-bootstrap-Don-t-download-po-files.patch b/config/grub/xhci_nvme/patches/0023-bootstrap-Don-t-download-po-files.patch
new file mode 100644
index 00000000..cfb66047
--- /dev/null
+++ b/config/grub/xhci_nvme/patches/0023-bootstrap-Don-t-download-po-files.patch
@@ -0,0 +1,91 @@
+From 5d18c96a22d98d137ea40bfc6aabadce933c2d45 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Sun, 1 Feb 2026 20:30:55 +0100
+Subject: [PATCH 1/1] bootstrap: Don't download po files
+
+GRUB doesn't verify checksums at all, and it pulls from
+this URL recursively:
+
+https://translationproject.org/latest/grub/
+
+These files can change at any time, and GRUB is just
+downloading them trustingly. Even if the upstream is
+totally benevolent, what if they got hacked?
+
+I downloaded them, hashed them and decided to mirror
+them on my RSYNC mirror. In this way, Libreboot can now
+use them in a deterministic fashion.
+
+Simply adding them to the GRUB source code would mean
+patching GRUB, which would add 8MB to lbmk. I won't do
+it.
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ bootstrap | 31 +++++++++++++------------------
+ 1 file changed, 13 insertions(+), 18 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index dc9fb4383..9fc5a5c36 100755
+--- a/bootstrap
++++ b/bootstrap
+@@ -1,5 +1,16 @@
+ #! /bin/sh
+-# DO NOT EDIT! GENERATED AUTOMATICALLY!
++# THIS FILE WAS EDITED BY LIBREBOOT TO REMOVE
++# HACKY GRUB BEHAVIOUR; po files now downloaded
++# by lbmk, via config/submodule/grub/ - so that
++# versioned files are possible, with proper checksum
++# verification, and mirrors are used.
++
++# Yes. This file has been modified. I intend to
++# eventually remove this hacky script. Probably
++# replace the entire GRUB build system.
++
++# Please do fix/edit or (when possible) remove
++# this file. Thank you.
+
+ # Bootstrap this package from checked-out sources.
+
+@@ -145,13 +156,6 @@ bootstrap_post_import_hook() { :; }
+ # Override it via your own definition in bootstrap.conf.
+ bootstrap_epilogue() { :; }
+
+-# The command to download all .po files for a specified domain into a
+-# specified directory. Fill in the first %s with the destination
+-# directory and the second with the domain name.
+-po_download_command_format=\
+-"wget --mirror --level=1 -nd -nv -A.po -P '%s' \
+- https://translationproject.org/latest/%s/"
+-
+ # When extracting the package name from an AC_INIT invocation,
+ # prefer a non-empty tarname (4th argument of AC_INIT if given), else
+ # fall back to the package name (1st argument with munging).
+@@ -909,14 +913,6 @@ autopull()
+
+ # ----------------------------- Get translations. -----------------------------
+
+-download_po_files() {
+- subdir=$1
+- domain=$2
+- echo "$me: getting translations into $subdir for $domain..."
+- cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
+- eval "$cmd"
+-}
+-
+ # Mirror .po files to $po_dir/.reference and copy only the new
+ # or modified ones into $po_dir. Also update $po_dir/LINGUAS.
+ # Note po files that exist locally only are left in $po_dir but will
+@@ -932,8 +928,7 @@ update_po_files() {
+ ref_po_dir="$po_dir/.reference"
+
+ test -d $ref_po_dir || mkdir $ref_po_dir || return
+- download_po_files $ref_po_dir $domain \
+- && ls "$ref_po_dir"/*.po 2>/dev/null |
++ ls "$ref_po_dir"/*.po 2>/dev/null |
+ sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return
+
+ for po in x $(ls $ref_po_dir | sed -n 's/\.po$//p'); do
+--
+2.47.3
+
diff --git a/config/submodule/grub/default/ast.po/module.cfg b/config/submodule/grub/default/ast.po/module.cfg
new file mode 100644
index 00000000..24f5340e
--- /dev/null
+++ b/config/submodule/grub/default/ast.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ast.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ast.po"
+subhash="9960439950f0a6f89fcb3a014a0bdbf06e322f0cff699b9f4e8783dea9233cfde800cfa6b94811ddb42eec62bf1bfb9f0fd64805ac2d24b68f3a854f4e02b40b"
diff --git a/config/submodule/grub/default/ca.po/module.cfg b/config/submodule/grub/default/ca.po/module.cfg
new file mode 100644
index 00000000..b12c8631
--- /dev/null
+++ b/config/submodule/grub/default/ca.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ca.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ca.po"
+subhash="c58c3c96a9beabe5fd6383c15e65681909ca93b433f22e3103b977200692edab9e36c2485484ec3e50c7627e7623ae5d3b7166e63044828ed67cc07c5bfe5581"
diff --git a/config/submodule/grub/default/da.po/module.cfg b/config/submodule/grub/default/da.po/module.cfg
new file mode 100644
index 00000000..3d9c17b5
--- /dev/null
+++ b/config/submodule/grub/default/da.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/da.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/da.po"
+subhash="d53dafc5e4c4a7a2943923c44fd7a6af8fb1b4b40297e639952c2f65baa068d9103414de69fd9030a926907d78d5d240244ac8e6e4ae94dac15330e228635e70"
diff --git a/config/submodule/grub/default/de.po/module.cfg b/config/submodule/grub/default/de.po/module.cfg
new file mode 100644
index 00000000..6fa5860c
--- /dev/null
+++ b/config/submodule/grub/default/de.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/de.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/de.po"
+subhash="0d58da2e7d3d18ffa6d45a0e22bd8841699704438b95abc6658935fcec4b0f7fa8f279b5ed08ba3881e5fed56d3beedfeaaab14686146bf8dd194c7a4179065a"
diff --git a/config/submodule/grub/default/eo.po/module.cfg b/config/submodule/grub/default/eo.po/module.cfg
new file mode 100644
index 00000000..b3411b82
--- /dev/null
+++ b/config/submodule/grub/default/eo.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/eo.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/eo.po"
+subhash="14db316ab5b8599031019f5d7f0fc8f6c847478945170f1555f1bc0e427ad7133d3b5f40dc019f356ed86521255ac74f602ef7f081a4bc2c25dbaae7a0adc545"
diff --git a/config/submodule/grub/default/es.po/module.cfg b/config/submodule/grub/default/es.po/module.cfg
new file mode 100644
index 00000000..c07d060d
--- /dev/null
+++ b/config/submodule/grub/default/es.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/es.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/es.po"
+subhash="9821774d0c2c9ae498688d170f0563a0b4bac013922de0769c49c30830ecde27c0ea7bd599a6f2e9a317629faac326dbb3f0c159e4e72bf943f30febe88c08b6"
diff --git a/config/submodule/grub/default/fi.po/module.cfg b/config/submodule/grub/default/fi.po/module.cfg
new file mode 100644
index 00000000..1dee3f10
--- /dev/null
+++ b/config/submodule/grub/default/fi.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/fi.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/fi.po"
+subhash="ec3cd99fd654c9008344148002310a4733b9edf9dbc8f0df952adac527230af936ae0dbd9acfab07b4b0cd7f0c01b2d17ba9e15fc7b527fc0dd974c9e42bf668"
diff --git a/config/submodule/grub/default/fr.po/module.cfg b/config/submodule/grub/default/fr.po/module.cfg
new file mode 100644
index 00000000..b57cbc35
--- /dev/null
+++ b/config/submodule/grub/default/fr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/fr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/fr.po"
+subhash="7d863df1d733b57bde6a4e15e37d100523d740c9b0b7a95eaffd8bfffbb32fabc21d4d76f8d6f8c9d3b68a11f472157a3e3d385cd2e360284a02697772a17eff"
diff --git a/config/submodule/grub/default/gl.po/module.cfg b/config/submodule/grub/default/gl.po/module.cfg
new file mode 100644
index 00000000..ab6010e3
--- /dev/null
+++ b/config/submodule/grub/default/gl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/gl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/gl.po"
+subhash="0e80f4a57e55c7b5c849f4283c830a6c4852a5d3e5a86fdaa00aeb02bc7ccbca72c6c4e2530bf1db6a6f83073c00c8f4df6f1e08a340ce58b58f5f09099cd616"
diff --git a/config/submodule/grub/default/he.po/module.cfg b/config/submodule/grub/default/he.po/module.cfg
new file mode 100644
index 00000000..d01485f5
--- /dev/null
+++ b/config/submodule/grub/default/he.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/he.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/he.po"
+subhash="02c9775c3738f2ead03c3fb912f0706ce2716dbea9230ab342631a7207dda56ef0a14f2fe1d31ad60804aa2ab853897dfa39480630db6686152262962ffd283e"
diff --git a/config/submodule/grub/default/hr.po/module.cfg b/config/submodule/grub/default/hr.po/module.cfg
new file mode 100644
index 00000000..f6cb61c6
--- /dev/null
+++ b/config/submodule/grub/default/hr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/hr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/hr.po"
+subhash="baa819047d7ef709fdbd089c2ddee0d4ea0ec32cee7aff81ae087214fb0bf41fa0266750770f08b6f61d0831b7d4fc8358181e374b287ca7067a7832334c5047"
diff --git a/config/submodule/grub/default/hu.po/module.cfg b/config/submodule/grub/default/hu.po/module.cfg
new file mode 100644
index 00000000..34ca727a
--- /dev/null
+++ b/config/submodule/grub/default/hu.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/hu.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/hu.po"
+subhash="f397b572cfc1e1a57a6415cb0f674041fbe661393cbb8c6f2f70da4e830e7019ac4cb7d6408a2695e19493e555e8a391c16a1c5b0d44fc653c5be433d4f94030"
diff --git a/config/submodule/grub/default/id.po/module.cfg b/config/submodule/grub/default/id.po/module.cfg
new file mode 100644
index 00000000..e70cfd5d
--- /dev/null
+++ b/config/submodule/grub/default/id.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/id.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/id.po"
+subhash="78154279f7c4495b3546318a9eb694ecf0e1ca5018085aa47a1bb4505cefbe8e44d4af56aadff75c598157a5f15a1168ac5ead0cefef98704852a3d5b9fe0158"
diff --git a/config/submodule/grub/default/it.po/module.cfg b/config/submodule/grub/default/it.po/module.cfg
new file mode 100644
index 00000000..7ed6dab2
--- /dev/null
+++ b/config/submodule/grub/default/it.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/it.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/it.po"
+subhash="dbf178c85306eecbdb269617f3f803f188615a0637aa65752b991fa6a8581ef819ccdcb1e62c407977f38254b1f45787e7c288285808ea4f7d11e601bc584942"
diff --git a/config/submodule/grub/default/ja.po/module.cfg b/config/submodule/grub/default/ja.po/module.cfg
new file mode 100644
index 00000000..245471f5
--- /dev/null
+++ b/config/submodule/grub/default/ja.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ja.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ja.po"
+subhash="df13d6e26079bd196c3f0bb3f0ea8f1d8279e0fc2706a5a1b3e0b388a667500efa64ca6d5c50d4a0bf7e5736d0af9bbf27e851883746ce8292ed5f91a6d025d7"
diff --git a/config/submodule/grub/default/ka.po/module.cfg b/config/submodule/grub/default/ka.po/module.cfg
new file mode 100644
index 00000000..2c22434c
--- /dev/null
+++ b/config/submodule/grub/default/ka.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ka.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ka.po"
+subhash="2b21ab9170e3c08165c64d16080666f263aea8d3b69f44d89e050ae5a7d83599618857f48234eb0078d88c193d70c1e03f9f77dd9186f67c24968bb01fa8a386"
diff --git a/config/submodule/grub/default/ko.po/module.cfg b/config/submodule/grub/default/ko.po/module.cfg
new file mode 100644
index 00000000..c3ea0d2a
--- /dev/null
+++ b/config/submodule/grub/default/ko.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ko.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ko.po"
+subhash="988e67763e541a1ba6bd9db750088821608c81a9414b58b3759c6ac8d6ca7420e4a8a460b7cb03acc26132a59c12ca9c5549dbbe2ae062f3f007fb8a258e9785"
diff --git a/config/submodule/grub/default/lg.po/module.cfg b/config/submodule/grub/default/lg.po/module.cfg
new file mode 100644
index 00000000..76006826
--- /dev/null
+++ b/config/submodule/grub/default/lg.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/lg.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/lg.po"
+subhash="f64cb2add4ee65973bbb5e3509d9203ba8f136870c67795c21c0dde266514848a0b9d161a1e71c2b8732d1ef5200798d1b8be7ca4b0b44fae5acfe1810282f15"
diff --git a/config/submodule/grub/default/lt.po/module.cfg b/config/submodule/grub/default/lt.po/module.cfg
new file mode 100644
index 00000000..4531b6f4
--- /dev/null
+++ b/config/submodule/grub/default/lt.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/lt.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/lt.po"
+subhash="3770cf0624a892868df1c64100bccfcd41ca4707c96d92c1752570c2957c9d861065a5f9d5250bba307e520aedb00ebbcd4d09902a305421708a5da54b39cd56"
diff --git a/config/submodule/grub/default/module.list b/config/submodule/grub/default/module.list
index 0e57095c..d4f1e5e3 100644
--- a/config/submodule/grub/default/module.list
+++ b/config/submodule/grub/default/module.list
@@ -1 +1,36 @@
+po/.reference/zh_TW.po
+po/.reference/zh_CN.po
+po/.reference/vi.po
+po/.reference/uk.po
+po/.reference/tr.po
+po/.reference/sv.po
+po/.reference/sr.po
+po/.reference/sl.po
+po/.reference/ru.po
+po/.reference/ro.po
+po/.reference/pt_BR.po
+po/.reference/pt.po
+po/.reference/pl.po
+po/.reference/pa.po
+po/.reference/nl.po
+po/.reference/nb.po
+po/.reference/lt.po
+po/.reference/lg.po
+po/.reference/ko.po
+po/.reference/ka.po
+po/.reference/ja.po
+po/.reference/it.po
+po/.reference/id.po
+po/.reference/hu.po
+po/.reference/hr.po
+po/.reference/he.po
+po/.reference/gl.po
+po/.reference/fr.po
+po/.reference/fi.po
+po/.reference/es.po
+po/.reference/eo.po
+po/.reference/de.po
+po/.reference/da.po
+po/.reference/ca.po
+po/.reference/ast.po
gnulib
diff --git a/config/submodule/grub/default/nb.po/module.cfg b/config/submodule/grub/default/nb.po/module.cfg
new file mode 100644
index 00000000..e8340f93
--- /dev/null
+++ b/config/submodule/grub/default/nb.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/nb.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/nb.po"
+subhash="58671e04ed2ca88ece06ff5c6dc5e09fda1f1d7d0c510ece8f8777c090a39f0a1cf89e7783797219f343efb19aa0b75a7dcf3d8f7bc48589109ba0a18b14d122"
diff --git a/config/submodule/grub/default/nl.po/module.cfg b/config/submodule/grub/default/nl.po/module.cfg
new file mode 100644
index 00000000..2f67d971
--- /dev/null
+++ b/config/submodule/grub/default/nl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/nl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/nl.po"
+subhash="8ce36e055a9587967d853a15167888ffd218707978c7ee80e697ddae766889cef90b7c354ee31794c6354a46d1c3138724e0b26cd3db7e737fd0e65e034e7d61"
diff --git a/config/submodule/grub/default/pa.po/module.cfg b/config/submodule/grub/default/pa.po/module.cfg
new file mode 100644
index 00000000..a4b1aa62
--- /dev/null
+++ b/config/submodule/grub/default/pa.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pa.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pa.po"
+subhash="00f2ea030d9f275cf4828e01cf7a9a0912f48ffeaad6b1085783bfb5772437e9a354cd4337b79fc6c0fc7827ebeeaa38b1422e105c00d4c58ea685824d8b28ea"
diff --git a/config/submodule/grub/default/pl.po/module.cfg b/config/submodule/grub/default/pl.po/module.cfg
new file mode 100644
index 00000000..5a8d17d1
--- /dev/null
+++ b/config/submodule/grub/default/pl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pl.po"
+subhash="1de3545a3015986435c091b7ee3339c5bd9bddb3e8814b6cfb55acdb957829dc453e05812063b7438ae6aec0abc232065413be7456fb95ad0a5da8d36e7076ce"
diff --git a/config/submodule/grub/default/pt.po/module.cfg b/config/submodule/grub/default/pt.po/module.cfg
new file mode 100644
index 00000000..826f8752
--- /dev/null
+++ b/config/submodule/grub/default/pt.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pt.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pt.po"
+subhash="1bc2d024b1261b6f7a1fea00bc1ee45b29b860adfa98fcbb2022fbaf817ceefe12f961564bed01b129735fb838025e6d30e38020a9aeeb8aa5e14a2b22d07156"
diff --git a/config/submodule/grub/default/pt_BR.po/module.cfg b/config/submodule/grub/default/pt_BR.po/module.cfg
new file mode 100644
index 00000000..8e0dcaaf
--- /dev/null
+++ b/config/submodule/grub/default/pt_BR.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pt_BR.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pt_BR.po"
+subhash="009b11465e67f310d50f4dcc8a34a2e3ba19ba9c3bfcb382065f8deb1818b2a879c146c27e6f49085c73ed6f8c9924feaa9a068fec47f8138df822f685f896ca"
diff --git a/config/submodule/grub/default/ro.po/module.cfg b/config/submodule/grub/default/ro.po/module.cfg
new file mode 100644
index 00000000..e95467cd
--- /dev/null
+++ b/config/submodule/grub/default/ro.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ro.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ro.po"
+subhash="f4c5f621ea217b06b07f6db29da921358de49ed9ebb655b0b1331fd48b0a68795c7c666f0b97833ad5f6e3fdbd0918b4e8f00bcc890e5f3673121c0b676ffda4"
diff --git a/config/submodule/grub/default/ru.po/module.cfg b/config/submodule/grub/default/ru.po/module.cfg
new file mode 100644
index 00000000..4d864e71
--- /dev/null
+++ b/config/submodule/grub/default/ru.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ru.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ru.po"
+subhash="8883d7786863679e16214e9a3b2f4e607de9f7d958ae28756bab4cfd4f86356ef26c403d105aed9cf1d0ecd498059481ecf2b3d2df694a759510f4c442431494"
diff --git a/config/submodule/grub/default/sl.po/module.cfg b/config/submodule/grub/default/sl.po/module.cfg
new file mode 100644
index 00000000..bf2548aa
--- /dev/null
+++ b/config/submodule/grub/default/sl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sl.po"
+subhash="3047e48665c0528eefdb201cff12c2ef5c937b10ee8cbca637ee6b5a9c8017604c7f849830ae0f5dcc4613efb490a41668f925d499e6083fa4587653327819cb"
diff --git a/config/submodule/grub/default/sr.po/module.cfg b/config/submodule/grub/default/sr.po/module.cfg
new file mode 100644
index 00000000..bf1352be
--- /dev/null
+++ b/config/submodule/grub/default/sr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sr.po"
+subhash="5e9a51dfb02fef0daa26c1df37e606952f2f922a6933e5ce0890eaabc039ec5e13de50a4fd927d9c9ab15385cca9b8b1f33b35bccde50384f45c75769a5f04ea"
diff --git a/config/submodule/grub/default/sv.po/module.cfg b/config/submodule/grub/default/sv.po/module.cfg
new file mode 100644
index 00000000..ed2f74bd
--- /dev/null
+++ b/config/submodule/grub/default/sv.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sv.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sv.po"
+subhash="80b249091e2cfb369da1a4365fe76f7643ed6b34e46b4ee73359721ece6d87ef0c1f099a46f74b4c85416bea431c7dc36bf36ab16dce36e2d6c0c1b890b431dc"
diff --git a/config/submodule/grub/default/tr.po/module.cfg b/config/submodule/grub/default/tr.po/module.cfg
new file mode 100644
index 00000000..83410286
--- /dev/null
+++ b/config/submodule/grub/default/tr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/tr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/tr.po"
+subhash="a83ebdd25d5438ff6489d88a8cb0657e606c2fc2c1efbc7dd34193fda4e0d92e10f9a29185c12e665af151b995c12b8bce755418d9e6c9978dddc23ca4a10d2b"
diff --git a/config/submodule/grub/default/uk.po/module.cfg b/config/submodule/grub/default/uk.po/module.cfg
new file mode 100644
index 00000000..678efae7
--- /dev/null
+++ b/config/submodule/grub/default/uk.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/uk.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/uk.po"
+subhash="0545c90c2bc5df9ee813806cff9a5193d8fbef00aab80f85cef14f967c8d9fd650de3a0bd1063abb8fcc65b5c68e59a02832fda6827e7120fdf0a28fe58a3474"
diff --git a/config/submodule/grub/default/vi.po/module.cfg b/config/submodule/grub/default/vi.po/module.cfg
new file mode 100644
index 00000000..61a7a058
--- /dev/null
+++ b/config/submodule/grub/default/vi.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/vi.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/vi.po"
+subhash="995754563bb472b93dfb5dd13b27b2540cebcf819be5ff2718553444b5fe06ad50a2fa8a0fdfcb06ab1bce9c2b870c950257c28b29e90413f1bfb42ad2643e72"
diff --git a/config/submodule/grub/default/zh_CN.po/module.cfg b/config/submodule/grub/default/zh_CN.po/module.cfg
new file mode 100644
index 00000000..0ba80be9
--- /dev/null
+++ b/config/submodule/grub/default/zh_CN.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/zh_CN.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/zh_CN.po"
+subhash="8c77c78ae8e5c26107eec83a0a22465c6fc8399eb2e4f9a18f7c056f32a3e5392a313afd6520f72cc044efe6360fe0390f0a2f2edc825344d497e55ab83bfbb4"
diff --git a/config/submodule/grub/default/zh_TW.po/module.cfg b/config/submodule/grub/default/zh_TW.po/module.cfg
new file mode 100644
index 00000000..4907e2f9
--- /dev/null
+++ b/config/submodule/grub/default/zh_TW.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/zh_TW.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/zh_TW.po"
+subhash="ef25bc8a0d558868a3135f6fe1816cad9fa0510b8adb48e04938053b3a0e95cc2061611601b0d23ec03e8e7c837cf5e9712eed108ee35aef98991591878f4577"
diff --git a/config/submodule/grub/nvme/ast.po/module.cfg b/config/submodule/grub/nvme/ast.po/module.cfg
new file mode 100644
index 00000000..24f5340e
--- /dev/null
+++ b/config/submodule/grub/nvme/ast.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ast.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ast.po"
+subhash="9960439950f0a6f89fcb3a014a0bdbf06e322f0cff699b9f4e8783dea9233cfde800cfa6b94811ddb42eec62bf1bfb9f0fd64805ac2d24b68f3a854f4e02b40b"
diff --git a/config/submodule/grub/nvme/ca.po/module.cfg b/config/submodule/grub/nvme/ca.po/module.cfg
new file mode 100644
index 00000000..b12c8631
--- /dev/null
+++ b/config/submodule/grub/nvme/ca.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ca.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ca.po"
+subhash="c58c3c96a9beabe5fd6383c15e65681909ca93b433f22e3103b977200692edab9e36c2485484ec3e50c7627e7623ae5d3b7166e63044828ed67cc07c5bfe5581"
diff --git a/config/submodule/grub/nvme/da.po/module.cfg b/config/submodule/grub/nvme/da.po/module.cfg
new file mode 100644
index 00000000..3d9c17b5
--- /dev/null
+++ b/config/submodule/grub/nvme/da.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/da.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/da.po"
+subhash="d53dafc5e4c4a7a2943923c44fd7a6af8fb1b4b40297e639952c2f65baa068d9103414de69fd9030a926907d78d5d240244ac8e6e4ae94dac15330e228635e70"
diff --git a/config/submodule/grub/nvme/de.po/module.cfg b/config/submodule/grub/nvme/de.po/module.cfg
new file mode 100644
index 00000000..6fa5860c
--- /dev/null
+++ b/config/submodule/grub/nvme/de.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/de.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/de.po"
+subhash="0d58da2e7d3d18ffa6d45a0e22bd8841699704438b95abc6658935fcec4b0f7fa8f279b5ed08ba3881e5fed56d3beedfeaaab14686146bf8dd194c7a4179065a"
diff --git a/config/submodule/grub/nvme/eo.po/module.cfg b/config/submodule/grub/nvme/eo.po/module.cfg
new file mode 100644
index 00000000..b3411b82
--- /dev/null
+++ b/config/submodule/grub/nvme/eo.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/eo.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/eo.po"
+subhash="14db316ab5b8599031019f5d7f0fc8f6c847478945170f1555f1bc0e427ad7133d3b5f40dc019f356ed86521255ac74f602ef7f081a4bc2c25dbaae7a0adc545"
diff --git a/config/submodule/grub/nvme/es.po/module.cfg b/config/submodule/grub/nvme/es.po/module.cfg
new file mode 100644
index 00000000..c07d060d
--- /dev/null
+++ b/config/submodule/grub/nvme/es.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/es.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/es.po"
+subhash="9821774d0c2c9ae498688d170f0563a0b4bac013922de0769c49c30830ecde27c0ea7bd599a6f2e9a317629faac326dbb3f0c159e4e72bf943f30febe88c08b6"
diff --git a/config/submodule/grub/nvme/fi.po/module.cfg b/config/submodule/grub/nvme/fi.po/module.cfg
new file mode 100644
index 00000000..1dee3f10
--- /dev/null
+++ b/config/submodule/grub/nvme/fi.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/fi.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/fi.po"
+subhash="ec3cd99fd654c9008344148002310a4733b9edf9dbc8f0df952adac527230af936ae0dbd9acfab07b4b0cd7f0c01b2d17ba9e15fc7b527fc0dd974c9e42bf668"
diff --git a/config/submodule/grub/nvme/fr.po/module.cfg b/config/submodule/grub/nvme/fr.po/module.cfg
new file mode 100644
index 00000000..b57cbc35
--- /dev/null
+++ b/config/submodule/grub/nvme/fr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/fr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/fr.po"
+subhash="7d863df1d733b57bde6a4e15e37d100523d740c9b0b7a95eaffd8bfffbb32fabc21d4d76f8d6f8c9d3b68a11f472157a3e3d385cd2e360284a02697772a17eff"
diff --git a/config/submodule/grub/nvme/gl.po/module.cfg b/config/submodule/grub/nvme/gl.po/module.cfg
new file mode 100644
index 00000000..ab6010e3
--- /dev/null
+++ b/config/submodule/grub/nvme/gl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/gl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/gl.po"
+subhash="0e80f4a57e55c7b5c849f4283c830a6c4852a5d3e5a86fdaa00aeb02bc7ccbca72c6c4e2530bf1db6a6f83073c00c8f4df6f1e08a340ce58b58f5f09099cd616"
diff --git a/config/submodule/grub/nvme/he.po/module.cfg b/config/submodule/grub/nvme/he.po/module.cfg
new file mode 100644
index 00000000..d01485f5
--- /dev/null
+++ b/config/submodule/grub/nvme/he.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/he.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/he.po"
+subhash="02c9775c3738f2ead03c3fb912f0706ce2716dbea9230ab342631a7207dda56ef0a14f2fe1d31ad60804aa2ab853897dfa39480630db6686152262962ffd283e"
diff --git a/config/submodule/grub/nvme/hr.po/module.cfg b/config/submodule/grub/nvme/hr.po/module.cfg
new file mode 100644
index 00000000..f6cb61c6
--- /dev/null
+++ b/config/submodule/grub/nvme/hr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/hr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/hr.po"
+subhash="baa819047d7ef709fdbd089c2ddee0d4ea0ec32cee7aff81ae087214fb0bf41fa0266750770f08b6f61d0831b7d4fc8358181e374b287ca7067a7832334c5047"
diff --git a/config/submodule/grub/nvme/hu.po/module.cfg b/config/submodule/grub/nvme/hu.po/module.cfg
new file mode 100644
index 00000000..34ca727a
--- /dev/null
+++ b/config/submodule/grub/nvme/hu.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/hu.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/hu.po"
+subhash="f397b572cfc1e1a57a6415cb0f674041fbe661393cbb8c6f2f70da4e830e7019ac4cb7d6408a2695e19493e555e8a391c16a1c5b0d44fc653c5be433d4f94030"
diff --git a/config/submodule/grub/nvme/id.po/module.cfg b/config/submodule/grub/nvme/id.po/module.cfg
new file mode 100644
index 00000000..e70cfd5d
--- /dev/null
+++ b/config/submodule/grub/nvme/id.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/id.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/id.po"
+subhash="78154279f7c4495b3546318a9eb694ecf0e1ca5018085aa47a1bb4505cefbe8e44d4af56aadff75c598157a5f15a1168ac5ead0cefef98704852a3d5b9fe0158"
diff --git a/config/submodule/grub/nvme/it.po/module.cfg b/config/submodule/grub/nvme/it.po/module.cfg
new file mode 100644
index 00000000..7ed6dab2
--- /dev/null
+++ b/config/submodule/grub/nvme/it.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/it.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/it.po"
+subhash="dbf178c85306eecbdb269617f3f803f188615a0637aa65752b991fa6a8581ef819ccdcb1e62c407977f38254b1f45787e7c288285808ea4f7d11e601bc584942"
diff --git a/config/submodule/grub/nvme/ja.po/module.cfg b/config/submodule/grub/nvme/ja.po/module.cfg
new file mode 100644
index 00000000..245471f5
--- /dev/null
+++ b/config/submodule/grub/nvme/ja.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ja.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ja.po"
+subhash="df13d6e26079bd196c3f0bb3f0ea8f1d8279e0fc2706a5a1b3e0b388a667500efa64ca6d5c50d4a0bf7e5736d0af9bbf27e851883746ce8292ed5f91a6d025d7"
diff --git a/config/submodule/grub/nvme/ka.po/module.cfg b/config/submodule/grub/nvme/ka.po/module.cfg
new file mode 100644
index 00000000..2c22434c
--- /dev/null
+++ b/config/submodule/grub/nvme/ka.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ka.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ka.po"
+subhash="2b21ab9170e3c08165c64d16080666f263aea8d3b69f44d89e050ae5a7d83599618857f48234eb0078d88c193d70c1e03f9f77dd9186f67c24968bb01fa8a386"
diff --git a/config/submodule/grub/nvme/ko.po/module.cfg b/config/submodule/grub/nvme/ko.po/module.cfg
new file mode 100644
index 00000000..c3ea0d2a
--- /dev/null
+++ b/config/submodule/grub/nvme/ko.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ko.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ko.po"
+subhash="988e67763e541a1ba6bd9db750088821608c81a9414b58b3759c6ac8d6ca7420e4a8a460b7cb03acc26132a59c12ca9c5549dbbe2ae062f3f007fb8a258e9785"
diff --git a/config/submodule/grub/nvme/lg.po/module.cfg b/config/submodule/grub/nvme/lg.po/module.cfg
new file mode 100644
index 00000000..76006826
--- /dev/null
+++ b/config/submodule/grub/nvme/lg.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/lg.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/lg.po"
+subhash="f64cb2add4ee65973bbb5e3509d9203ba8f136870c67795c21c0dde266514848a0b9d161a1e71c2b8732d1ef5200798d1b8be7ca4b0b44fae5acfe1810282f15"
diff --git a/config/submodule/grub/nvme/lt.po/module.cfg b/config/submodule/grub/nvme/lt.po/module.cfg
new file mode 100644
index 00000000..4531b6f4
--- /dev/null
+++ b/config/submodule/grub/nvme/lt.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/lt.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/lt.po"
+subhash="3770cf0624a892868df1c64100bccfcd41ca4707c96d92c1752570c2957c9d861065a5f9d5250bba307e520aedb00ebbcd4d09902a305421708a5da54b39cd56"
diff --git a/config/submodule/grub/nvme/module.list b/config/submodule/grub/nvme/module.list
index 0e57095c..d4f1e5e3 100644
--- a/config/submodule/grub/nvme/module.list
+++ b/config/submodule/grub/nvme/module.list
@@ -1 +1,36 @@
+po/.reference/zh_TW.po
+po/.reference/zh_CN.po
+po/.reference/vi.po
+po/.reference/uk.po
+po/.reference/tr.po
+po/.reference/sv.po
+po/.reference/sr.po
+po/.reference/sl.po
+po/.reference/ru.po
+po/.reference/ro.po
+po/.reference/pt_BR.po
+po/.reference/pt.po
+po/.reference/pl.po
+po/.reference/pa.po
+po/.reference/nl.po
+po/.reference/nb.po
+po/.reference/lt.po
+po/.reference/lg.po
+po/.reference/ko.po
+po/.reference/ka.po
+po/.reference/ja.po
+po/.reference/it.po
+po/.reference/id.po
+po/.reference/hu.po
+po/.reference/hr.po
+po/.reference/he.po
+po/.reference/gl.po
+po/.reference/fr.po
+po/.reference/fi.po
+po/.reference/es.po
+po/.reference/eo.po
+po/.reference/de.po
+po/.reference/da.po
+po/.reference/ca.po
+po/.reference/ast.po
gnulib
diff --git a/config/submodule/grub/nvme/nb.po/module.cfg b/config/submodule/grub/nvme/nb.po/module.cfg
new file mode 100644
index 00000000..e8340f93
--- /dev/null
+++ b/config/submodule/grub/nvme/nb.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/nb.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/nb.po"
+subhash="58671e04ed2ca88ece06ff5c6dc5e09fda1f1d7d0c510ece8f8777c090a39f0a1cf89e7783797219f343efb19aa0b75a7dcf3d8f7bc48589109ba0a18b14d122"
diff --git a/config/submodule/grub/nvme/nl.po/module.cfg b/config/submodule/grub/nvme/nl.po/module.cfg
new file mode 100644
index 00000000..2f67d971
--- /dev/null
+++ b/config/submodule/grub/nvme/nl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/nl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/nl.po"
+subhash="8ce36e055a9587967d853a15167888ffd218707978c7ee80e697ddae766889cef90b7c354ee31794c6354a46d1c3138724e0b26cd3db7e737fd0e65e034e7d61"
diff --git a/config/submodule/grub/nvme/pa.po/module.cfg b/config/submodule/grub/nvme/pa.po/module.cfg
new file mode 100644
index 00000000..a4b1aa62
--- /dev/null
+++ b/config/submodule/grub/nvme/pa.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pa.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pa.po"
+subhash="00f2ea030d9f275cf4828e01cf7a9a0912f48ffeaad6b1085783bfb5772437e9a354cd4337b79fc6c0fc7827ebeeaa38b1422e105c00d4c58ea685824d8b28ea"
diff --git a/config/submodule/grub/nvme/pl.po/module.cfg b/config/submodule/grub/nvme/pl.po/module.cfg
new file mode 100644
index 00000000..5a8d17d1
--- /dev/null
+++ b/config/submodule/grub/nvme/pl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pl.po"
+subhash="1de3545a3015986435c091b7ee3339c5bd9bddb3e8814b6cfb55acdb957829dc453e05812063b7438ae6aec0abc232065413be7456fb95ad0a5da8d36e7076ce"
diff --git a/config/submodule/grub/nvme/pt.po/module.cfg b/config/submodule/grub/nvme/pt.po/module.cfg
new file mode 100644
index 00000000..826f8752
--- /dev/null
+++ b/config/submodule/grub/nvme/pt.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pt.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pt.po"
+subhash="1bc2d024b1261b6f7a1fea00bc1ee45b29b860adfa98fcbb2022fbaf817ceefe12f961564bed01b129735fb838025e6d30e38020a9aeeb8aa5e14a2b22d07156"
diff --git a/config/submodule/grub/nvme/pt_BR.po/module.cfg b/config/submodule/grub/nvme/pt_BR.po/module.cfg
new file mode 100644
index 00000000..8e0dcaaf
--- /dev/null
+++ b/config/submodule/grub/nvme/pt_BR.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pt_BR.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pt_BR.po"
+subhash="009b11465e67f310d50f4dcc8a34a2e3ba19ba9c3bfcb382065f8deb1818b2a879c146c27e6f49085c73ed6f8c9924feaa9a068fec47f8138df822f685f896ca"
diff --git a/config/submodule/grub/nvme/ro.po/module.cfg b/config/submodule/grub/nvme/ro.po/module.cfg
new file mode 100644
index 00000000..e95467cd
--- /dev/null
+++ b/config/submodule/grub/nvme/ro.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ro.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ro.po"
+subhash="f4c5f621ea217b06b07f6db29da921358de49ed9ebb655b0b1331fd48b0a68795c7c666f0b97833ad5f6e3fdbd0918b4e8f00bcc890e5f3673121c0b676ffda4"
diff --git a/config/submodule/grub/nvme/ru.po/module.cfg b/config/submodule/grub/nvme/ru.po/module.cfg
new file mode 100644
index 00000000..4d864e71
--- /dev/null
+++ b/config/submodule/grub/nvme/ru.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ru.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ru.po"
+subhash="8883d7786863679e16214e9a3b2f4e607de9f7d958ae28756bab4cfd4f86356ef26c403d105aed9cf1d0ecd498059481ecf2b3d2df694a759510f4c442431494"
diff --git a/config/submodule/grub/nvme/sl.po/module.cfg b/config/submodule/grub/nvme/sl.po/module.cfg
new file mode 100644
index 00000000..bf2548aa
--- /dev/null
+++ b/config/submodule/grub/nvme/sl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sl.po"
+subhash="3047e48665c0528eefdb201cff12c2ef5c937b10ee8cbca637ee6b5a9c8017604c7f849830ae0f5dcc4613efb490a41668f925d499e6083fa4587653327819cb"
diff --git a/config/submodule/grub/nvme/sr.po/module.cfg b/config/submodule/grub/nvme/sr.po/module.cfg
new file mode 100644
index 00000000..bf1352be
--- /dev/null
+++ b/config/submodule/grub/nvme/sr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sr.po"
+subhash="5e9a51dfb02fef0daa26c1df37e606952f2f922a6933e5ce0890eaabc039ec5e13de50a4fd927d9c9ab15385cca9b8b1f33b35bccde50384f45c75769a5f04ea"
diff --git a/config/submodule/grub/nvme/sv.po/module.cfg b/config/submodule/grub/nvme/sv.po/module.cfg
new file mode 100644
index 00000000..ed2f74bd
--- /dev/null
+++ b/config/submodule/grub/nvme/sv.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sv.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sv.po"
+subhash="80b249091e2cfb369da1a4365fe76f7643ed6b34e46b4ee73359721ece6d87ef0c1f099a46f74b4c85416bea431c7dc36bf36ab16dce36e2d6c0c1b890b431dc"
diff --git a/config/submodule/grub/nvme/tr.po/module.cfg b/config/submodule/grub/nvme/tr.po/module.cfg
new file mode 100644
index 00000000..83410286
--- /dev/null
+++ b/config/submodule/grub/nvme/tr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/tr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/tr.po"
+subhash="a83ebdd25d5438ff6489d88a8cb0657e606c2fc2c1efbc7dd34193fda4e0d92e10f9a29185c12e665af151b995c12b8bce755418d9e6c9978dddc23ca4a10d2b"
diff --git a/config/submodule/grub/nvme/uk.po/module.cfg b/config/submodule/grub/nvme/uk.po/module.cfg
new file mode 100644
index 00000000..678efae7
--- /dev/null
+++ b/config/submodule/grub/nvme/uk.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/uk.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/uk.po"
+subhash="0545c90c2bc5df9ee813806cff9a5193d8fbef00aab80f85cef14f967c8d9fd650de3a0bd1063abb8fcc65b5c68e59a02832fda6827e7120fdf0a28fe58a3474"
diff --git a/config/submodule/grub/nvme/vi.po/module.cfg b/config/submodule/grub/nvme/vi.po/module.cfg
new file mode 100644
index 00000000..61a7a058
--- /dev/null
+++ b/config/submodule/grub/nvme/vi.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/vi.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/vi.po"
+subhash="995754563bb472b93dfb5dd13b27b2540cebcf819be5ff2718553444b5fe06ad50a2fa8a0fdfcb06ab1bce9c2b870c950257c28b29e90413f1bfb42ad2643e72"
diff --git a/config/submodule/grub/nvme/zh_CN.po/module.cfg b/config/submodule/grub/nvme/zh_CN.po/module.cfg
new file mode 100644
index 00000000..0ba80be9
--- /dev/null
+++ b/config/submodule/grub/nvme/zh_CN.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/zh_CN.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/zh_CN.po"
+subhash="8c77c78ae8e5c26107eec83a0a22465c6fc8399eb2e4f9a18f7c056f32a3e5392a313afd6520f72cc044efe6360fe0390f0a2f2edc825344d497e55ab83bfbb4"
diff --git a/config/submodule/grub/nvme/zh_TW.po/module.cfg b/config/submodule/grub/nvme/zh_TW.po/module.cfg
new file mode 100644
index 00000000..4907e2f9
--- /dev/null
+++ b/config/submodule/grub/nvme/zh_TW.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/zh_TW.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/zh_TW.po"
+subhash="ef25bc8a0d558868a3135f6fe1816cad9fa0510b8adb48e04938053b3a0e95cc2061611601b0d23ec03e8e7c837cf5e9712eed108ee35aef98991591878f4577"
diff --git a/config/submodule/grub/xhci_nvme/ast.po/module.cfg b/config/submodule/grub/xhci_nvme/ast.po/module.cfg
new file mode 100644
index 00000000..24f5340e
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ast.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ast.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ast.po"
+subhash="9960439950f0a6f89fcb3a014a0bdbf06e322f0cff699b9f4e8783dea9233cfde800cfa6b94811ddb42eec62bf1bfb9f0fd64805ac2d24b68f3a854f4e02b40b"
diff --git a/config/submodule/grub/xhci_nvme/ca.po/module.cfg b/config/submodule/grub/xhci_nvme/ca.po/module.cfg
new file mode 100644
index 00000000..b12c8631
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ca.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ca.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ca.po"
+subhash="c58c3c96a9beabe5fd6383c15e65681909ca93b433f22e3103b977200692edab9e36c2485484ec3e50c7627e7623ae5d3b7166e63044828ed67cc07c5bfe5581"
diff --git a/config/submodule/grub/xhci_nvme/da.po/module.cfg b/config/submodule/grub/xhci_nvme/da.po/module.cfg
new file mode 100644
index 00000000..3d9c17b5
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/da.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/da.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/da.po"
+subhash="d53dafc5e4c4a7a2943923c44fd7a6af8fb1b4b40297e639952c2f65baa068d9103414de69fd9030a926907d78d5d240244ac8e6e4ae94dac15330e228635e70"
diff --git a/config/submodule/grub/xhci_nvme/de.po/module.cfg b/config/submodule/grub/xhci_nvme/de.po/module.cfg
new file mode 100644
index 00000000..6fa5860c
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/de.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/de.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/de.po"
+subhash="0d58da2e7d3d18ffa6d45a0e22bd8841699704438b95abc6658935fcec4b0f7fa8f279b5ed08ba3881e5fed56d3beedfeaaab14686146bf8dd194c7a4179065a"
diff --git a/config/submodule/grub/xhci_nvme/eo.po/module.cfg b/config/submodule/grub/xhci_nvme/eo.po/module.cfg
new file mode 100644
index 00000000..b3411b82
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/eo.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/eo.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/eo.po"
+subhash="14db316ab5b8599031019f5d7f0fc8f6c847478945170f1555f1bc0e427ad7133d3b5f40dc019f356ed86521255ac74f602ef7f081a4bc2c25dbaae7a0adc545"
diff --git a/config/submodule/grub/xhci_nvme/es.po/module.cfg b/config/submodule/grub/xhci_nvme/es.po/module.cfg
new file mode 100644
index 00000000..c07d060d
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/es.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/es.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/es.po"
+subhash="9821774d0c2c9ae498688d170f0563a0b4bac013922de0769c49c30830ecde27c0ea7bd599a6f2e9a317629faac326dbb3f0c159e4e72bf943f30febe88c08b6"
diff --git a/config/submodule/grub/xhci_nvme/fi.po/module.cfg b/config/submodule/grub/xhci_nvme/fi.po/module.cfg
new file mode 100644
index 00000000..1dee3f10
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/fi.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/fi.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/fi.po"
+subhash="ec3cd99fd654c9008344148002310a4733b9edf9dbc8f0df952adac527230af936ae0dbd9acfab07b4b0cd7f0c01b2d17ba9e15fc7b527fc0dd974c9e42bf668"
diff --git a/config/submodule/grub/xhci_nvme/fr.po/module.cfg b/config/submodule/grub/xhci_nvme/fr.po/module.cfg
new file mode 100644
index 00000000..b57cbc35
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/fr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/fr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/fr.po"
+subhash="7d863df1d733b57bde6a4e15e37d100523d740c9b0b7a95eaffd8bfffbb32fabc21d4d76f8d6f8c9d3b68a11f472157a3e3d385cd2e360284a02697772a17eff"
diff --git a/config/submodule/grub/xhci_nvme/gl.po/module.cfg b/config/submodule/grub/xhci_nvme/gl.po/module.cfg
new file mode 100644
index 00000000..ab6010e3
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/gl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/gl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/gl.po"
+subhash="0e80f4a57e55c7b5c849f4283c830a6c4852a5d3e5a86fdaa00aeb02bc7ccbca72c6c4e2530bf1db6a6f83073c00c8f4df6f1e08a340ce58b58f5f09099cd616"
diff --git a/config/submodule/grub/xhci_nvme/he.po/module.cfg b/config/submodule/grub/xhci_nvme/he.po/module.cfg
new file mode 100644
index 00000000..d01485f5
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/he.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/he.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/he.po"
+subhash="02c9775c3738f2ead03c3fb912f0706ce2716dbea9230ab342631a7207dda56ef0a14f2fe1d31ad60804aa2ab853897dfa39480630db6686152262962ffd283e"
diff --git a/config/submodule/grub/xhci_nvme/hr.po/module.cfg b/config/submodule/grub/xhci_nvme/hr.po/module.cfg
new file mode 100644
index 00000000..f6cb61c6
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/hr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/hr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/hr.po"
+subhash="baa819047d7ef709fdbd089c2ddee0d4ea0ec32cee7aff81ae087214fb0bf41fa0266750770f08b6f61d0831b7d4fc8358181e374b287ca7067a7832334c5047"
diff --git a/config/submodule/grub/xhci_nvme/hu.po/module.cfg b/config/submodule/grub/xhci_nvme/hu.po/module.cfg
new file mode 100644
index 00000000..34ca727a
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/hu.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/hu.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/hu.po"
+subhash="f397b572cfc1e1a57a6415cb0f674041fbe661393cbb8c6f2f70da4e830e7019ac4cb7d6408a2695e19493e555e8a391c16a1c5b0d44fc653c5be433d4f94030"
diff --git a/config/submodule/grub/xhci_nvme/id.po/module.cfg b/config/submodule/grub/xhci_nvme/id.po/module.cfg
new file mode 100644
index 00000000..e70cfd5d
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/id.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/id.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/id.po"
+subhash="78154279f7c4495b3546318a9eb694ecf0e1ca5018085aa47a1bb4505cefbe8e44d4af56aadff75c598157a5f15a1168ac5ead0cefef98704852a3d5b9fe0158"
diff --git a/config/submodule/grub/xhci_nvme/it.po/module.cfg b/config/submodule/grub/xhci_nvme/it.po/module.cfg
new file mode 100644
index 00000000..7ed6dab2
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/it.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/it.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/it.po"
+subhash="dbf178c85306eecbdb269617f3f803f188615a0637aa65752b991fa6a8581ef819ccdcb1e62c407977f38254b1f45787e7c288285808ea4f7d11e601bc584942"
diff --git a/config/submodule/grub/xhci_nvme/ja.po/module.cfg b/config/submodule/grub/xhci_nvme/ja.po/module.cfg
new file mode 100644
index 00000000..245471f5
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ja.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ja.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ja.po"
+subhash="df13d6e26079bd196c3f0bb3f0ea8f1d8279e0fc2706a5a1b3e0b388a667500efa64ca6d5c50d4a0bf7e5736d0af9bbf27e851883746ce8292ed5f91a6d025d7"
diff --git a/config/submodule/grub/xhci_nvme/ka.po/module.cfg b/config/submodule/grub/xhci_nvme/ka.po/module.cfg
new file mode 100644
index 00000000..2c22434c
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ka.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ka.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ka.po"
+subhash="2b21ab9170e3c08165c64d16080666f263aea8d3b69f44d89e050ae5a7d83599618857f48234eb0078d88c193d70c1e03f9f77dd9186f67c24968bb01fa8a386"
diff --git a/config/submodule/grub/xhci_nvme/ko.po/module.cfg b/config/submodule/grub/xhci_nvme/ko.po/module.cfg
new file mode 100644
index 00000000..c3ea0d2a
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ko.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ko.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ko.po"
+subhash="988e67763e541a1ba6bd9db750088821608c81a9414b58b3759c6ac8d6ca7420e4a8a460b7cb03acc26132a59c12ca9c5549dbbe2ae062f3f007fb8a258e9785"
diff --git a/config/submodule/grub/xhci_nvme/lg.po/module.cfg b/config/submodule/grub/xhci_nvme/lg.po/module.cfg
new file mode 100644
index 00000000..76006826
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/lg.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/lg.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/lg.po"
+subhash="f64cb2add4ee65973bbb5e3509d9203ba8f136870c67795c21c0dde266514848a0b9d161a1e71c2b8732d1ef5200798d1b8be7ca4b0b44fae5acfe1810282f15"
diff --git a/config/submodule/grub/xhci_nvme/lt.po/module.cfg b/config/submodule/grub/xhci_nvme/lt.po/module.cfg
new file mode 100644
index 00000000..4531b6f4
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/lt.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/lt.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/lt.po"
+subhash="3770cf0624a892868df1c64100bccfcd41ca4707c96d92c1752570c2957c9d861065a5f9d5250bba307e520aedb00ebbcd4d09902a305421708a5da54b39cd56"
diff --git a/config/submodule/grub/xhci_nvme/module.list b/config/submodule/grub/xhci_nvme/module.list
index 0e57095c..d4f1e5e3 100644
--- a/config/submodule/grub/xhci_nvme/module.list
+++ b/config/submodule/grub/xhci_nvme/module.list
@@ -1 +1,36 @@
+po/.reference/zh_TW.po
+po/.reference/zh_CN.po
+po/.reference/vi.po
+po/.reference/uk.po
+po/.reference/tr.po
+po/.reference/sv.po
+po/.reference/sr.po
+po/.reference/sl.po
+po/.reference/ru.po
+po/.reference/ro.po
+po/.reference/pt_BR.po
+po/.reference/pt.po
+po/.reference/pl.po
+po/.reference/pa.po
+po/.reference/nl.po
+po/.reference/nb.po
+po/.reference/lt.po
+po/.reference/lg.po
+po/.reference/ko.po
+po/.reference/ka.po
+po/.reference/ja.po
+po/.reference/it.po
+po/.reference/id.po
+po/.reference/hu.po
+po/.reference/hr.po
+po/.reference/he.po
+po/.reference/gl.po
+po/.reference/fr.po
+po/.reference/fi.po
+po/.reference/es.po
+po/.reference/eo.po
+po/.reference/de.po
+po/.reference/da.po
+po/.reference/ca.po
+po/.reference/ast.po
gnulib
diff --git a/config/submodule/grub/xhci_nvme/nb.po/module.cfg b/config/submodule/grub/xhci_nvme/nb.po/module.cfg
new file mode 100644
index 00000000..e8340f93
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/nb.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/nb.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/nb.po"
+subhash="58671e04ed2ca88ece06ff5c6dc5e09fda1f1d7d0c510ece8f8777c090a39f0a1cf89e7783797219f343efb19aa0b75a7dcf3d8f7bc48589109ba0a18b14d122"
diff --git a/config/submodule/grub/xhci_nvme/nl.po/module.cfg b/config/submodule/grub/xhci_nvme/nl.po/module.cfg
new file mode 100644
index 00000000..2f67d971
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/nl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/nl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/nl.po"
+subhash="8ce36e055a9587967d853a15167888ffd218707978c7ee80e697ddae766889cef90b7c354ee31794c6354a46d1c3138724e0b26cd3db7e737fd0e65e034e7d61"
diff --git a/config/submodule/grub/xhci_nvme/pa.po/module.cfg b/config/submodule/grub/xhci_nvme/pa.po/module.cfg
new file mode 100644
index 00000000..a4b1aa62
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/pa.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pa.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pa.po"
+subhash="00f2ea030d9f275cf4828e01cf7a9a0912f48ffeaad6b1085783bfb5772437e9a354cd4337b79fc6c0fc7827ebeeaa38b1422e105c00d4c58ea685824d8b28ea"
diff --git a/config/submodule/grub/xhci_nvme/pl.po/module.cfg b/config/submodule/grub/xhci_nvme/pl.po/module.cfg
new file mode 100644
index 00000000..5a8d17d1
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/pl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pl.po"
+subhash="1de3545a3015986435c091b7ee3339c5bd9bddb3e8814b6cfb55acdb957829dc453e05812063b7438ae6aec0abc232065413be7456fb95ad0a5da8d36e7076ce"
diff --git a/config/submodule/grub/xhci_nvme/pt.po/module.cfg b/config/submodule/grub/xhci_nvme/pt.po/module.cfg
new file mode 100644
index 00000000..826f8752
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/pt.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pt.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pt.po"
+subhash="1bc2d024b1261b6f7a1fea00bc1ee45b29b860adfa98fcbb2022fbaf817ceefe12f961564bed01b129735fb838025e6d30e38020a9aeeb8aa5e14a2b22d07156"
diff --git a/config/submodule/grub/xhci_nvme/pt_BR.po/module.cfg b/config/submodule/grub/xhci_nvme/pt_BR.po/module.cfg
new file mode 100644
index 00000000..8e0dcaaf
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/pt_BR.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/pt_BR.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/pt_BR.po"
+subhash="009b11465e67f310d50f4dcc8a34a2e3ba19ba9c3bfcb382065f8deb1818b2a879c146c27e6f49085c73ed6f8c9924feaa9a068fec47f8138df822f685f896ca"
diff --git a/config/submodule/grub/xhci_nvme/ro.po/module.cfg b/config/submodule/grub/xhci_nvme/ro.po/module.cfg
new file mode 100644
index 00000000..e95467cd
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ro.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ro.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ro.po"
+subhash="f4c5f621ea217b06b07f6db29da921358de49ed9ebb655b0b1331fd48b0a68795c7c666f0b97833ad5f6e3fdbd0918b4e8f00bcc890e5f3673121c0b676ffda4"
diff --git a/config/submodule/grub/xhci_nvme/ru.po/module.cfg b/config/submodule/grub/xhci_nvme/ru.po/module.cfg
new file mode 100644
index 00000000..4d864e71
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/ru.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/ru.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/ru.po"
+subhash="8883d7786863679e16214e9a3b2f4e607de9f7d958ae28756bab4cfd4f86356ef26c403d105aed9cf1d0ecd498059481ecf2b3d2df694a759510f4c442431494"
diff --git a/config/submodule/grub/xhci_nvme/sl.po/module.cfg b/config/submodule/grub/xhci_nvme/sl.po/module.cfg
new file mode 100644
index 00000000..bf2548aa
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/sl.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sl.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sl.po"
+subhash="3047e48665c0528eefdb201cff12c2ef5c937b10ee8cbca637ee6b5a9c8017604c7f849830ae0f5dcc4613efb490a41668f925d499e6083fa4587653327819cb"
diff --git a/config/submodule/grub/xhci_nvme/sr.po/module.cfg b/config/submodule/grub/xhci_nvme/sr.po/module.cfg
new file mode 100644
index 00000000..bf1352be
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/sr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sr.po"
+subhash="5e9a51dfb02fef0daa26c1df37e606952f2f922a6933e5ce0890eaabc039ec5e13de50a4fd927d9c9ab15385cca9b8b1f33b35bccde50384f45c75769a5f04ea"
diff --git a/config/submodule/grub/xhci_nvme/sv.po/module.cfg b/config/submodule/grub/xhci_nvme/sv.po/module.cfg
new file mode 100644
index 00000000..ed2f74bd
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/sv.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/sv.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/sv.po"
+subhash="80b249091e2cfb369da1a4365fe76f7643ed6b34e46b4ee73359721ece6d87ef0c1f099a46f74b4c85416bea431c7dc36bf36ab16dce36e2d6c0c1b890b431dc"
diff --git a/config/submodule/grub/xhci_nvme/tr.po/module.cfg b/config/submodule/grub/xhci_nvme/tr.po/module.cfg
new file mode 100644
index 00000000..83410286
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/tr.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/tr.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/tr.po"
+subhash="a83ebdd25d5438ff6489d88a8cb0657e606c2fc2c1efbc7dd34193fda4e0d92e10f9a29185c12e665af151b995c12b8bce755418d9e6c9978dddc23ca4a10d2b"
diff --git a/config/submodule/grub/xhci_nvme/uk.po/module.cfg b/config/submodule/grub/xhci_nvme/uk.po/module.cfg
new file mode 100644
index 00000000..678efae7
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/uk.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/uk.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/uk.po"
+subhash="0545c90c2bc5df9ee813806cff9a5193d8fbef00aab80f85cef14f967c8d9fd650de3a0bd1063abb8fcc65b5c68e59a02832fda6827e7120fdf0a28fe58a3474"
diff --git a/config/submodule/grub/xhci_nvme/vi.po/module.cfg b/config/submodule/grub/xhci_nvme/vi.po/module.cfg
new file mode 100644
index 00000000..61a7a058
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/vi.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/vi.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/vi.po"
+subhash="995754563bb472b93dfb5dd13b27b2540cebcf819be5ff2718553444b5fe06ad50a2fa8a0fdfcb06ab1bce9c2b870c950257c28b29e90413f1bfb42ad2643e72"
diff --git a/config/submodule/grub/xhci_nvme/zh_CN.po/module.cfg b/config/submodule/grub/xhci_nvme/zh_CN.po/module.cfg
new file mode 100644
index 00000000..0ba80be9
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/zh_CN.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/zh_CN.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/zh_CN.po"
+subhash="8c77c78ae8e5c26107eec83a0a22465c6fc8399eb2e4f9a18f7c056f32a3e5392a313afd6520f72cc044efe6360fe0390f0a2f2edc825344d497e55ab83bfbb4"
diff --git a/config/submodule/grub/xhci_nvme/zh_TW.po/module.cfg b/config/submodule/grub/xhci_nvme/zh_TW.po/module.cfg
new file mode 100644
index 00000000..4907e2f9
--- /dev/null
+++ b/config/submodule/grub/xhci_nvme/zh_TW.po/module.cfg
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+subcurl="https://www.mirrorservice.org/sites/libreboot.org/release/misc/grub/zh_TW.po"
+subcurl_bkup="https://mirror.math.princeton.edu/pub/libreboot/misc/grub/zh_TW.po"
+subhash="ef25bc8a0d558868a3135f6fe1816cad9fa0510b8adb48e04938053b3a0e95cc2061611601b0d23ec03e8e7c837cf5e9712eed108ee35aef98991591878f4577"