mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-13 14:40:21 -05:00
gnu: torbrowser: Add support for language localisation.
* gnu/packages/gnuzilla.scm (all-mozilla-locales): Export it. * gnu/packages/tor.scm (%torbrowser-locales, translation-base-browser, translation-tor-browser): New variables. (torbrowser)[arguments]: In ‘setenv’ phase, set MOZ_CHROME_MULTILOCALE. Add ‘copy-firefox-locales’, ‘copy-basebrowser-locales’, ‘copy-torbrowser-locales’ and ‘build-locales’ phases. Change-Id: Ia5b28fa5d885f24140893dc270e57e83b0250c67
This commit is contained in:
parent
8ca35ca44f
commit
0ef8afe1e1
2 changed files with 112 additions and 1 deletions
|
@ -98,7 +98,8 @@ (define-module (gnu packages gnuzilla)
|
|||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:autoload (json parser) (json->scm))
|
||||
#:autoload (json parser) (json->scm)
|
||||
#:export (all-mozilla-locales))
|
||||
|
||||
(define-public mozjs
|
||||
(package
|
||||
|
|
|
@ -503,6 +503,36 @@ (define %torbrowser-version "13.0.8")
|
|||
;; "src-firefox-tor-browser-".
|
||||
(define %torbrowser-firefox-version "115.6.0esr-13.0-1-build2")
|
||||
|
||||
;; Use the list in tor-browser-build/rbm.conf.
|
||||
(define %torbrowser-locales
|
||||
'("ar" "ca" "cs" "da" "de" "el" "es-ES" "fa" "fi" "fr" "ga-IE" "he" "hu"
|
||||
"id" "is" "it" "ja" "ka" "ko" "lt" "mk" "ms" "my" "nb-NO" "nl" "pl"
|
||||
"pt-BR" "ro" "ru" "sq" "sv-SE" "th" "tr" "uk" "vi" "zh-CN" "zh-TW"))
|
||||
|
||||
;; See tor-browser-build/projects/translation/config.
|
||||
(define translation-base-browser
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.torproject.org/tpo/translation.git")
|
||||
(commit "5490489a8d356a44d792300b4dfddba792d10f2e")))
|
||||
(file-name "translation-base-browser")
|
||||
(sha256
|
||||
(base32
|
||||
"1knxary2zp2705xzzs76gpy37ri69yp32ajpmpxki3z5hp7mla7q"))))
|
||||
|
||||
;; See tor-browser-build/projects/translation/config.
|
||||
(define translation-tor-browser
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.torproject.org/tpo/translation.git")
|
||||
(commit "273592eca488ca3bf535d3789b1130fd1970f09a")))
|
||||
(file-name "translation-tor-browser")
|
||||
(sha256
|
||||
(base32
|
||||
"1mjqk4ljsjlwpqz29dnkhcvj24b75k2waicp0h07sll8qzv3rzz6"))))
|
||||
|
||||
(define torbrowser-assets
|
||||
;; This is a prebuilt Torbrowser from which we take the assets we need.
|
||||
(package
|
||||
|
@ -581,6 +611,8 @@ (define-public torbrowser
|
|||
;; $HOME/.mozbuild).
|
||||
(setenv "MOZBUILD_STATE_PATH"
|
||||
(in-vicinity (getcwd) ".mozbuild"))
|
||||
(setenv "MOZ_CHROME_MULTILOCALE"
|
||||
(string-join '#$%torbrowser-locales))
|
||||
;; Make build reproducible.
|
||||
(setenv "MOZ_BUILD_DATE" #$%moz-build-date)))
|
||||
(add-before 'configure 'mozconfig
|
||||
|
@ -594,6 +626,79 @@ (define-public torbrowser
|
|||
(replace 'configure
|
||||
(lambda _
|
||||
(invoke "./mach" "configure")))
|
||||
;; See tor-browser-build/projects/firefox/build.
|
||||
(add-before 'configure 'copy-firefox-locales
|
||||
(lambda _
|
||||
(let ((l10ncentral ".mozbuild/l10n-central"))
|
||||
(mkdir-p l10ncentral)
|
||||
(for-each
|
||||
(lambda (lang)
|
||||
(copy-recursively (find (lambda (path)
|
||||
(string-suffix? lang path))
|
||||
'#$all-mozilla-locales)
|
||||
(in-vicinity l10ncentral lang)))
|
||||
'#$%torbrowser-locales))))
|
||||
(add-after 'copy-firefox-locales 'copy-basebrowser-locales
|
||||
(lambda _
|
||||
(let ((l10ncentral ".mozbuild/l10n-central"))
|
||||
;; Temporary copy so that we can use ‘mv’ to mimic
|
||||
;; tor-browser-build/projects/firefox/build.
|
||||
(copy-recursively #$translation-base-browser
|
||||
"translation-base-browser")
|
||||
(for-each
|
||||
(lambda (lang)
|
||||
(system
|
||||
(format
|
||||
#f (string-join
|
||||
'("mv"
|
||||
"translation-base-browser/~a/base-browser.ftl"
|
||||
"~a/~a/browser/browser/"))
|
||||
lang l10ncentral lang))
|
||||
(system
|
||||
(format
|
||||
#f (string-join
|
||||
'("mv"
|
||||
"translation-base-browser/~a/*"
|
||||
"~a/~a/browser/chrome/browser/"))
|
||||
lang l10ncentral lang)))
|
||||
'#$%torbrowser-locales))))
|
||||
(add-after 'copy-basebrowser-locales 'copy-torbrowser-locales
|
||||
(lambda _
|
||||
(let ((l10ncentral ".mozbuild/l10n-central"))
|
||||
;; Temporary copy so that we can use ‘mv’ to mimic
|
||||
;; tor-browser-build/projects/firefox/build.
|
||||
(copy-recursively #$translation-tor-browser
|
||||
"translation-tor-browser")
|
||||
(for-each
|
||||
(lambda (lang)
|
||||
(system
|
||||
(format
|
||||
#f (string-join
|
||||
'("mv"
|
||||
"translation-tor-browser/~a/tor-browser.ftl"
|
||||
"~a/~a/browser/browser/"))
|
||||
lang l10ncentral lang))
|
||||
(system
|
||||
(format
|
||||
#f (string-join
|
||||
'("mv"
|
||||
"translation-tor-browser/~a/cryptoSafetyPrompt.properties"
|
||||
"~a/~a/browser/chrome/browser/"))
|
||||
lang l10ncentral lang))
|
||||
(system
|
||||
(format
|
||||
#f (string-join
|
||||
'("mv"
|
||||
"translation-tor-browser/~a"
|
||||
"toolkit/torbutton/chrome/locale/"))
|
||||
lang))
|
||||
(let ((port (open-file "toolkit/torbutton/jar.mn" "a")))
|
||||
(format port "% locale torbutton ~a %locale/~a/~%"
|
||||
lang lang)
|
||||
(format port " locale/~a/ (chrome/locale/~a/*)~%"
|
||||
lang lang)
|
||||
(close port)))
|
||||
'#$%torbrowser-locales))))
|
||||
(add-before 'build 'fix-addons-placeholder
|
||||
(lambda _
|
||||
(substitute*
|
||||
|
@ -607,6 +712,11 @@ (define-public torbrowser
|
|||
"#include ../../../tools/torbrowser/bridges.js" port)
|
||||
(newline port)
|
||||
(close port))))
|
||||
;; See tor-browser-build/projects/firefox/build.
|
||||
(add-after 'build 'build-locales
|
||||
(lambda _
|
||||
(system (string-join '("./mach package-multi-locale --locales"
|
||||
"en-US $MOZ_CHROME_MULTILOCALE")))))
|
||||
(add-after 'install 'deploy-assets
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((lib (in-vicinity #$output "lib/torbrowser"))
|
||||
|
|
Loading…
Reference in a new issue