Install this version:
emerge -a =unity-base/unity-language-pack-7
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 7 | 8 | amd64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
UVER=
UREV=
inherit ubuntu-versionator
DESCRIPTION="Language translations pack for Unity7 user interface"
HOMEPAGE="https://translations.launchpad.net/ubuntu"
S="${WORKDIR}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64"
setvar() {
eval "${1//-/_}=( ${2} ${3} ${4} )"
MY_L10N+=" ${1}"
}
# Only valid IETF language tags that are listed in #
# $(portageq get_repo_path / gentoo)/profiles/desc/l10n.desc are supported: #
#[fnc] [L10N] [pack] [pack-gnome] [ubuntu tag]
setvar af 26.10+20261008 26.10+20261008
setvar am 25.04+20250122 25.04+20250122
setvar an 25.04+20250122 25.04+20250122
setvar ar 26.10+20261008 26.10+20261008
setvar as 26.10+20261008 26.10+20261008
setvar ast 26.10+20261008 26.10+20261008
setvar az 25.04+20250122 25.04+20250122
setvar be 26.10+20261008 26.10+20261008
setvar bg 26.10+20261008 26.10+20261008
setvar bn 26.10+20261008 26.10+20261008
setvar bo 14.10+20140909 14.10+20140909
setvar br 25.04+20250122 25.04+20250122
setvar bs 26.10+20261008 26.10+20261008
setvar ca 26.10+20261008 26.10+20261008
setvar ca-valencia 26.10+20261008 26.10+20261008 ca
setvar ckb 26.10+20261008 26.10+20261008
setvar cs 26.10+20261008 26.10+20261008
setvar cy 25.04+20250122 25.04+20250122
setvar da 26.10+20261008 26.10+20261008
setvar de 26.10+20261008 26.10+20261008
setvar dv 14.04+20150804 14.04+20150804
setvar dz 25.04+20250122 25.04+20250122
setvar el 26.10+20261008 26.10+20261008
setvar en 26.10+20261008 26.10+20261008
setvar eo 26.10+20261008 26.10+20261008
setvar es 26.10+20261008 26.10+20261008
setvar et 26.10+20261008 26.10+20261008
setvar eu 26.10+20261008 26.10+20261008
setvar fa 26.10+20261008 26.10+20261008
setvar ff 14.04+20150804 14.04+20150804
setvar fi 26.10+20261008 26.10+20261008
setvar fil 14.04+20150804 14.04+20150804
setvar fo 14.04+20150804 14.04+20150804
setvar fr 26.10+20261008 26.10+20261008
setvar fur 26.10+20261008 26.10+20261008
setvar fy 14.04+20150804 14.04+20150804
setvar ga 25.04+20250122 25.04+20250122
setvar gd 26.10+20261008 26.10+20261008
setvar gl 26.10+20261008 26.10+20261008
setvar gu 26.10+20261008 26.10+20261008
setvar he 26.10+20261008 26.10+20261008
setvar hi 26.10+20261008 26.10+20261008
setvar hr 26.10+20261008 26.10+20261008
setvar ht 14.04+20150804 14.04+20150804
setvar hu 26.10+20261008 26.10+20261008
setvar hy 14.04+20150804 14.04+20150804
setvar ia 26.10+20261008 26.10+20261008
setvar id 26.10+20261008 26.10+20261008
setvar is 26.10+20261008 26.10+20261008
setvar it 26.10+20261008 26.10+20261008
setvar ja 26.10+20261008 26.10+20261008
setvar ka 26.10+20261008 26.10+20261008
setvar kab 26.10+20261008 26.10+20261008
setvar kk 26.10+20261008 26.10+20261008
setvar km 26.10+20261008 26.10+20261008
setvar kn 26.10+20261008 26.10+20261008
setvar ko 26.10+20261008 26.10+20261008
setvar ks 14.04+20150804 14.04+20150804
setvar ku 25.04+20250122 25.04+20250122
setvar ky 14.04+20150804 14.04+20150804
setvar lb 14.04+20150804 14.04+20150804
setvar lo 14.04+20150804 14.04+20150804
setvar lt 26.10+20261008 26.10+20261008
setvar lv 26.10+20261008 26.10+20261008
setvar mai 18.04+20180423 18.04+20180423
setvar mi 14.04+20150804 14.04+20150804
setvar mk 25.04+20250122 25.04+20250122
setvar ml 26.10+20261008 26.10+20261008
setvar mn 16.04+20160214 16.04+20160214
setvar mr 26.10+20261008 26.10+20261008
setvar ms 26.10+20261008 26.10+20261008
setvar mt 14.04+20150804 14.04+20150804
setvar my 26.10+20261008 26.10+20261008
setvar nb 26.10+20261008 26.10+20261008
setvar ne 26.10+20261008 26.10+20261008
setvar nl 26.10+20261008 26.10+20261008
setvar nn 26.10+20261008 26.10+20261008
setvar nso 14.04+20150804 14.04+20150804
setvar oc 26.10+20261008 26.10+20261008
setvar om 14.04+20150804 14.04+20150804
setvar or 26.10+20261008 26.10+20261008
setvar pa 26.10+20261008 26.10+20261008
setvar pl 26.10+20261008 26.10+20261008
setvar ps 14.04+20150804 14.04+20150804
setvar pt 26.10+20261008 26.10+20261008
setvar pt-BR 26.10+20261008 26.10+20261008 pt
setvar ro 26.10+20261008 26.10+20261008
setvar ru 26.10+20261008 26.10+20261008
setvar rw 14.04+20150804 14.04+20150804
setvar sa 14.04+20150804 14.04+20150804
setvar sc 14.04+20150804 14.04+20150804
setvar sd 14.04+20150804 14.04+20150804
setvar si 25.04+20250122 25.04+20250122
setvar sk 26.10+20261008 26.10+20261008
setvar sl 26.10+20261008 26.10+20261008
setvar so 14.04+20150804 13.04+20130418
setvar sq 26.10+20261008 26.10+20261008
setvar sr 26.10+20261008 26.10+20261008
setvar sr-Latn 26.10+20261008 26.10+20261008 sr
setvar st 14.04+20150804 14.04+20150804
setvar sv 26.10+20261008 26.10+20261008
setvar sw 14.04+20150804 14.04+20150804
setvar szl 25.04+20250122 25.04+20250122
setvar ta 26.10+20261008 26.10+20261008
setvar te 26.10+20261008 26.10+20261008
setvar tg 25.04+20250122 25.04+20250122
setvar th 26.10+20261008 26.10+20261008
setvar ti 14.04+20150804 14.04+20150804
setvar tk 14.04+20150804 14.04+20150804
setvar tl 14.04+20150804 14.04+20150804
setvar tr 26.10+20261008 26.10+20261008
setvar ts 14.04+20150804 14.04+20150804
setvar tt 14.04+20150804 14.04+20150804
setvar ug 26.10+20261008 26.10+20261008
setvar uk 26.10+20261008 26.10+20261008
setvar ur 14.04+20150804 14.04+20150804
setvar uz 16.04+20160214 16.04+20160214
setvar ve 14.04+20150804 14.04+20150804
setvar vi 26.10+20261008 26.10+20261008
setvar xh 25.04+20250122 25.04+20250122
setvar yi 14.04+20150804 14.04+20150804
setvar yo 14.04+20150804 14.04+20150804
setvar zh-CN 26.10+20261008 26.10+20261008 zh-hans
setvar zh-TW 26.10+20261008 26.10+20261008 zh-hant
setvar zu 14.04+20150804 14.04+20150804
# Separate the columns with spaces only (no tabs) #
# Add a new line and launch 'gentoo-unity-ver -u' #
#setvar xy none none
UURL="${UURL%/*}"; unset SRC_URI
for flag in ${MY_L10N}; do
flag=${flag/-/_}
eval "tag=\${$flag[2]}"
[[ -z ${tag} ]] && tag=${flag}
eval "ver=\${$flag[0]}"
eval "ver_gnome=\${$flag[1]}"
[[ ${ver//[!0-9]} -lt 161000000000 ]] && compress="gz" || compress="xz"
flag=${flag/_/-}
if [[ ${flag} == "en" ]]; then
SRC_URI+="${UURL}/language-pack-${tag}-base_${ver}.tar.${compress}
${UURL}/language-pack-gnome-${tag}-base_${ver_gnome}.tar.${compress} "
else
IUSE+=" l10n_${flag}"
SRC_URI+="l10n_${flag}? (
${UURL}/language-pack-${tag}-base_${ver}.tar.${compress}
${UURL}/language-pack-gnome-${tag}-base_${ver_gnome}.tar.${compress} ) "
fi
done
RESTRICT="test"
BDEPEND="sys-devel/gettext"
src_install() {
# sharing panel msgids
local -a sh_msgids=(
"No networks selected for sharing"
"service is disabled"
"service is enabled"
"service is active"
"Choose a Folder"
"File Sharing allows you to share your Public folder with others on your "
"When remote login is enabled, remote users can connect using the Secure "
"Screen sharing allows remote users to view or control your screen by "
"Copy"
"Sharing"
"_Computer Name"
"_File Sharing"
"_Screen Sharing"
"_Media Sharing"
"_Remote Login"
"Some services are disabled because of no network access."
"File Sharing"
"_Require Password"
"Remote Login"
"Screen Sharing"
"_Allow connections to control the screen"
"_Password:"
"_Show Password"
"Access Options"
"_New connections must ask for access"
"_Require a password"
"Media Sharing"
"Share music, photos and videos over the network."
"Folders"
"Control what you want to share with others"
"share;sharing;ssh;host;name;remote;desktop;media;audio;video;pictures;photos;"
"Networks"
"Enable or disable remote login"
"Authentication is required to enable or disable remote login"
)
# network panel msgids
local -a net_msgids=(
"802.1x _Security"
"Security"
"Preserve"
"Permanent"
"Random"
"Stable"
"The MAC address entered here will be used as hardware address for the "
"Profile %d"
"WPA3"
"Enhanced Open"
"WPA2"
"Enterprise"
"%d Mb/s (%1.1f GHz)"
"2.4 GHz / 5 GHz"
"2.4 GHz"
"5 GHz"
"None"
"Weak"
"Ok"
"Good"
"Excellent"
"Forget Connection"
"Remove Connection Profile"
"Remove VPN"
"Details"
"automatic"
"Identity"
"Delete Address"
"Delete Route"
"IPv4"
"IPv6"
"None"
"WEP 40/128-bit Key (Hex or ASCII)"
"WEP 128-bit Passphrase"
"LEAP"
"Dynamic WEP (802.1x)"
"WPA & WPA2 Personal"
"WPA & WPA2 Enterprise"
"WPA3 Personal"
"Signal Strength"
"Link speed"
"Supported Frequencies"
"Last Used"
"Connect _automatically"
"Make available to _other users"
"_Metered connection: has data limits or can incur charges"
"Software updates and other large downloads will not be started automatically."
"_Name"
"_MAC Address"
"M_TU"
"_Cloned Address"
"bytes"
"IPv_4 Method"
"Automatic (DHCP)"
"Link-Local Only"
"Disable"
"Shared to other computers"
"Addresses"
"Netmask"
"Gateway"
"Automatic DNS"
"Separate IP addresses with commas"
"Routes"
"Automatic Routes"
"Metric"
"Use this connection _only for resources on its network"
"IPv_6 Method"
"Automatic, DHCP only"
"Prefix"
"Unable to open connection editor"
"New Profile"
"Import from file…"
"Add VPN"
"S_ecurity"
"Cannot import VPN connection"
"The file “%s” could not be read or does not contain recognized VPN "
"Select file to import"
"A file named “%s” already exists."
"_Replace"
"Do you want to replace %s with the VPN connection you are saving?"
"Cannot export VPN connection"
"The VPN connection “%s” could not be exported to %s.\n"
"Export VPN connection"
"(Error: unable to load VPN connection editor)"
"_SSID"
"_BSSID"
"undefined error in 802.1X security (wpa-eap)"
"no file selected"
"unspecified error validating eap-method file"
"DER, PEM, or PKCS#12 private keys (*.der, *.pem, *.p12, *.key)"
"DER or PEM certificates (*.der, *.pem, *.crt, *.cer)"
"missing EAP-FAST PAC file"
"Choose a PAC file"
"PAC files (*.pac)"
"GTC"
"MSCHAPv2"
"Anonymous"
"Authenticated"
"Both"
"Anony_mous identity"
"PAC _file"
"_Inner authentication"
"Allow automatic PAC pro_visioning"
"missing EAP-LEAP username"
"missing EAP-LEAP password"
"Sho_w password"
"invalid EAP-PEAP CA certificate: %s"
"invalid EAP-PEAP CA certificate: no certificate specified"
"Choose a Certificate Authority certificate"
"MD5"
"Version 0"
"Version 1"
"C_A certificate"
"No CA certificate is _required"
"PEAP _version"
"missing EAP username"
"missing EAP password"
"missing EAP-TLS identity"
"invalid EAP-TLS CA certificate: %s"
"invalid EAP-TLS CA certificate: no certificate specified"
"invalid EAP-TLS private-key: %s"
"invalid EAP-TLS user-certificate: %s"
"Unencrypted private keys are insecure"
"The selected private key does not appear to be protected by a password. This "
"Choose your personal certificate"
"Choose your private key"
"I_dentity"
"_User certificate"
"Private _key"
"_Private key password"
"invalid EAP-TTLS CA certificate: %s"
"invalid EAP-TTLS CA certificate: no certificate specified"
"PAP"
"MSCHAP"
"MSCHAPv2 (no EAP)"
"CHAP"
"Unknown error validating 802.1X security"
"TLS"
"PWD"
"FAST"
"Tunneled TLS"
"Protected EAP (PEAP)"
"Au_thentication"
"missing leap-username"
"missing leap-password"
"Wi-Fi password is missing."
"_Type"
"missing wep-key"
"invalid wep-key: key with a length of %zu must contain only hex-digits"
"invalid wep-key: key with a length of %zu must contain only ascii characters"
"invalid wep-key: wrong key length %zu. A key must be either of length 5/13 "
"invalid wep-key: passphrase must be non-empty"
"invalid wep-key: passphrase must be shorter than 64 characters"
"1 (Default)"
"Open System"
"Shared Key"
"_Key"
"Sho_w key"
"WEP inde_x"
"invalid wpa-psk: invalid key-length %zu. Must be [8,63] bytes or 64 hex "
"invalid wpa-psk: cannot interpret key with 64 bytes as hex"
)
# langselector panel msgids
local -a ls1_msgids=(
"Login _Screen"
"_Language"
"_Formats"
"Login settings are used by all users when logging into the system"
"Your session needs to be restarted for changes to take effect"
"Restart Now"
"Formats"
"_Done"
"_Cancel"
"Preview"
"Dates"
"Times"
"Dates & Times"
"Numbers"
"Measurement"
"Paper"
"measurement format"
"More…"
"No languages found"
"No regions found"
)
local -a ls2_msgids=(
"Language Support"
"Configure multiple and native language support on your system"
)
local \
pofile msgid x \
u_po="unity.po" \
ul_po="unity.legacy" \
ucc_po="unity-control-center.po" \
uccl_po="unity-control-center.legacy" \
gccl_po="gnome-control-center-2.0.legacy" \
ls_po="language-selector.po" \
is_po="indicator-session.po" \
uhl_po="unity-help.legacy" \
newline=$'\n'
# Remove all translations except those we need
find "${S}" -type f \
! -name 'indicator-*' \
! -name ${ls_po} \
! -name 'libdbusmenu.po' \
! -name 'ubuntu-help.po' \
! -name 'unity*' \
! -name changelog \
! -name copyright \
-delete || die
find "${S}" -mindepth 1 -type d -empty -delete || die
unpack_translations() {
unpack "${FILESDIR}"/"$1".tar.xz 1>/dev/null
for x in "${S}"/language-pack-gnome-*-base/data/*; do
cp "${S}"/po/"${x##*data/}".po "${x}"/LC_MESSAGES/"$2" 2>/dev/null
done
rm -r "${S}"/po 2>/dev/null
}
process_msgids() {
local src pofile
src="$1"; shift
pofile="$1"; shift
if [[ -e ${src} ]] && [[ -e ${pofile} ]]; then
for msgid in "$@"; do
if ! grep -Fqx -e "msgid \"${msgid}\"" -e "msgctxt \"${msgid}\"" "${pofile}"; then
msgid="$(M="\"${msgid}\"" awk 'BEGIN { m = ENVIRON["M"] } { line = $0; sub(/^(msgid|msgctxt)[ \t]+/, "", line) } line == m { p = 1 } p { print } /^$/ { p = 0 }' "${src}" 2>/dev/null)"
case ${msgid:0:1} in
m)
echo "${msgid}" >> "${pofile}"
;;
\")
_progress_indicator
echo "msgid \"\"${newline}${msgid}" >> "${pofile}"
;;
esac
fi
done
msguniq --use-first -o "${pofile}" "${pofile}" 2>/dev/null
rm "${src}" 2>/dev/null
fi
}
merge_translations() {
if [[ -f $1 ]]; then
msgcat --use-first -o "$2" "$2" "$1" 2>/dev/null
rm "$1"
fi
}
unpack_translations "activity-log-manager-translations-artful" "activity-log-manager.po"
unpack_translations "session-shortcuts-translations-artful" "session-shortcuts.po"
unpack_translations "unity-translations-kinetic" "${ul_po}"
unpack_translations "unity-control-center-translations-kinetic" "${uccl_po}"
unpack_translations "gnome-control-center-2.0-translations-jammy" "${gccl_po}"
unpack_translations "cinnamon-session-translations-151017" "unity-session-properties.po"
unpack_translations "indicator-appearance-translations-261017" "indicator-appearance.po"
unpack_translations "indicator-notifications-translations-261017" "indicator-notifications.po"
unpack_translations "mate-screenshot-translations-focal" "mate-screenshot.po" # mate-screenshot quicklist (ehooks/mate-extra/mate-utils)
unpack_translations "unity-help-translations-261017" "${uhl_po}"
_progress_counter=0
_progress_indicator() {
local -a arr=( "|" "/" "-" "\\" )
[[ ${_progress_counter} -eq 4 ]] && _progress_counter=0
printf "\b\b %s" "${arr[${_progress_counter}]}"
_progress_counter=$((_progress_counter + 1))
}
printf "%s " "Processing translation files"
_progress_indicator
ls1_msgids+=("${sh_msgids[@]}" "${net_msgids[@]}")
for pofile in $( \
find "${S}" -type f \
-name "*.po" \
! -name "${ls_po}" \
); do
if [[ ${pofile##*/} == ${ucc_po} ]]; then
# Merge legacy translations
x="${pofile/${ucc_po}/${uccl_po}}"
merge_translations "${x}" "${pofile}"
# Add translations for langselector, sharing panel and network panel
sed -i -e "/\"Sharing\"/,+1 d" "${pofile}" || die # remove old identical msgid
process_msgids "${pofile/${ucc_po}/${gccl_po}}" "${pofile}" "${ls1_msgids[@]}"
# Add translations for langselector panel
x=${pofile/${ucc_po}/${ls_po}}
x=${x/gnome-}
process_msgids "${x}" "${pofile}" "${ls2_msgids[@]}"
fi
# Add translations for Unity help desktop launcher
if [[ ${pofile##*/} == ${is_po} ]]; then
merge_translations "${pofile/${is_po}/${uhl_po}}" "${pofile}"
fi
# Process translations for Unity
if [[ ${pofile##*/} == ${u_po} ]]; then
# Merge legacy translations
x="${pofile/${u_po}/${ul_po}}"
merge_translations "${x}" "${pofile}"
# Rename Ubuntu Desktop
sed -i -e "s/Ubuntu Desktop/Gentoo Unity⁷ Desktop/" -e "/Unity⁷/{n;s/Ubuntu/Gentoo Unity⁷/;}" "${pofile}" || die
fi
msgfmt -o "${pofile%.po}.mo" "${pofile}"
rm "${pofile}" 2>/dev/null
done
# Clean up the leftovers
find "${S}" -type f \
\( -name "*.po" \
-o -name "*.legacy" \) \
-delete || die
find "${S}" -mindepth 1 -type d -empty -delete || die
# LC_MESSAGES
insinto /usr/share/locale
doins -r "${S}"/language-pack-*-base/data/*
# Documentation: install the Ubuntu changelog and copyright files as in ubuntu-versionator.eclass.
(
local pack y
for pack in "${S}"/language-pack-*-base; do
_progress_indicator
docinto "${pack##*/}"
for y in changelog copyright; do
[[ -s ${pack}/debian/${y} ]] && newdoc "${pack}/debian/${y}" "debian.${y}"
done
done
)
printf "\b\b%s\n" "... done!"
}
Manage flags for this package:
euse -i <flag> -p unity-base/unity-language-pack |
euse -E <flag> -p unity-base/unity-language-pack |
euse -D <flag> -p unity-base/unity-language-pack