[merge] with upstream

This commit is contained in:
Philip Müller 2019-01-09 18:33:53 +01:00
commit fc76d1560f
61 changed files with 4605 additions and 949 deletions

26
CHANGES
View File

@ -3,7 +3,7 @@ contributors are listed. Note that Calamares does not have a historical
changelog -- this log starts with version 3.2.0. The release notes on the
website will have to do for older versions.
# 3.2.3 (unreleased) #
# 3.2.4 (unreleased) #
This release contains contributions from (alphabetically by first name):
- Alf Gaida
@ -45,6 +45,30 @@ This release contains contributions from (alphabetically by first name):
for all operations, not just during install (keep in mind that
these run as three separate shells, though).
# 3.2.3 (2019-01-09) #
This release contains contributions from (alphabetically by first name):
- aliveafter1000
## Core ##
There are no core changes in this release.
## Modules ##
* *partition* Fixed bug where, during detection of existing systems, the
existing system partitions may be mounted and then files deleted.
This is a **limited** version of the patch from aliveafter1000
that will be in 3.2.4, which tries harder to mount filesystems
read-only and unmodifiable.
* *locale* It was possible to set the installer and system language
(e.g. to German) while the global storage value for *locale*
remained set to English. Then no localization packages are installed
(see feature `${LOCALE}` in `packages.conf`). Reported downstream
in Netrunner.
# 3.2.2 (2018-09-04) #
This release contains contributions from (alphabetically by first name):

View File

@ -46,6 +46,7 @@ option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." ON )
option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
### USE_*
#
# By convention, when there are multiple modules that implement similar
@ -74,9 +75,10 @@ set( CALAMARES_DESCRIPTION_SUMMARY
set( CALAMARES_VERSION_MAJOR 3 )
set( CALAMARES_VERSION_MINOR 2 )
set( CALAMARES_VERSION_PATCH 2.6 )
set( CALAMARES_VERSION_PATCH 3 )
set( CALAMARES_VERSION_RC 0 )
### Transifex (languages) info
#
# complete = 100% translated,
@ -101,17 +103,17 @@ set( CALAMARES_VERSION_RC 0 )
# checks for new languages and misspelled ones are done (that is,
# copy these four lines to four backup lines, add "p", and then update
# the original four lines with the current translations).
set( _tx_complete ca zh_TW hr cs_CZ da et fr id it_IT lt pl pt_PT es_MX tr_TR )
set( _tx_good sq de pt_BR zh_CN ja ro es sk )
set( _tx_ok hu ru he nl bg uk ast is ko ar sv el gl en_GB
th fi_FI hi eu nb sr sl sr@latin mr es_PR kn kk be )
set( _tx_bad fr_CH gu lo fa ur uz eo )
set( _tx_complete zh_TW tr_TR sk pt_PT pt_BR pl lt ja id hr gl fr
et de da cs_CZ ca )
set( _tx_good es sq es_MX zh_CN it_IT he en_GB ru ro hi bg hu )
set( _tx_ok uk nl ast ko is ar sv el th fi_FI eu sr nb sl
sr@latin mr es_PR )
set( _tx_bad eo kk kn uz ur mk lo gu fr_CH fa be )
### Required versions
#
# See DEPENDENCIES section below.
set( QT_VERSION 5.7.0 )
set( QT_VERSION 5.10.0 )
set( YAMLCPP_VERSION 0.5.1 )
set( ECM_VERSION 5.18 )
set( PYTHONLIBS_VERSION 3.3 )
@ -142,6 +144,26 @@ set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_C_STANDARD 99 )
set( CMAKE_C_STANDARD_REQUIRED ON )
# Debugging flags
#
# Possible debugging flags are:
# - DEBUG_TIMEZONES draws latitude and longitude lines on the timezone
# widget and enables chatty debug logging, for dealing with the timezone
# location database.
# - DEBUG_FILESYSTEMS does extra logging and checking when looking at
# partition configuration. Lists known KPMCore FS types.
#
# The flags listed here are enabled in Debug builds. By default, none
# are **actually** listed, because they're for such specific scenarios.
set( _enable_debug_flags
# DEBUG_TIMEZONES
# DEBUG_FILESYSTEMS
)
# Add those flags to the CXX flags in a suitable format.
foreach( _edf ${_enable_debug_flags} )
string( APPEND CMAKE_CXX_FLAGS_DEBUG " -D${_edf}" )
endforeach()
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
message( STATUS "Found Clang ${CMAKE_CXX_COMPILER_VERSION}, setting up Clang-specific compiler flags." )
@ -175,7 +197,7 @@ if( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
set( SUPPRESS_3RDPARTY_WARNINGS "-Wno-everything" )
set( SUPPRESS_BOOST_WARNINGS " -Wno-zero-as-null-pointer-constant -Wno-disabled-macro-expansion" )
set( CMAKE_CXX_FLAGS_DEBUG "-g" )
set( CMAKE_CXX_FLAGS_DEBUG "-g ${CMAKE_CXX_FLAGS_DEBUG}" )
set( CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG" )
set( CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g" )
@ -294,12 +316,14 @@ endif()
#
set( prev_tx ${p_tx_complete} ${p_tx_good} ${p_tx_ok} ${p_tx_bad} )
set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_bad} )
set( tx_errors OFF )
if ( prev_tx )
# Gone in new list
foreach( l ${prev_tx} )
list( FIND curr_tx ${l} p_l )
if( p_l EQUAL -1 )
message(WARNING "Language ${l} was present in previous translations and is now absent.")
set( tx_errors ON )
endif()
endforeach()
@ -308,10 +332,12 @@ if ( prev_tx )
list( FIND prev_tx ${l} p_l )
if( p_l EQUAL -1 )
message(WARNING "Language ${l} is new.")
set( tx_errors ON )
endif()
set( p_l "lang/calamares_${l}.ts" )
if( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${p_l} )
message(WARNING "Language ${l} has no .ts file yet.")
set( tx_errors ON )
endif()
endforeach()
@ -320,6 +346,9 @@ if ( prev_tx )
endif()
unset( prev_tx )
unset( curr_tx )
if( tx_errors )
message( FATAL_ERROR "Translation warnings, see above." )
endif()
set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} )
list( SORT CALAMARES_TRANSLATION_LANGUAGES )

View File

@ -13,169 +13,179 @@ StartupNotify=true
Categories=Qt;System;
X-AppStream-Ignore=true
Name[ar]=نظام التثبيت
Comment[be]=Calamares усталёўшчык сістэмы
Icon[be]=calamares
Name[ar]=تثبيت النظام
Icon[ar]=كالامارس
GenericName[ar]=مثبت النظام
Comment[ar]=كالامارس - مثبت النظام
Name[be]=Усталяваць сістэму
Icon[be]=calamares
GenericName[be]=Усталёўшчык сістэмы
Comment[bg]=Calamares Системен Инсталатор
Icon[bg]=calamares
Comment[be]=Calamares усталёўшчык сістэмы
Name[bg]=Инсталирай системата
Icon[bg]=calamares
GenericName[bg]=Системен Инсталатор
Comment[ca]=Calamares Instal·lador de sistema
Icon[ca]=calamares
Comment[bg]=Calamares Системен Инсталатор
Name[ca]=Instal·la el sistema
Icon[ca]=calamares
GenericName[ca]=Instal·lador de sistema
Comment[da]=Calamares Systeminstallationsprogram
Icon[da]=calamares
Comment[ca]=Calamares Instal·lador de sistema
Name[da]=Installér system
Icon[da]=calamares
GenericName[da]=Systeminstallationsprogram
Comment[de]=Calamares - Installation des Betriebssystems
Icon[de]=calamares
Comment[da]=Calamares Systeminstallationsprogram
Name[de]=System installieren
Icon[de]=calamares
GenericName[de]=Installation des Betriebssystems
Comment[el]=Calamares Εγκατάσταση συστήματος
Icon[el]=calamares
Comment[de]=Calamares - Installation des Betriebssystems
Name[el]=Εγκατάσταση συστήματος
Icon[el]=calamares
GenericName[el]=Εγκατάσταση συστήματος
Comment[en_GB]=Calamares System Installer
Icon[en_GB]=calamares
Comment[el]=Calamares Εγκατάσταση συστήματος
Name[en_GB]=Install System
Icon[en_GB]=calamares
GenericName[en_GB]=System Installer
Comment[es]=Calamares Instalador del Sistema
Icon[es]=calamares
Comment[en_GB]=Calamares System Installer
Name[es]=Instalar Sistema
Icon[es]=calamares
GenericName[es]=Instalador del Sistema
Comment[et]=Calamares süsteemipaigaldaja
Icon[et]=calamares
Comment[es]=Calamares Instalador del Sistema
Name[et]=Paigalda süsteem
Icon[et]=calamares
GenericName[et]=Süsteemipaigaldaja
Comment[et]=Calamares süsteemipaigaldaja
Name[eu]=Sistema instalatu
Icon[eu]=calamares
GenericName[eu]=Sistema instalatzailea
Comment[eu]=Calamares - sistema instalatzailea
Name[es_PR]=Instalar el sistema
Comment[fr]=Calamares - Installateur système
Icon[fr]=calamares
Name[fr]=Installer le système
Icon[fr]=calamares
GenericName[fr]=Installateur système
Comment[gl]=Calamares Instalador de sistemas
Icon[gl]=calamares
Comment[fr]=Calamares - Installateur système
Name[gl]=Instalación do Sistema
Icon[gl]=calamares
GenericName[gl]=Instalador de sistemas
Comment[he]=Calamares - אשף התקנה
Icon[he]=calamares
Comment[gl]=Calamares Instalador de sistemas
Name[he]=התקנת מערכת
Icon[he]=calamares
GenericName[he]=אשף התקנה
Comment[hi]=Calamares ि
Icon[hi]=calamares
Comment[he]=Calamares - אשף התקנה
Name[hi]=ि
Icon[hi]=calamares
GenericName[hi]=ि
Comment[hr]=Calamares Instalacija sustava
Icon[hr]=calamares
Comment[hi]=Calamares ि
Name[hr]=Instaliraj sustav
Icon[hr]=calamares
GenericName[hr]=Instalacija sustava
Comment[hu]=Calamares Rendszertelepítő
Icon[hu]=calamares
Comment[hr]=Calamares Instalacija sustava
Name[hu]=Rendszer telepítése
Icon[hu]=calamares
GenericName[hu]=Rendszertelepítő
Comment[id]=Calamares Pemasang Sistem
Icon[id]=calamares
Comment[hu]=Calamares Rendszertelepítő
Name[id]=Instal Sistem
Icon[id]=calamares
GenericName[id]=Pemasang
Comment[is]=Calamares Kerfis uppsetning
Icon[is]=calamares
Comment[id]=Calamares Pemasang Sistem
Name[is]=Setja upp kerfið
Icon[is]=calamares
GenericName[is]=Kerfis uppsetning
Comment[cs_CZ]=Calamares instalátor operačních systémů
Icon[cs_CZ]=calamares
Comment[is]=Calamares Kerfis uppsetning
Name[cs_CZ]=Nainstalovat
Icon[cs_CZ]=calamares
GenericName[cs_CZ]=Instalátor systému
Comment[ja]=Calamares
Icon[ja]=calamares
Comment[cs_CZ]=Calamares instalátor operačních systémů
Name[ja]=
Icon[ja]=calamares
GenericName[ja]=
Comment[ko]=
Icon[ko]=
Comment[ja]=Calamares
Name[ko]=
Icon[ko]=
GenericName[ko]=
Comment[lt]=Calamares Sistemos diegimo programa
Icon[lt]=calamares
Comment[ko]=
Name[lt]=Įdiegti Sistemą
Icon[lt]=calamares
GenericName[lt]=Sistemos diegimas į kompiuterį
Comment[it_IT]=Calamares Programma d'installazione del sistema
Icon[it_IT]=calamares
Comment[lt]=Calamares Sistemos diegimo programa
Name[it_IT]=Installa il sistema
Icon[it_IT]=calamares
GenericName[it_IT]=Programma d'installazione del sistema
Comment[nb]=Calamares-systeminstallatør
Icon[nb]=calamares
Comment[it_IT]=Calamares Programma d'installazione del sistema
Name[mk]=Инсталирај го системот
Icon[mk]=calamares
GenericName[mk]=Системен Инсталер
Comment[mk]=Calamares - Системен Инсталер
Name[nb]=Installer System
Icon[nb]=calamares
GenericName[nb]=Systeminstallatør
Comment[nl]=Calamares Installatieprogramma
Icon[nl]=calamares
Comment[nb]=Calamares-systeminstallatør
Name[nl]=Installeer systeem
Icon[nl]=calamares
GenericName[nl]=Installatieprogramma
Comment[pl]=Calamares Instalator systemu
Icon[pl]=calamares
Comment[nl]=Calamares Installatieprogramma
Name[pl]=Zainstaluj system
Icon[pl]=calamares
GenericName[pl]=Instalator systemu
Comment[pt_BR]=Calamares Instalador de Sistema
Icon[pt_BR]=calamares
Comment[pl]=Calamares Instalator systemu
Name[pt_BR]=Sistema de Instalação
Icon[pt_BR]=calamares
GenericName[pt_BR]=Instalador de Sistema
Comment[ro]=Calamares Instalator de sistem
Icon[ro]=calamares
Comment[pt_BR]=Calamares Instalador de Sistema
Name[ro]=Instalează sistemul
Icon[ro]=calamares
GenericName[ro]=Instalator de sistem
Comment[ru]=Calamares - Установщик системы
Icon[ru]=calamares
Comment[ro]=Calamares Instalator de sistem
Name[ru]=Установить систему
Icon[ru]=calamares
GenericName[ru]=Установщик системы
Comment[sk]=Calamares Inštalátor systému
Icon[sk]=calamares
Comment[ru]=Calamares - Установщик системы
Name[sk]=Inštalovať systém
Icon[sk]=calamares
GenericName[sk]=Inštalátor systému
Comment[sk]=Calamares Inštalátor systému
Name[sl]=Namesti sistem
Comment[sq]=Calamares Instalues Sistemi
Icon[sq]=calamares
Name[sq]=Instalo Sistemin
Icon[sq]=calamares
GenericName[sq]=Instalues Sistemi
Comment[fi_FI]=Calamares Järjestelmän Asentaja
Icon[fi_FI]=calamares
Comment[sq]=Calamares Instalues Sistemi
Name[fi_FI]=Asenna Järjestelmä
Icon[fi_FI]=calamares
GenericName[fi_FI]=Järjestelmän Asennusohjelma
Comment[fi_FI]=Calamares Järjestelmän Asentaja
Name[sr@latin]=Instaliraj sistem
Name[sr]=Инсталирај систем
Comment[sv]=Calamares Systeminstallerare
Icon[sv]=calamares
Name[sv]=Installera system
Icon[sv]=calamares
GenericName[sv]=Systeminstallerare
Comment[sv]=Calamares Systeminstallerare
Name[th]=
Comment[uk]=Calamares - Встановлювач системи
Name[uk]=Встановити Систему
GenericName[uk]=Встановлювач системи
Comment[zh_CN]=Calamares
Icon[zh_CN]=calamares
Comment[uk]=Calamares - Встановлювач системи
Name[zh_CN]=
Icon[zh_CN]=calamares
GenericName[zh_CN]=
Comment[zh_TW]=Calamares
Icon[zh_TW]=calamares
Comment[zh_CN]=Calamares
Name[zh_TW]=
Icon[zh_TW]=calamares
GenericName[zh_TW]=
Comment[ast]=Calamares Instalador del sistema
Icon[ast]=calamares
Comment[zh_TW]=Calamares
Name[ast]=Instalar sistema
Icon[ast]=calamares
GenericName[ast]=Instalador del sistema
Comment[eo]=Calamares Sistema Instalilo
Icon[eo]=calamares
Comment[ast]=Calamares Instalador del sistema
Name[eo]=Instali Sistemo
Icon[eo]=calamares
GenericName[eo]=Sistema Instalilo
Comment[es_MX]=Calamares - Instalador del sistema
Icon[es_MX]=calamares
Comment[eo]=Calamares Sistema Instalilo
Name[es_MX]=Instalar el Sistema
Icon[es_MX]=calamares
GenericName[es_MX]=Instalador del sistema
Comment[pt_PT]=Calamares - Instalador de Sistema
Icon[pt_PT]=calamares
Comment[es_MX]=Calamares - Instalador del sistema
Name[pt_PT]=Instalar Sistema
Icon[pt_PT]=calamares
GenericName[pt_PT]=Instalador de Sistema
Comment[tr_TR]=Calamares Sistem Yükleyici
Icon[tr_TR]=calamares
Comment[pt_PT]=Calamares - Instalador de Sistema
Name[tr_TR]=Sistemi Yükle
Icon[tr_TR]=calamares
GenericName[tr_TR]=Sistem Yükleyici
Comment[tr_TR]=Calamares Sistem Yükleyici

View File

@ -5,6 +5,7 @@
# This file is sourced by travis.sh, and exports the variables
# to the environment.
CMAKE_ARGS="\
-DCMAKE_BUILD_TYPE=Release \
-DWEBVIEW_FORCE_WEBKIT=1 \
-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
-DWITH_PYTHONQT=OFF"

View File

@ -12,23 +12,26 @@ test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; ex
cd $BUILDDIR || exit 1
section() {
echo "###"
echo "### cmake $CMAKE_ARGS $SRCDIR"
echo "### $1"
echo "###"
pwd -P
df -h
}
section "cmake $CMAKE_ARGS $SRCDIR"
cmake $CMAKE_ARGS $SRCDIR || { echo "! CMake failed" ; exit 1 ; }
echo -e "###\n### make\n###"
make -j2 || { make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; }
section "make"
make -j2 || { echo "! Make recheck" ; pwd -P ; df -h ; make -j1 VERBOSE=1 ; echo "! Make failed" ; exit 1 ; }
echo -e "###\n### make install\n###"
section "make install"
install_debugging() {
ls -la $( find "$1" -type f -name '*.so' )
}
echo "# System status"
df -h
echo "# Build results"
install_debugging "$BUILDDIR"
@ -45,10 +48,8 @@ else
result=false
fi
echo "# System status"
df -h
echo "# Install results"
section "Install results"
install_debugging "$DESTDIR"
$result || { echo "! Install failed" ; exit 1 ; } # Result of make install, above

87
ci/txstats.py Normal file
View File

@ -0,0 +1,87 @@
#! /usr/bin/env python
#
# Uses the Transifex API to get a list of enabled languages,
# and outputs CMake settings for inclusion into CMakeLists.txt.
import sys
def get_tx_credentials():
"""
Gets the API token out of the user's .transifexrc (this is supposed
to be secure).
"""
import configparser
import os
txconfig_name = os.path.expanduser("~/.transifexrc")
try:
with open(txconfig_name, "r") as f:
parser = configparser.SafeConfigParser()
parser.readfp(f)
return parser.get("https://www.transifex.com", "password")
except IOError as e:
return None
def output_langs(all_langs, label, filterfunc):
"""
Output (via print) all of the languages in @p all_langs
that satisfy the translation-percentage filter @p filterfunc.
Prints a CMake set() command with the @p label as part
of the variable name.
Performs line-wrapping.
"""
these_langs = [l for s, l in all_langs if filterfunc(s)]
out = " ".join(["set( _tx_%s" % label, " ".join(these_langs), ")"])
width = 68
prefix = ""
while len(out) > width - len(prefix):
chunk = out[:out[:width].rfind(" ")]
print("%s%s" % (prefix, chunk))
out = out[len(chunk)+1:]
prefix = " "
print("%s%s" % (prefix, out))
def get_tx_stats(token):
"""
Does an API request to Transifex with the given API @p token, getting
the translation statistics for the main body of texts. Then prints
out CMake settings to replace the _tx_* variables in CMakeLists.txt
according to standard criteria.
"""
import requests
r = requests.get("https://api.transifex.com/organizations/calamares/projects/calamares/resources/calamares-master/", auth=("api", token))
if r.status_code != 200:
return 1
all_langs = []
j = r.json()
languages = j["stats"]
print("# Total %d languages" % len(languages))
for lang_name in languages:
stats = languages[lang_name]["translated"]["percentage"]
all_langs.append((stats, lang_name))
all_langs.sort(reverse=True)
output_langs(all_langs, "complete", lambda s : s == 1.0)
output_langs(all_langs, "good", lambda s : 1.0 > s >= 0.75)
output_langs(all_langs, "ok", lambda s : 0.75 > s >= 0.05)
output_langs(all_langs, "bad", lambda s : 0.05 > s)
return 0
def main():
cred = get_tx_credentials()
if cred:
return get_tx_stats(cred)
else:
print("! Could not find API token in ~/.transifexrc")
return 1
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@ -18,7 +18,8 @@
#
###
find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Xml )
add_executable(txload txload.cpp)
target_link_libraries(txload Qt5::Xml)
find_package(Qt5 COMPONENTS Xml)
if( Qt5Xml_FOUND )
add_executable(txload txload.cpp)
target_link_libraries(txload Qt5::Xml)
endif()

View File

@ -73,7 +73,7 @@
<message>
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="44"/>
<source>Modules</source>
<translation>الوحدا</translation>
<translation>الوحدات</translation>
</message>
<message>
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="57"/>
@ -2834,7 +2834,7 @@ Output:
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="290"/>
<source>%1 support</source>
<translation>1% الدعم</translation>
<translation>%1 الدعم</translation>
</message>
</context>
<context>

View File

@ -2774,7 +2774,7 @@ Output:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="122"/>
<source>Total Sectors:</source>
<translation type="unfinished"/>
<translation>Общо сектори:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="142"/>

View File

@ -2746,7 +2746,7 @@ Ausgabe:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="56"/>
<source>Physical Extent Size:</source>
<translation type="unfinished"/>
<translation>Größe der Körpergröße:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="66"/>

View File

@ -720,22 +720,22 @@ Saldrá del instalador y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="38"/>
<source>Create new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Crear un nuevo grupo de volúmenes llamado %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="45"/>
<source>Create new volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Crear un nuevo grupo de volúmenes llamado &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="52"/>
<source>Creating new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Creando un nuevo grupo de volúmenes llamado %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="65"/>
<source>The installer failed to create a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>El instalador falló en crear un grupo de volúmenes llamado &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -744,17 +744,17 @@ Saldrá del instalador y se perderán todos los cambios.</translation>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="48"/>
<source>Deactivate volume group named %1.</source>
<translation type="unfinished"/>
<translation>Desactivar grupo de volúmenes llamado %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="41"/>
<source>Deactivate volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Desactivar grupo de volúmenes llamado &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="61"/>
<source>The installer failed to deactivate a volume group named %1.</source>
<translation type="unfinished"/>
<translation>El instalador falló en desactivar el grupo de volúmenes llamado %1.</translation>
</message>
</context>
<context>
@ -823,7 +823,7 @@ Saldrá del instalador y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/core/DeviceModel.cpp" line="89"/>
<source>%1 - (%2)</source>
<translation type="unfinished"/>
<translation>%1-(%2)</translation>
</message>
</context>
<context>
@ -1726,27 +1726,27 @@ Saldrá del instalador y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
<source>New Volume Group</source>
<translation type="unfinished"/>
<translation>Nuevo grupo de volúmenes </translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="139"/>
<source>Resize Volume Group</source>
<translation type="unfinished"/>
<translation>Cambiar el tamaño del grupo de volúmenes</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="146"/>
<source>Deactivate Volume Group</source>
<translation type="unfinished"/>
<translation>Desactivar grupo de volúmenes</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="153"/>
<source>Remove Volume Group</source>
<translation type="unfinished"/>
<translation>Remover grupo de volúmenes</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="180"/>
<source>I&amp;nstall boot loader on:</source>
<translation type="unfinished"/>
<translation>Instalar gestor de arranque en:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="217"/>
@ -2034,12 +2034,12 @@ Salida:
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="48"/>
<source>Remove Volume Group named %1.</source>
<translation type="unfinished"/>
<translation>Remover grupo de volúmenes llamado %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="41"/>
<source>Remove Volume Group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Remover grupo de volúmenes llamado &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="61"/>
@ -2280,12 +2280,12 @@ Salida:
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="37"/>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="55"/>
<source>Resize volume group named %1 from %2 to %3.</source>
<translation type="unfinished"/>
<translation>Cambiar el tamaño del grupo de volúmenes llamado %1 de %2 a %3.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="46"/>
<source>Resize volume group named &lt;strong&gt;%1&lt;/strong&gt; from &lt;strong&gt;%2&lt;/strong&gt; to &lt;strong&gt;%3&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Cambiar el tamaño del grupo de volúmenes llamado &lt;strong&gt;%1&lt;/strong&gt; de &lt;strong&gt;%2&lt;/strong&gt; a &lt;strong&gt;%3&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="70"/>
@ -2747,7 +2747,7 @@ Salida:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="56"/>
<source>Physical Extent Size:</source>
<translation type="unfinished"/>
<translation>Tamaño de sector físico:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="66"/>
@ -2780,7 +2780,7 @@ Salida:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="142"/>
<source>Quantity of LVs:</source>
<translation type="unfinished"/>
<translation>Cantidad de LVs:</translation>
</message>
</context>
<context>

File diff suppressed because it is too large Load Diff

View File

@ -192,17 +192,17 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="179"/>
<source>Calamares Initialization Failed</source>
<translation type="unfinished"/>
<translation>A Calamares előkészítése meghiúsult</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
<source>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</source>
<translation type="unfinished"/>
<translation>A(z) %1 nem telepíthető. A Calamares nem tudta betölteni a konfigurált modulokat. Ez a probléma abból fakad, ahogy a disztribúció a Calamarest használja.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="185"/>
<source>&lt;br/&gt;The following modules could not be loaded:</source>
<translation type="unfinished"/>
<translation>&lt;br/&gt;A következő modulok nem tölthetőek be:</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="277"/>
@ -509,12 +509,12 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
<source>The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined.</source>
<translation type="unfinished"/>
<translation>A parancs a gazdakörnyezetben fut, és ismernie kell a gyökér útvonalát, de nincs rootMountPoint megadva.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="139"/>
<source>The command needs to know the user&apos;s name, but no username is defined.</source>
<translation type="unfinished"/>
<translation>A parancsnak tudnia kell a felhasználónevet, de az nincs megadva.</translation>
</message>
</context>
<context>
@ -522,7 +522,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/contextualprocess/ContextualProcessJob.cpp" line="117"/>
<source>Contextual Processes Job</source>
<translation type="unfinished"/>
<translation>Környezetfüggő folyamatok feladat</translation>
</message>
</context>
<context>
@ -560,7 +560,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="151"/>
<source>LVM LV name</source>
<translation type="unfinished"/>
<translation>LVM LV név</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="188"/>
@ -720,22 +720,22 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="38"/>
<source>Create new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Új kötetcsoport létrehozása: %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="45"/>
<source>Create new volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Új kötetcsoport létrehozása: &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="52"/>
<source>Creating new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Új kötetcsoport létrehozása: %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="65"/>
<source>The installer failed to create a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>A telepítő nem tudta létrehozni a kötetcsoportot: %1.</translation>
</message>
</context>
<context>
@ -744,17 +744,17 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="48"/>
<source>Deactivate volume group named %1.</source>
<translation type="unfinished"/>
<translation>A kötetcsoport deaktiválása: %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="41"/>
<source>Deactivate volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Kötetcsoport deaktiválása: &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="61"/>
<source>The installer failed to deactivate a volume group named %1.</source>
<translation type="unfinished"/>
<translation>A telepítőnek nem sikerült deaktiválnia a kötetcsoportot: %1.</translation>
</message>
</context>
<context>
@ -823,7 +823,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/partition/core/DeviceModel.cpp" line="89"/>
<source>%1 - (%2)</source>
<translation type="unfinished"/>
<translation>%1 (%2)</translation>
</message>
</context>
<context>
@ -986,7 +986,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When this box is checked, your system will restart immediately when you click on &lt;span style=&quot; font-style:italic;&quot;&gt;Done&lt;/span&gt; or close the installer.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"/>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ha ez be van jelölve, akkor a rendszer azonnal újraindul, ha a &lt;span style=&quot; font-style:italic;&quot;&gt;Kész&lt;/span&gt;-re kattint, vagy bezárja a telepítőt.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
@ -1292,232 +1292,232 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="151"/>
<source>Password is too weak</source>
<translation type="unfinished"/>
<translation>A jelszó túl gyenge</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="158"/>
<source>Memory allocation error when setting &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>Memóriafoglalási hiba a(z) %1 beállításakor</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="162"/>
<source>Memory allocation error</source>
<translation type="unfinished"/>
<translation>Memóriafoglalási hiba</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="164"/>
<source>The password is the same as the old one</source>
<translation type="unfinished"/>
<translation>A jelszó ugyanaz, mint a régi</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="166"/>
<source>The password is a palindrome</source>
<translation type="unfinished"/>
<translation>A jelszó egy palindrom</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="168"/>
<source>The password differs with case changes only</source>
<translation type="unfinished"/>
<translation>A jelszó csak kis- és nagybetűben tér el</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="170"/>
<source>The password is too similar to the old one</source>
<translation type="unfinished"/>
<translation>A jelszó túlságosan hasonlít a régire</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="172"/>
<source>The password contains the user name in some form</source>
<translation type="unfinished"/>
<translation>A jelszó tartalmazza felhasználónevet valamilyen formában</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="174"/>
<source>The password contains words from the real name of the user in some form</source>
<translation type="unfinished"/>
<translation>A jelszó tartalmazza a felhasználó valódi nevét valamilyen formában</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
<source>The password contains forbidden words in some form</source>
<translation type="unfinished"/>
<translation>A jelszó tiltott szavakat tartalmaz valamilyen formában</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="179"/>
<source>The password contains less than %1 digits</source>
<translation type="unfinished"/>
<translation>A jelszó kevesebb mint %1 számjegyet tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
<source>The password contains too few digits</source>
<translation type="unfinished"/>
<translation>A jelszó túl kevés számjegyet tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="183"/>
<source>The password contains less than %1 uppercase letters</source>
<translation type="unfinished"/>
<translation>A jelszó kevesebb mint %1 nagybetűt tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
<source>The password contains too few uppercase letters</source>
<translation type="unfinished"/>
<translation>A jelszó túl kevés nagybetűt tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="187"/>
<source>The password contains less than %1 lowercase letters</source>
<translation type="unfinished"/>
<translation>A jelszó kevesebb mint %1 kisbetűt tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
<source>The password contains too few lowercase letters</source>
<translation type="unfinished"/>
<translation>A jelszó túl kevés kisbetűt tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="191"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>A jelszó kevesebb mint %1 nem alfanumerikus karaktert tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
<source>The password contains too few non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>A jelszó túl kevés nem alfanumerikus karaktert tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="195"/>
<source>The password is shorter than %1 characters</source>
<translation type="unfinished"/>
<translation>A jelszó rövidebb mint %1 karakter</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password is too short</source>
<translation type="unfinished"/>
<translation>A jelszó túl rövid</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="198"/>
<source>The password is just rotated old one</source>
<translation type="unfinished"/>
<translation>A jelszó egy újra felhasznált régi jelszó</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="201"/>
<source>The password contains less than %1 character classes</source>
<translation type="unfinished"/>
<translation>A jelszó kevesebb mint %1 karaktert tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
<source>The password does not contain enough character classes</source>
<translation type="unfinished"/>
<translation>A jelszó nem tartalmaz elég karakterosztályt</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation type="unfinished"/>
<translation>A jelszó több mint %1 egyező karaktert tartalmaz egymás után</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
<source>The password contains too many same characters consecutively</source>
<translation type="unfinished"/>
<translation>A jelszó túl sok egyező karaktert tartalmaz egymás után</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>A jelszó több mint %1 karaktert tartalmaz ugyanabból a karakterosztályból egymás után</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>A jelszó túl sok karaktert tartalmaz ugyanabból a karakterosztályból egymás után</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation>A jelszó %1 karakternél hosszabb monoton sorozatot tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation>A jelszó túl hosszú monoton karaktersorozatot tartalmaz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="216"/>
<source>No password supplied</source>
<translation type="unfinished"/>
<translation>Nincs jelszó megadva</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
<source>Cannot obtain random numbers from the RNG device</source>
<translation type="unfinished"/>
<translation>Nem nyerhetőek ki véletlenszámok az RNG eszközből</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
<source>Password generation failed - required entropy too low for settings</source>
<translation type="unfinished"/>
<translation>A jelszó előállítás meghiúsult a szükséges entrópia túl alacsony a beállításokhoz</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="225"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation>A jelszó megbukott a szótárellenőrzésen %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="227"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation>A jelszó megbukott a szótárellenőrzésen</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>Unknown setting - %1</source>
<translation type="unfinished"/>
<translation>Ismeretlen beállítás %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
<source>Unknown setting</source>
<translation type="unfinished"/>
<translation>Ismeretlen beállítás</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Hibás egész érték a beállításnál %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value</source>
<translation type="unfinished"/>
<translation>Hibás egész érték</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>Setting %1 is not of integer type</source>
<translation type="unfinished"/>
<translation>A(z) %1 beállítás nem egész típusú</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="251"/>
<source>Setting is not of integer type</source>
<translation type="unfinished"/>
<translation>A beállítás nem egész típusú</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="255"/>
<source>Setting %1 is not of string type</source>
<translation type="unfinished"/>
<translation>A(z) %1 beállítás nem karakterlánc típusú</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="259"/>
<source>Setting is not of string type</source>
<translation type="unfinished"/>
<translation>A beállítás nem karakterlánc típusú</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="261"/>
<source>Opening the configuration file failed</source>
<translation type="unfinished"/>
<translation>A konfigurációs fájl megnyitása meghiúsult</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
<source>The configuration file is malformed</source>
<translation type="unfinished"/>
<translation>A konfigurációs fájl rosszul formázott</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
<source>Fatal failure</source>
<translation type="unfinished"/>
<translation>Végzetes hiba</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
<source>Unknown error</source>
<translation type="unfinished"/>
<translation>Ismeretlen hiba</translation>
</message>
</context>
<context>
@ -1711,7 +1711,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="107"/>
<source>Cre&amp;ate</source>
<translation type="unfinished"/>
<translation>&amp;Létrehozás</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="114"/>
@ -1726,27 +1726,27 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
<source>New Volume Group</source>
<translation type="unfinished"/>
<translation>Új kötetcsoport</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="139"/>
<source>Resize Volume Group</source>
<translation type="unfinished"/>
<translation>Kötetcsoport átméretezése</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="146"/>
<source>Deactivate Volume Group</source>
<translation type="unfinished"/>
<translation>Kötetcsoport deaktiválása</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="153"/>
<source>Remove Volume Group</source>
<translation type="unfinished"/>
<translation>Kötetcsoport eltávolítása</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="180"/>
<source>I&amp;nstall boot loader on:</source>
<translation type="unfinished"/>
<translation>Rendszerbetöltő &amp;telepítése ide:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="217"/>
@ -1756,12 +1756,12 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="241"/>
<source>Can not create new partition</source>
<translation type="unfinished"/>
<translation>Nem hozható létre új partíció</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="242"/>
<source>The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead.</source>
<translation type="unfinished"/>
<translation>A(z) %1 lemezen lévő partíciós táblában már %2 elsődleges partíció van, és több nem adható hozzá. Helyette távolítson el egy elsődleges partíciót, és adjon hozzá egy kiterjesztett partíciót.</translation>
</message>
</context>
<context>
@ -1867,13 +1867,13 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="41"/>
<source>Plasma Look-and-Feel Job</source>
<translation type="unfinished"/>
<translation>Plasma kinézet feladat</translation>
</message>
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="73"/>
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="74"/>
<source>Could not select KDE Plasma Look-and-Feel package</source>
<translation type="unfinished"/>
<translation>A KDE Plasma kinézeti csomag nem válaszható ki</translation>
</message>
</context>
<context>
@ -1891,7 +1891,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="67"/>
<source>Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel.</source>
<translation type="unfinished"/>
<translation>Válasszon egy kinézetet a KDE Plasma asztali környezethez. Ki is hagyhatja ezt a lépést, és beállíthatja a kinézetet, ha a telepítés elkészült. A kinézetválasztóra kattintva é előnézetet kaphat a kinézetről.</translation>
</message>
</context>
<context>
@ -1899,7 +1899,7 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfViewStep.cpp" line="68"/>
<source>Look-and-Feel</source>
<translation type="unfinished"/>
<translation>Kinézet</translation>
</message>
</context>
<context>
@ -1907,17 +1907,17 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="85"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Fájlok mentése későbbre </translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="123"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Nincsenek fájlok beállítva elmentésre későbbre</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="177"/>
<source>Not all of the configured files could be preserved.</source>
<translation type="unfinished"/>
<translation>Nem az összes beállított fájl örízhető meg.</translation>
</message>
</context>
<context>
@ -1926,14 +1926,17 @@ Telepítés nem folytatható. &lt;a href=&quot;#details&quot;&gt;Részletek...&l
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="271"/>
<source>
There was no output from the command.</source>
<translation type="unfinished"/>
<translation>
A parancsnak nem volt kimenete.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="272"/>
<source>
Output:
</source>
<translation type="unfinished"/>
<translation>
Kimenet:
</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="275"/>
@ -1948,17 +1951,17 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="281"/>
<source>External command failed to start.</source>
<translation type="unfinished"/>
<translation>A külső parancsot nem sikerült elindítani.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="282"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; failed to start.</source>
<translation type="unfinished"/>
<translation>A(z) &lt;i&gt;%1&lt;/i&gt; parancsot nem sikerült elindítani.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="286"/>
<source>Internal error when starting command.</source>
<translation type="unfinished"/>
<translation>Belső hiba a parancs végrehajtásakor.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="287"/>
@ -1973,17 +1976,17 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="291"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; failed to finish in %2 seconds.</source>
<translation type="unfinished"/>
<translation>A(z) &lt;i&gt;%1&lt;/i&gt; parancsot nem sikerült befejezni %2 másodperc alatt.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="297"/>
<source>External command finished with errors.</source>
<translation type="unfinished"/>
<translation>A külső parancs hibával fejeződött be.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="298"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; finished with exit code %2.</source>
<translation type="unfinished"/>
<translation>A(z) &lt;i&gt;%1&lt;/i&gt; parancs hibakóddal lépett ki: %2.</translation>
</message>
</context>
<context>
@ -2031,17 +2034,17 @@ Output:
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="48"/>
<source>Remove Volume Group named %1.</source>
<translation type="unfinished"/>
<translation>A kötetcsoport eltávolítása: %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="41"/>
<source>Remove Volume Group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Kötetcsoport eltávolítása: &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="61"/>
<source>The installer failed to remove a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>A telepítő nem tudta eltávolítani a kötetcsoportot: %1.</translation>
</message>
</context>
<context>
@ -2182,29 +2185,29 @@ Output:
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="130"/>
<source>Resize Filesystem Job</source>
<translation type="unfinished"/>
<translation>Fájlrendszer átméretezési feladat</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="238"/>
<source>Invalid configuration</source>
<translation type="unfinished"/>
<translation>Érvénytelen konfiguráció</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="239"/>
<source>The file-system resize job has an invalid configuration and will not run.</source>
<translation type="unfinished"/>
<translation>A fájlrendszer átméretezési feladat konfigurációja érvénytelen, és nem fog futni.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="253"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="263"/>
<source>KPMCore not Available</source>
<translation type="unfinished"/>
<translation>A KPMCore nem érhető el</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="254"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="264"/>
<source>Calamares cannot start KPMCore for the file-system resize job.</source>
<translation type="unfinished"/>
<translation>A Calamares nem tudja elindítani a KPMCore-t a fájlrendszer átméretezési feladathoz.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="272"/>
@ -2213,39 +2216,39 @@ Output:
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="303"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="320"/>
<source>Resize Failed</source>
<translation type="unfinished"/>
<translation>Az átméretezés meghiúsult</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="273"/>
<source>The filesystem %1 could not be found in this system, and cannot be resized.</source>
<translation type="unfinished"/>
<translation>A(z) %1 fájlrendszer nem található a rendszeren, és nem méretezhető át.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="274"/>
<source>The device %1 could not be found in this system, and cannot be resized.</source>
<translation type="unfinished"/>
<translation>A(z) %1 eszköz nem található a rendszeren, és nem méretezhető át.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="282"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="295"/>
<source>The filesystem %1 cannot be resized.</source>
<translation type="unfinished"/>
<translation>A(z) %1 fájlrendszer nem méretezhető át.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="283"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="296"/>
<source>The device %1 cannot be resized.</source>
<translation type="unfinished"/>
<translation>A(z) %1 eszköz nem méretezhető át.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="304"/>
<source>The filesystem %1 must be resized, but cannot.</source>
<translation type="unfinished"/>
<translation>A(z) %1 fájlrendszert át kell méretezni, de nem lehet.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="305"/>
<source>The device %1 must be resized, but cannot</source>
<translation type="unfinished"/>
<translation>A(z) %1 eszközt át kell méretezni, de nem lehet</translation>
</message>
</context>
<context>
@ -2277,17 +2280,17 @@ Output:
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="37"/>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="55"/>
<source>Resize volume group named %1 from %2 to %3.</source>
<translation type="unfinished"/>
<translation>A(z) %1 kötet átméretezése ekkoráról: %2, ekkorára: %3.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="46"/>
<source>Resize volume group named &lt;strong&gt;%1&lt;/strong&gt; from &lt;strong&gt;%2&lt;/strong&gt; to &lt;strong&gt;%3&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>A(z) &lt;strong&gt;%1&lt;/strong&gt; kötet átméretezése ekkoráról: &lt;strong&gt;%2&lt;/strong&gt;, ekkorára: &lt;strong&gt;%3&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="70"/>
<source>The installer failed to resize a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>A telepítő nem tudta átméretezni a kötetcsoportot: %1.</translation>
</message>
</context>
<context>
@ -2532,7 +2535,7 @@ Output:
<message>
<location filename="../src/modules/shellprocess/ShellProcessJob.cpp" line="51"/>
<source>Shell Processes Job</source>
<translation type="unfinished"/>
<translation>Parancssori folyamatok feladat</translation>
</message>
</context>
<context>
@ -2541,7 +2544,7 @@ Output:
<location filename="../src/qml/calamares/slideshow/SlideCounter.qml" line="36"/>
<source>%L1 / %L2</source>
<extracomment>slide counter, %1 of %2 (numeric)</extracomment>
<translation type="unfinished"/>
<translation>%L1 / %L2</translation>
</message>
</context>
<context>
@ -2725,27 +2728,27 @@ Calamares hiba %1.</translation>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="14"/>
<source>VolumeGroupDialog</source>
<translation type="unfinished"/>
<translation>Kötetcsoport párbeszédablak</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="20"/>
<source>List of Physical Volumes</source>
<translation type="unfinished"/>
<translation>Fizikai kötetek listája</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="30"/>
<source>Volume Group Name:</source>
<translation type="unfinished"/>
<translation>Kötetcsoport neve:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="43"/>
<source>Volume Group Type:</source>
<translation type="unfinished"/>
<translation>Kötetcsoport típusa:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="56"/>
<source>Physical Extent Size:</source>
<translation type="unfinished"/>
<translation>Fizikai kiterjedés mérete:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="66"/>
@ -2755,7 +2758,7 @@ Calamares hiba %1.</translation>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="82"/>
<source>Total Size:</source>
<translation type="unfinished"/>
<translation>Teljes méret:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="92"/>
@ -2763,22 +2766,22 @@ Calamares hiba %1.</translation>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="132"/>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="152"/>
<source>---</source>
<translation type="unfinished"/>
<translation>---</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="102"/>
<source>Used Size:</source>
<translation type="unfinished"/>
<translation>Használt méret:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="122"/>
<source>Total Sectors:</source>
<translation type="unfinished"/>
<translation>Szektorok összesen:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="142"/>
<source>Quantity of LVs:</source>
<translation type="unfinished"/>
<translation>Logkai kötetek száma:</translation>
</message>
</context>
<context>
@ -2831,7 +2834,7 @@ Calamares hiba %1.</translation>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>
<source>&lt;h1&gt;%1&lt;/h1&gt;&lt;br/&gt;&lt;strong&gt;%2&lt;br/&gt;for %3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Copyright 2014-2017 Teo Mrnjavac &amp;lt;teo@kde.org&amp;gt;&lt;br/&gt;Copyright 2017 Adriaan de Groot &amp;lt;groot@kde.org&amp;gt;&lt;br/&gt;Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the &lt;a href=&quot;https://www.transifex.com/calamares/calamares/&quot;&gt;Calamares translators team&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;https://calamares.io/&quot;&gt;Calamares&lt;/a&gt; development is sponsored by &lt;br/&gt;&lt;a href=&quot;http://www.blue-systems.com/&quot;&gt;Blue Systems&lt;/a&gt; - Liberating Software.</source>
<translation type="unfinished"/>
<translation>&lt;h1&gt;%1&lt;/h1&gt;&lt;br/&gt;&lt;strong&gt;%2&lt;br/&gt;for %3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;Copyright 2014-2017 Teo Mrnjavac &amp;lt;teo@kde.org&amp;gt;&lt;br/&gt;Copyright 2017 Adriaan de Groot &amp;lt;groot@kde.org&amp;gt;&lt;br/&gt;Köszönet: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg és a &lt;a href=&quot;https://www.transifex.com/calamares/calamares/&quot;&gt;Calamares fordítócsapat&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;A &lt;a href=&quot;https://calamares.io/&quot;&gt;Calamares&lt;/a&gt; fejlesztését a &lt;br/&gt;&lt;a href=&quot;http://www.blue-systems.com/&quot;&gt;Blue Systems&lt;/a&gt; támogatja.</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="290"/>

View File

@ -9,12 +9,12 @@
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="79"/>
<source>This system was started with an &lt;strong&gt;EFI&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from an EFI environment, this installer must deploy a boot loader application, like &lt;strong&gt;GRUB&lt;/strong&gt; or &lt;strong&gt;systemd-boot&lt;/strong&gt; on an &lt;strong&gt;EFI System Partition&lt;/strong&gt;. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</source>
<translation>Sistem ini telah dimulai dengan lingkungan boot &lt;strong&gt;EFI&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Untuk mengkonfigurasi startup dari lingkungan EFI, pemasang ini seharusnya memaparkan sebuah aplikasi boot loader, seperti &lt;strong&gt;GRUB&lt;/strong&gt; atau &lt;strong&gt;systemd-boot&lt;/strong&gt; pada sebuah &lt;strong&gt;EFI System Partition&lt;/strong&gt;. Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus memilihnya atau menciptakannya pada milikmu.</translation>
<translation>Sistem ini telah dimulai dengan lingkungan boot &lt;strong&gt;EFI&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Untuk mengkonfigurasi startup dari lingkungan EFI, installer ini seharusnya memaparkan sebuah aplikasi boot loader, seperti &lt;strong&gt;GRUB&lt;/strong&gt; atau &lt;strong&gt;systemd-boot&lt;/strong&gt; pada sebuah &lt;strong&gt;EFI System Partition&lt;/strong&gt;. Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus memilihnya atau menciptakannya pada milikmu.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="91"/>
<source>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</source>
<translation>Sistem ini dimulai dengan sebuah lingkungan boot &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Untuk mengkonfigurasi startup dari sebuah lingkungan BIOS, pemasang ini seharusnya memasang sebuah boot loader, seperti &lt;strong&gt;GRUB&lt;/strong&gt;, baik di awal partisi atau pada &lt;strong&gt;Master Boot Record&lt;/strong&gt; di dekat awalan tabel partisi (yang disukai). Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus menyetelnya pada milikmu.</translation>
<translation>Sistem ini dimulai dengan sebuah lingkungan boot &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Untuk mengkonfigurasi startup dari sebuah lingkungan BIOS, installer ini seharusnya memasang sebuah boot loader, seperti &lt;strong&gt;GRUB&lt;/strong&gt;, baik di awal partisi atau pada &lt;strong&gt;Master Boot Record&lt;/strong&gt; di dekat awalan tabel partisi (yang disukai). Ini adalah otomatis, kecuali kalau kamu memilih pemartisian manual, dalam beberapa kasus kamu harus menyetelnya pada milikmu.</translation>
</message>
</context>
<context>
@ -37,7 +37,7 @@
<message>
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="111"/>
<source>Do not install a boot loader</source>
<translation>Jangan pasang boot loader</translation>
<translation>Jangan instal boot loader</translation>
</message>
<message>
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="125"/>
@ -107,7 +107,7 @@
<message>
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="79"/>
<source>Install</source>
<translation>Pasang</translation>
<translation>Instal</translation>
</message>
</context>
<context>
@ -187,7 +187,7 @@
<location filename="../src/libcalamaresui/ViewManager.cpp" line="77"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="289"/>
<source>Cancel installation without changing the system.</source>
<translation>Batal pemasangan tanpa mengubah sistem yang ada.</translation>
<translation>Batalkan instalasi tanpa mengubah sistem yang ada.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="179"/>
@ -197,7 +197,7 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
<source>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</source>
<translation>%1 tidak dapat terpasang. Calamares tidak dapat memuat seluruh modul konfigurasi. Terdapat masalah dengan Calamares karena sedang digunakan oleh distribusi.</translation>
<translation>%1 tidak dapat terinstal. Calamares tidak dapat memuat seluruh modul konfigurasi. Terdapat masalah dengan Calamares karena sedang digunakan oleh distribusi.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="185"/>
@ -207,19 +207,19 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="277"/>
<source>&amp;Install</source>
<translation>&amp;Pasang</translation>
<translation>&amp;Instal</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="325"/>
<source>Cancel installation?</source>
<translation>Batalkan pemasangan?</translation>
<translation>Batalkan instalasi?</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="326"/>
<source>Do you really want to cancel the current install process?
The installer will quit and all changes will be lost.</source>
<translation>Apakah Anda benar-benar ingin membatalkan proses pemasangan ini?
Pemasangan akan ditutup dan semua perubahan akan hilang.</translation>
<translation>Apakah Anda benar-benar ingin membatalkan proses instalasi ini?
Instalasi akan ditutup dan semua perubahan akan hilang.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="331"/>
@ -244,12 +244,12 @@ Pemasangan akan ditutup dan semua perubahan akan hilang.</translation>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="238"/>
<source>The %1 installer is about to make changes to your disk in order to install %2.&lt;br/&gt;&lt;strong&gt;You will not be able to undo these changes.&lt;/strong&gt;</source>
<translation>Pemasang %1 akan membuat perubahan ke disk Anda untuk memasang %2.&lt;br/&gt;&lt;strong&gt;Anda tidak dapat membatalkan perubahan tersebut.&lt;/strong&gt;</translation>
<translation>Installer %1 akan membuat perubahan ke disk Anda untuk memasang %2.&lt;br/&gt;&lt;strong&gt;Anda tidak dapat membatalkan perubahan tersebut.&lt;/strong&gt;</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="243"/>
<source>&amp;Install now</source>
<translation>&amp;Pasang sekarang</translation>
<translation>&amp;Instal sekarang</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="244"/>
@ -264,7 +264,7 @@ Pemasangan akan ditutup dan semua perubahan akan hilang.</translation>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="284"/>
<source>The installation is complete. Close the installer.</source>
<translation>Pemasangan sudah lengkap. Tutup pemasang.</translation>
<translation>Instalasi sudah lengkap. Tutup installer.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="160"/>
@ -274,7 +274,7 @@ Pemasangan akan ditutup dan semua perubahan akan hilang.</translation>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="161"/>
<source>Installation Failed</source>
<translation>Pemasangan Gagal</translation>
<translation>Instalasi Gagal</translation>
</message>
</context>
<context>
@ -305,7 +305,7 @@ Pemasangan akan ditutup dan semua perubahan akan hilang.</translation>
<message>
<location filename="../src/calamares/CalamaresWindow.cpp" line="44"/>
<source>%1 Installer</source>
<translation>Pemasang %1</translation>
<translation>Installer %1</translation>
</message>
<message>
<location filename="../src/calamares/CalamaresWindow.cpp" line="111"/>
@ -319,13 +319,13 @@ Pemasangan akan ditutup dan semua perubahan akan hilang.</translation>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="96"/>
<source>This computer does not satisfy the minimum requirements for installing %1.&lt;br/&gt;Installation cannot continue. &lt;a href=&quot;#details&quot;&gt;Details...&lt;/a&gt;</source>
<translation>Komputer ini tidak memenuhi syarat minimum untuk memasang %1.
Pemasang tidak dapat dilanjutkan. &lt;a href=&quot;</translation>
Installer tidak dapat dilanjutkan. &lt;a href=&quot;</translation>
</message>
<message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="113"/>
<source>This computer does not satisfy some of the recommended requirements for installing %1.&lt;br/&gt;Installation can continue, but some features might be disabled.</source>
<translation>Komputer ini tidak memenuhi beberapa syarat yang dianjurkan untuk memasang %1.
Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</translation>
Instalasi dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</translation>
</message>
<message>
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="151"/>
@ -437,7 +437,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1292"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1316"/>
<source>&lt;strong&gt;Install alongside&lt;/strong&gt;&lt;br/&gt;The installer will shrink a partition to make room for %1.</source>
<translation>&lt;strong&gt;Pasang berdampingan dengan&lt;/strong&gt;&lt;br/&gt;Pemasang akan mengiris sebuah partisi untuk memberi ruang bagi %1.</translation>
<translation>&lt;strong&gt;Instal berdampingan dengan&lt;/strong&gt;&lt;br/&gt;Installer akan mengiris sebuah partisi untuk memberi ruang bagi %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1245"/>
@ -624,7 +624,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="79"/>
<source>The installer failed to create partition on disk &apos;%1&apos;.</source>
<translation>Pemasang gagal untuk membuat partisi di disk &apos;%1&apos;.</translation>
<translation>Installer gagal untuk membuat partisi di disk &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -675,7 +675,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="82"/>
<source>The installer failed to create a partition table on %1.</source>
<translation>Pemasang gagal membuat tabel partisi pada %1.</translation>
<translation>Installer gagal membuat tabel partisi pada %1.</translation>
</message>
</context>
<context>
@ -721,22 +721,22 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="38"/>
<source>Create new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Ciptakan grup volume baru bernama %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="45"/>
<source>Create new volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Ciptakan grup volume baru bernama &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="52"/>
<source>Creating new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Menciptakan grup volume baru bernama %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="65"/>
<source>The installer failed to create a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>Installer gagal menciptakan sebuah grup volume bernama &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -745,17 +745,17 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="48"/>
<source>Deactivate volume group named %1.</source>
<translation type="unfinished"/>
<translation>Nonaktifkan grup volume bernama %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="41"/>
<source>Deactivate volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Nonaktifkan grup volume bernama &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp" line="61"/>
<source>The installer failed to deactivate a volume group named %1.</source>
<translation type="unfinished"/>
<translation>Installer gagal menonaktifkan sebuah grup volume bernama %1.</translation>
</message>
</context>
<context>
@ -778,7 +778,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/DeletePartitionJob.cpp" line="68"/>
<source>The installer failed to delete partition %1.</source>
<translation>Pemasang gagal untuk menghapus partisi %1.</translation>
<translation>Installer gagal untuk menghapus partisi %1.</translation>
</message>
</context>
<context>
@ -786,7 +786,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="150"/>
<source>The type of &lt;strong&gt;partition table&lt;/strong&gt; on the selected storage device.&lt;br&gt;&lt;br&gt;The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.&lt;br&gt;This installer will keep the current partition table unless you explicitly choose otherwise.&lt;br&gt;If unsure, on modern systems GPT is preferred.</source>
<translation>Tipe dari &lt;strong&gt;tabel partisi&lt;/strong&gt; pada perangkat penyimpanan terpilih.&lt;br&gt;&lt;br&gt;Satu-satunya cara untuk mengubah tabel partisi adalah dengan menyetip dan menciptakan ulang tabel partisi dari awal, yang melenyapkan semua data pada perangkat penyimpanan.&lt;br&gt;Pemasang ini akan menjaga tabel partisi saat ini kecuali kamu secara gamblang memilih sebaliknya.&lt;br&gt;Jika tidak yakin, pada sistem GPT modern lebih disukai.</translation>
<translation>Tipe dari &lt;strong&gt;tabel partisi&lt;/strong&gt; pada perangkat penyimpanan terpilih.&lt;br&gt;&lt;br&gt;Satu-satunya cara untuk mengubah tabel partisi adalah dengan menyetip dan menciptakan ulang tabel partisi dari awal, yang melenyapkan semua data pada perangkat penyimpanan.&lt;br&gt;Installer ini akan menjaga tabel partisi saat ini kecuali kamu secara gamblang memilih sebaliknya.&lt;br&gt;Jika tidak yakin, pada sistem GPT modern lebih disukai.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="107"/>
@ -801,7 +801,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="121"/>
<source>This installer &lt;strong&gt;cannot detect a partition table&lt;/strong&gt; on the selected storage device.&lt;br&gt;&lt;br&gt;The device either has no partition table, or the partition table is corrupted or of an unknown type.&lt;br&gt;This installer can create a new partition table for you, either automatically, or through the manual partitioning page.</source>
<translation>Pemasang &lt;strong&gt;tidak bisa mendeteksi tabel partisi apapun&lt;/strong&gt; pada media penyimpanan terpilih.&lt;br&gt;&lt;br&gt;Mungkin media ini tidak memiliki tabel partisi, atau tabel partisi yang ada telah korup atau tipenya tidak dikenal.&lt;br&gt;Pemasang dapat membuatkan partisi baru untuk Anda, baik secara otomatis atau melalui laman pemartisian manual.</translation>
<translation>Installer &lt;strong&gt;tidak bisa mendeteksi tabel partisi apapun&lt;/strong&gt; pada media penyimpanan terpilih.&lt;br&gt;&lt;br&gt;Mungkin media ini tidak memiliki tabel partisi, atau tabel partisi yang ada telah korup atau tipenya tidak dikenal.&lt;br&gt;Installer dapat membuatkan partisi baru untuk Anda, baik secara otomatis atau melalui laman pemartisian manual.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="131"/>
@ -824,7 +824,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/core/DeviceModel.cpp" line="89"/>
<source>%1 - (%2)</source>
<translation type="unfinished"/>
<translation>%1 - (%2)</translation>
</message>
</context>
<context>
@ -949,7 +949,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="156"/>
<source>Install %1 on &lt;strong&gt;new&lt;/strong&gt; %2 system partition.</source>
<translation>Pasang %1 pada partisi sistem %2 &lt;strong&gt;baru&lt;/strong&gt;</translation>
<translation>Instal %1 pada partisi sistem %2 &lt;strong&gt;baru&lt;/strong&gt;</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="160"/>
@ -959,7 +959,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="168"/>
<source>Install %2 on %3 system partition &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation>Pasang %2 pada sistem partisi %3 &lt;strong&gt;%1&lt;/strong&gt;.</translation>
<translation>Instal %2 pada sistem partisi %3 &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="173"/>
@ -969,7 +969,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="185"/>
<source>Install boot loader on &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation>Pasang boot loader di &lt;strong&gt;%1&lt;/strong&gt;.</translation>
<translation>Instal boot loader di &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
@ -987,7 +987,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When this box is checked, your system will restart immediately when you click on &lt;span style=&quot; font-style:italic;&quot;&gt;Done&lt;/span&gt; or close the installer.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>Ketika kotak ini dicentang, sistem kamu akan segera dimulai kembali saat mengklik Selesai atau menutup pemasang.</translation>
<translation>Ketika kotak ini dicentang, sistem kamu akan segera dimulai kembali saat mengklik Selesai atau menutup installer.</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
@ -997,12 +997,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/finished/FinishedPage.cpp" line="51"/>
<source>&lt;h1&gt;All done.&lt;/h1&gt;&lt;br/&gt;%1 has been installed on your computer.&lt;br/&gt;You may now restart into your new system, or continue using the %2 Live environment.</source>
<translation>&lt;h1&gt;Selesai.&lt;/h1&gt;&lt;br&gt;%1 sudah terpasang di komputer Anda.&lt;br/&gt;Anda dapat memulai ulang ke sistem baru atau lanjut menggunakan lingkungan Live %2.</translation>
<translation>&lt;h1&gt;Selesai.&lt;/h1&gt;&lt;br&gt;%1 sudah terinstal di komputer Anda.&lt;br/&gt;Anda dapat memulai ulang ke sistem baru atau lanjut menggunakan lingkungan Live %2.</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.cpp" line="109"/>
<source>&lt;h1&gt;Installation Failed&lt;/h1&gt;&lt;br/&gt;%1 has not been installed on your computer.&lt;br/&gt;The error message was: %2.</source>
<translation>&lt;h1&gt;Pemasangan Gagal&lt;/h1&gt;&lt;br/&gt;%1 tidak bisa dipasang pada komputermu.&lt;br/&gt;Pesan galatnya adalah: %2.</translation>
<translation>&lt;h1&gt;Instalasi Gagal&lt;/h1&gt;&lt;br/&gt;%1 tidak bisa diinstal pada komputermu.&lt;br/&gt;Pesan galatnya adalah: %2.</translation>
</message>
</context>
<context>
@ -1015,12 +1015,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="124"/>
<source>Installation Complete</source>
<translation>Pemasangan Lengkap</translation>
<translation>Instalasi Lengkap</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="125"/>
<source>The installation of %1 is complete.</source>
<translation>Pemasangan %1 telah lengkap.</translation>
<translation>Instalasi %1 telah lengkap.</translation>
</message>
</context>
<context>
@ -1043,7 +1043,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="77"/>
<source>The installer failed to format partition %1 on disk &apos;%2&apos;.</source>
<translation>Pemasang gagal memformat partisi %1 pada disk &apos;%2&apos;.&apos;%2&apos;.</translation>
<translation>Installer gagal memformat partisi %1 pada disk &apos;%2&apos;.&apos;%2&apos;.</translation>
</message>
</context>
<context>
@ -1051,12 +1051,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="53"/>
<source>Konsole not installed</source>
<translation>Konsole tidak terpasang</translation>
<translation>Konsole tidak terinstal</translation>
</message>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="54"/>
<source>Please install KDE Konsole and try again!</source>
<translation>Silahkan pasang KDE Konsole dan ulangi lagi!</translation>
<translation>Silahkan instal KDE Konsole dan ulangi lagi!</translation>
</message>
<message>
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="116"/>
@ -1146,7 +1146,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="130"/>
<source>Please review the End User License Agreements (EULAs) above.&lt;br/&gt;If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead.</source>
<translation>Mohon periksa End User License Agreements(EULA) di atas.&lt;br/&gt;Bila Anda tidak setuju, perangkat lunak proprietary tidak akan dipasang, dan alternatif open source akan dipasang sebagai gantinya </translation>
<translation>Mohon periksa End User License Agreements(EULA) di atas.&lt;br/&gt;Bila Anda tidak setuju, perangkat lunak proprietary tidak akan diinstal, dan alternatif open source akan diinstal sebagai gantinya </translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="160"/>
@ -1262,12 +1262,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="86"/>
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
<translation>Pemasangan Jaringan. (Dinonfungsikan: Tak mampu menarik daftar paket, periksa sambungan jaringanmu)</translation>
<translation>Instalasi Jaringan. (Dinonfungsikan: Tak mampu menarik daftar paket, periksa sambungan jaringanmu)</translation>
</message>
<message>
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="96"/>
<source>Network Installation. (Disabled: Received invalid groups data)</source>
<translation>Pemasangan jaringan. (Menonaktifkan: Penerimaan kelompok data yang tidak sah)</translation>
<translation>Instalasi jaringan. (Menonaktifkan: Penerimaan kelompok data yang tidak sah)</translation>
</message>
</context>
<context>
@ -1566,7 +1566,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/users/page_usersetup.ui" line="200"/>
<source>&lt;small&gt;If more than one person will use this computer, you can set up multiple accounts after installation.&lt;/small&gt;</source>
<translation>&lt;small&gt;Jika lebih dari satu orang akan menggunakan komputer ini, Anda dapat mengatur beberapa akun setelah pemasangan.&lt;/small&gt;</translation>
<translation>&lt;small&gt;Jika lebih dari satu orang akan menggunakan komputer ini, Anda dapat mengatur beberapa akun setelah instalasi.&lt;/small&gt;</translation>
</message>
<message>
<location filename="../src/modules/users/page_usersetup.ui" line="335"/>
@ -1727,27 +1727,27 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
<source>New Volume Group</source>
<translation type="unfinished"/>
<translation>Grup Volume Baru</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="139"/>
<source>Resize Volume Group</source>
<translation type="unfinished"/>
<translation>Ubah-ukuran Grup Volume</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="146"/>
<source>Deactivate Volume Group</source>
<translation type="unfinished"/>
<translation>Nonaktifkan Grup Volume</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="153"/>
<source>Remove Volume Group</source>
<translation type="unfinished"/>
<translation>Hapus Grup Volume</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="180"/>
<source>I&amp;nstall boot loader on:</source>
<translation type="unfinished"/>
<translation>I&amp;nstal boot loader di:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="217"/>
@ -1780,12 +1780,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="159"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system.</source>
<translation>Pasang %1 &lt;strong&gt;berdampingan&lt;/strong&gt; dengan sistem operasi lain.</translation>
<translation>Instal %1 &lt;strong&gt;berdampingan&lt;/strong&gt; dengan sistem operasi lain.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="163"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk and install %1.</source>
<translation>&lt;strong&gt;Hapus&lt;/strong&gt; diska dan pasang %1.</translation>
<translation>&lt;strong&gt;Hapus&lt;/strong&gt; diska dan instal %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="167"/>
@ -1800,12 +1800,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="185"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system on disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</source>
<translation>Pasang %1 &lt;strong&gt;berdampingan&lt;/strong&gt; dengan sistem operasi lain di disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</translation>
<translation>Instal %1 &lt;strong&gt;berdampingan&lt;/strong&gt; dengan sistem operasi lain di disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="191"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</source>
<translation>&lt;strong&gt;Hapus&lt;/strong&gt; diska &lt;strong&gt;%2&lt;/strong&gt; (%3) dan pasang %1.</translation>
<translation>&lt;strong&gt;Hapus&lt;/strong&gt; diska &lt;strong&gt;%2&lt;/strong&gt; (%3) dan instal %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="197"/>
@ -1892,7 +1892,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.</transla
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="67"/>
<source>Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel.</source>
<translation>Silakan pilih sebuah look-and-feel untuk KDE Plasma Desktop. Anda juga dapat melewati langkah ini dan konfigurasi look-and-feel sekali ketika sistem terpasang. Mengeklik pilihan look-and-feel akan memberi Anda pratinjau langsung dari look-and-feel.</translation>
<translation>Silakan pilih sebuah look-and-feel untuk KDE Plasma Desktop. Anda juga dapat melewati langkah ini dan konfigurasi look-and-feel setelah sistem terinstal. Mengeklik pilihan look-and-feel akan memberi Anda pratinjau langsung pada look-and-feel tersebut.</translation>
</message>
</context>
<context>
@ -2035,17 +2035,17 @@ Keluaran:
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="48"/>
<source>Remove Volume Group named %1.</source>
<translation type="unfinished"/>
<translation>Hapus Grup Volume bernama %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="41"/>
<source>Remove Volume Group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Hapus Grup Volume bernama &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="61"/>
<source>The installer failed to remove a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>Installer gagal menghapus sebuah grup volume bernama &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -2058,7 +2058,7 @@ Keluaran:
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="134"/>
<source>Select where to install %1.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Warning: &lt;/font&gt;this will delete all files on the selected partition.</source>
<translation>Pilih tempat pemasangan %1.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Peringatan: &lt;/font&gt;hal ini akan menghapus semua berkas di partisi terpilih.</translation>
<translation>Pilih tempat instalasi %1.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Peringatan: &lt;/font&gt;hal ini akan menghapus semua berkas di partisi terpilih.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="160"/>
@ -2068,17 +2068,17 @@ Keluaran:
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="168"/>
<source>%1 cannot be installed on empty space. Please select an existing partition.</source>
<translation>%1 tidak dapat dipasang di ruang kosong. Mohon pilih partisi yang tersedia.</translation>
<translation>%1 tidak dapat diinstal di ruang kosong. Mohon pilih partisi yang tersedia.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="178"/>
<source>%1 cannot be installed on an extended partition. Please select an existing primary or logical partition.</source>
<translation>%1 tidak bisa dipasang pada Partisi Extended. Mohon pilih Partisi Primary atau Logical yang tersedia.</translation>
<translation>%1 tidak bisa diinstal pada Partisi Extended. Mohon pilih Partisi Primary atau Logical yang tersedia.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="188"/>
<source>%1 cannot be installed on this partition.</source>
<translation>%1 tidak dapat dipasang di partisi ini.</translation>
<translation>%1 tidak dapat diinstal di partisi ini.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="194"/>
@ -2110,7 +2110,7 @@ Keluaran:
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="278"/>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="302"/>
<source>&lt;strong&gt;%3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;%1 will be installed on %2.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Warning: &lt;/font&gt;all data on partition %2 will be lost.</source>
<translation>&lt;strong&gt;%3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;%1 akan dipasang pada %2.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Peringatan: &lt;/font&gt;seluruh data %2 akan hilang.</translation>
<translation>&lt;strong&gt;%3&lt;/strong&gt;&lt;br/&gt;&lt;br/&gt;%1 akan diinstal pada %2.&lt;br/&gt;&lt;font color=&quot;red&quot;&gt;Peringatan: &lt;/font&gt;seluruh data %2 akan hilang.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="270"/>
@ -2173,12 +2173,12 @@ Keluaran:
<message>
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="155"/>
<source>The installer is not running with administrator rights.</source>
<translation>Pemasang tidak dijalankan dengan kewenangan administrator.</translation>
<translation>Installer tidak dijalankan dengan kewenangan administrator.</translation>
</message>
<message>
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="163"/>
<source>The screen is too small to display the installer.</source>
<translation>Layar terlalu kecil untuk menampilkan pemasang.</translation>
<translation>Layar terlalu kecil untuk menampilkan installer.</translation>
</message>
</context>
<context>
@ -2186,29 +2186,29 @@ Keluaran:
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="130"/>
<source>Resize Filesystem Job</source>
<translation type="unfinished"/>
<translation>Tugas Ubah-ukuran Filesystem</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="238"/>
<source>Invalid configuration</source>
<translation type="unfinished"/>
<translation>Konfigurasi taksah</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="239"/>
<source>The file-system resize job has an invalid configuration and will not run.</source>
<translation type="unfinished"/>
<translation>Tugas pengubahan ukuran filesystem mempunyai sebuah konfigurasi yang taksah dan tidak akan berjalan.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="253"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="263"/>
<source>KPMCore not Available</source>
<translation type="unfinished"/>
<translation>KPMCore tidak Tersedia</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="254"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="264"/>
<source>Calamares cannot start KPMCore for the file-system resize job.</source>
<translation type="unfinished"/>
<translation>Calamares gak bisa menjalankan KPMCore untuk tugas pengubahan ukuran filesystem.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="272"/>
@ -2217,39 +2217,39 @@ Keluaran:
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="303"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="320"/>
<source>Resize Failed</source>
<translation type="unfinished"/>
<translation>Pengubahan Ukuran, Gagal</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="273"/>
<source>The filesystem %1 could not be found in this system, and cannot be resized.</source>
<translation type="unfinished"/>
<translation>Filesystem %1 enggak ditemukan dalam sistem ini, dan gak bisa diubahukurannya.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="274"/>
<source>The device %1 could not be found in this system, and cannot be resized.</source>
<translation type="unfinished"/>
<translation>Perangkat %1 enggak ditemukan dalam sistem ini, dan gak bisa diubahukurannya.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="282"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="295"/>
<source>The filesystem %1 cannot be resized.</source>
<translation type="unfinished"/>
<translation>Filesystem %1 gak bisa diubahukurannya.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="283"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="296"/>
<source>The device %1 cannot be resized.</source>
<translation type="unfinished"/>
<translation>Perangkat %1 gak bisa diubahukurannya.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="304"/>
<source>The filesystem %1 must be resized, but cannot.</source>
<translation type="unfinished"/>
<translation>Filesystem %1 mestinya bisa diubahukurannya, namun gak bisa.</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="305"/>
<source>The device %1 must be resized, but cannot</source>
<translation type="unfinished"/>
<translation>Perangkat %1 mestinya bisa diubahukurannya, namun gak bisa.</translation>
</message>
</context>
<context>
@ -2272,7 +2272,7 @@ Keluaran:
<message>
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="85"/>
<source>The installer failed to resize partition %1 on disk &apos;%2&apos;.</source>
<translation>Pemasang gagal untuk merubah ukuran partisi %1 pada disk &apos;%2&apos;.</translation>
<translation>Installer gagal untuk merubah ukuran partisi %1 pada disk &apos;%2&apos;.</translation>
</message>
</context>
<context>
@ -2281,17 +2281,17 @@ Keluaran:
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="37"/>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="55"/>
<source>Resize volume group named %1 from %2 to %3.</source>
<translation type="unfinished"/>
<translation>Ubah ukuran grup volume bernama %1 dari %2 ke %3.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="46"/>
<source>Resize volume group named &lt;strong&gt;%1&lt;/strong&gt; from &lt;strong&gt;%2&lt;/strong&gt; to &lt;strong&gt;%3&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Ubah ukuran grup volume bernama &lt;strong&gt;%1&lt;/strong&gt; dari &lt;strong&gt;%2&lt;/strong&gt; ke %3&lt;strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="70"/>
<source>The installer failed to resize a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>Installer gagal mengubah ukuran sebuah grup volume bernama &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -2447,7 +2447,7 @@ Keluaran:
<message>
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="144"/>
<source>The installer failed to set flags on partition %1.</source>
<translation>Pemasang gagal menetapkan bendera pada partisi %1.</translation>
<translation>Installer gagal menetapkan bendera pada partisi %1.</translation>
</message>
</context>
<context>
@ -2553,7 +2553,7 @@ Keluaran:
<message>
<location filename="../src/modules/summary/SummaryPage.cpp" line="49"/>
<source>This is an overview of what will happen once you start the install procedure.</source>
<translation>Berikut adalah tinjauan mengenai yang akan terjadi setelah Anda memulai prosedur pemasangan.</translation>
<translation>Berikut adalah tinjauan mengenai yang akan terjadi setelah Anda memulai prosedur instalasi.</translation>
</message>
</context>
<context>
@ -2579,7 +2579,7 @@ Keluaran:
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="88"/>
<source>Internal error in install-tracking.</source>
<translation>Galat intern di pelacakan-pemasangan.</translation>
<translation>Galat intern di pelacakan-instalasi.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="89"/>
@ -2631,7 +2631,7 @@ Keluaran:
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="72"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By selecting this, you will send &lt;span style=&quot; font-weight:600;&quot;&gt;no information at all&lt;/span&gt; about your installation.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dengan memilih ini, Anda akan mengirim &lt;span style=&quot; font-weight:600;&quot;&gt;tidak ada informasi di &lt;/span&gt; tentang pemasangan Anda. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Dengan memilih ini, Anda akan mengirim &lt;span style=&quot; font-weight:600;&quot;&gt;tidak ada informasi di &lt;/span&gt; tentang instalasi Anda. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="123"/>
@ -2655,22 +2655,22 @@ Keluaran:
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="44"/>
<source>Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area.</source>
<translation>Pasang bantuan pelacakan %1 untuk melihat berapa banyak pengguna memiliki, piranti keras apa yang mereka pasang %1 dan (dengan dua pilihan terakhir), dapatkan informasi berkelanjutan tentang aplikasi yang disukai. Untuk melihat apa yang akan dikirim, silakan klik ikon bantuan ke beberapa area selanjtunya.</translation>
<translation>Instal bantuan pelacakan %1 untuk melihat berapa banyak pengguna memiliki, piranti keras apa yang mereka instal %1 dan (dengan dua pilihan terakhir), dapatkan informasi berkelanjutan tentang aplikasi yang disukai. Untuk melihat apa yang akan dikirim, silakan klik ikon bantuan ke beberapa area selanjtunya.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
<source>By selecting this you will send information about your installation and hardware. This information will &lt;b&gt;only be sent once&lt;/b&gt; after the installation finishes.</source>
<translation>Dengan memilih ini Anda akan mengirim informasi tentang pemasangan dan piranti keras Anda. Informasi ini hanya akan &lt;b&gt;dikirim sekali&lt;/b&gt; setelah pemasangan selesai. </translation>
<translation>Dengan memilih ini Anda akan mengirim informasi tentang instalasi dan piranti keras Anda. Informasi ini hanya akan &lt;b&gt;dikirim sekali&lt;/b&gt; setelah instalasi selesai. </translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="46"/>
<source>By selecting this you will &lt;b&gt;periodically&lt;/b&gt; send information about your installation, hardware and applications, to %1.</source>
<translation>Dengan memilih ini anda akan &lt;b&gt; secara berkala&lt;/b&gt; mengirim informasi tentang pemasangan, piranti keras dan aplikasi Anda, ke %1.</translation>
<translation>Dengan memilih ini anda akan &lt;b&gt; secara berkala&lt;/b&gt; mengirim informasi tentang instalasi, piranti keras dan aplikasi Anda, ke %1.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="47"/>
<source>By selecting this you will &lt;b&gt;regularly&lt;/b&gt; send information about your installation, hardware, applications and usage patterns, to %1.</source>
<translation>Dengan memilih ini anda akan&lt;b&gt;secara teratur&lt;/b&gt; mengirim informasi tentang pemasangan, piranti keras, aplikasi dan pola pemakaian Anda, ke %1.</translation>
<translation>Dengan memilih ini anda akan&lt;b&gt;secara teratur&lt;/b&gt; mengirim informasi tentang instalasi, piranti keras, aplikasi dan pola pemakaian Anda, ke %1.</translation>
</message>
</context>
<context>
@ -2728,27 +2728,27 @@ Keluaran:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="14"/>
<source>VolumeGroupDialog</source>
<translation type="unfinished"/>
<translation>DialogGrupVolume</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="20"/>
<source>List of Physical Volumes</source>
<translation type="unfinished"/>
<translation>Daftar dari Volume Fisik</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="30"/>
<source>Volume Group Name:</source>
<translation type="unfinished"/>
<translation>Nama Grup Volume:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="43"/>
<source>Volume Group Type:</source>
<translation type="unfinished"/>
<translation>Tipe Grup Volume:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="56"/>
<source>Physical Extent Size:</source>
<translation type="unfinished"/>
<translation>Ukuran Luas Fisik:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="66"/>
@ -2758,7 +2758,7 @@ Keluaran:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="82"/>
<source>Total Size:</source>
<translation type="unfinished"/>
<translation>Total Ukuran:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="92"/>
@ -2766,22 +2766,22 @@ Keluaran:
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="132"/>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="152"/>
<source>---</source>
<translation type="unfinished"/>
<translation>---</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="102"/>
<source>Used Size:</source>
<translation type="unfinished"/>
<translation>Ukuran Terpakai:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="122"/>
<source>Total Sectors:</source>
<translation type="unfinished"/>
<translation>Total Sektor:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="142"/>
<source>Quantity of LVs:</source>
<translation type="unfinished"/>
<translation>Kuantitas LV:</translation>
</message>
</context>
<context>
@ -2819,17 +2819,17 @@ Keluaran:
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
<source>&lt;h1&gt;Welcome to the %1 installer.&lt;/h1&gt;</source>
<translation>&lt;h1&gt;Selamat datang di pemasang %1.&lt;/h1&gt;</translation>
<translation>&lt;h1&gt;Selamat datang di installer %1.&lt;/h1&gt;</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
<source>&lt;h1&gt;Welcome to the Calamares installer for %1.&lt;/h1&gt;</source>
<translation>&lt;h1&gt;Selamat datang di Calamares pemasang untuk %1.&lt;/h1&gt;</translation>
<translation>&lt;h1&gt;Selamat datang di Calamares installer untuk %1.&lt;/h1&gt;</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="73"/>
<source>About %1 installer</source>
<translation>Tentang pemasang %1</translation>
<translation>Tentang installer %1</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>

View File

@ -192,7 +192,7 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="179"/>
<source>Calamares Initialization Failed</source>
<translation type="unfinished"/>
<translation>Calamares uppsetning mistókst</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
@ -207,7 +207,7 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="277"/>
<source>&amp;Install</source>
<translation type="unfinished"/>
<translation>&amp;Setja upp</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="325"/>
@ -503,7 +503,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast.</translation>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="127"/>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="138"/>
<source>Could not run command.</source>
<translation type="unfinished"/>
<translation>Gat ekki keyrt skipun.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="128"/>
@ -559,7 +559,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast.</translation>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="151"/>
<source>LVM LV name</source>
<translation type="unfinished"/>
<translation>LVM LV nafn</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="188"/>
@ -822,7 +822,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast.</translation>
<message>
<location filename="../src/modules/partition/core/DeviceModel.cpp" line="89"/>
<source>%1 - (%2)</source>
<translation type="unfinished"/>
<translation>%1 - (%2)</translation>
</message>
</context>
<context>
@ -1281,17 +1281,17 @@ Uppsetningarforritið mun hætta og allar breytingar tapast.</translation>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="63"/>
<source>Password is too short</source>
<translation type="unfinished"/>
<translation>Lykilorðið þitt er of stutt</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="85"/>
<source>Password is too long</source>
<translation type="unfinished"/>
<translation>Lykilorðið þitt er of langt</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="151"/>
<source>Password is too weak</source>
<translation type="unfinished"/>
<translation>Lykilorðið þitt er of veikt</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="158"/>
@ -1386,7 +1386,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast.</translation>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password is too short</source>
<translation type="unfinished"/>
<translation>Lykilorðið er of stutt</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="198"/>
@ -1906,7 +1906,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast.</translation>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="85"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Vista skrár fyrir seinna ...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="123"/>
@ -2540,7 +2540,7 @@ Output:
<location filename="../src/qml/calamares/slideshow/SlideCounter.qml" line="36"/>
<source>%L1 / %L2</source>
<extracomment>slide counter, %1 of %2 (numeric)</extracomment>
<translation type="unfinished"/>
<translation>%L1 / %L2</translation>
</message>
</context>
<context>
@ -2640,7 +2640,7 @@ Output:
<location filename="../src/modules/tracking/page_trackingstep.ui" line="195"/>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="257"/>
<source>...</source>
<translation type="unfinished"/>
<translation>...</translation>
</message>
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="271"/>
@ -2753,7 +2753,7 @@ Output:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="82"/>
<source>Total Size:</source>
<translation type="unfinished"/>
<translation>Heildar stærð:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="92"/>
@ -2761,12 +2761,12 @@ Output:
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="132"/>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="152"/>
<source>---</source>
<translation type="unfinished"/>
<translation>---</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="102"/>
<source>Used Size:</source>
<translation type="unfinished"/>
<translation>Notuð stærð:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="122"/>

View File

@ -14,7 +14,7 @@
<message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="91"/>
<source>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</source>
<translation> &lt;strong&gt;BIOS&lt;/strong&gt; &lt;br&gt;&lt;br&gt; BIOS()&lt;strong&gt;&lt;/strong&gt; &lt;strong&gt;GRUB&lt;/strong&gt; </translation>
<translation> &lt;strong&gt;BIOS&lt;/strong&gt; &lt;br&gt;&lt;br&gt; BIOS () &lt;strong&gt;&lt;/strong&gt; &lt;strong&gt;GRUB&lt;/strong&gt; </translation>
</message>
</context>
<context>
@ -169,19 +169,19 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="74"/>
<source>&amp;Back</source>
<translation>&amp;B</translation>
<translation> (&amp;B)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="75"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="279"/>
<source>&amp;Next</source>
<translation>&amp;N</translation>
<translation> (&amp;N)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="288"/>
<source>&amp;Cancel</source>
<translation>&amp;C</translation>
<translation> (&amp;C)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="77"/>
@ -197,7 +197,7 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
<source>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</source>
<translation>%1 Calamares Calamares 使</translation>
<translation>%1 Calamares Calamares 使</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="185"/>
@ -207,7 +207,7 @@
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="277"/>
<source>&amp;Install</source>
<translation>&amp;I</translation>
<translation> (&amp;I)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="325"/>
@ -224,17 +224,17 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="331"/>
<source>&amp;Yes</source>
<translation>&amp;Y</translation>
<translation> (&amp;Y)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="332"/>
<source>&amp;No</source>
<translation>&amp;N</translation>
<translation> (&amp;N)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="163"/>
<source>&amp;Close</source>
<translation>&amp;C</translation>
<translation> (&amp;C)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="237"/>
@ -249,17 +249,17 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="243"/>
<source>&amp;Install now</source>
<translation>&amp;I</translation>
<translation> (&amp;I)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="244"/>
<source>Go &amp;back</source>
<translation>&amp;B</translation>
<translation> (&amp;B)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="283"/>
<source>&amp;Done</source>
<translation>&amp;D</translation>
<translation> (&amp;D)</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="284"/>
@ -371,7 +371,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="129"/>
<source>Select storage de&amp;vice:</source>
<translation>&amp;V:</translation>
<translation> (&amp;V):</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="130"/>
@ -539,22 +539,22 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="55"/>
<source>Partition &amp;Type:</source>
<translation>&amp;T:</translation>
<translation> (&amp;T):</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="67"/>
<source>&amp;Primary</source>
<translation>&amp;P</translation>
<translation> (&amp;P)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="77"/>
<source>E&amp;xtended</source>
<translation>&amp;x</translation>
<translation> (&amp;X)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="119"/>
<source>Fi&amp;le System:</source>
<translation> &amp;L:</translation>
<translation> (&amp;L):</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="151"/>
@ -569,17 +569,17 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="161"/>
<source>&amp;Mount Point:</source>
<translation>&amp;M</translation>
<translation> (&amp;M)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="38"/>
<source>Si&amp;ze:</source>
<translation>&amp;Z</translation>
<translation> (&amp;Z)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="72"/>
<source>En&amp;crypt</source>
<translation>&amp;C</translation>
<translation> (&amp;C)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="151"/>
@ -650,7 +650,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionTableDialog.ui" line="82"/>
<source>GUID Partition Table (GPT)</source>
<translation>GUID (GPT)</translation>
<translation>GUID (GPT)</translation>
</message>
</context>
<context>
@ -784,7 +784,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="150"/>
<source>The type of &lt;strong&gt;partition table&lt;/strong&gt; on the selected storage device.&lt;br&gt;&lt;br&gt;The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.&lt;br&gt;This installer will keep the current partition table unless you explicitly choose otherwise.&lt;br&gt;If unsure, on modern systems GPT is preferred.</source>
<translation>&lt;strong&gt; &lt;/strong&gt; &lt;br&gt;&lt;br&gt; &lt;br&gt; GPT</translation>
<translation>&lt;strong&gt; &lt;/strong&gt; &lt;br&gt;&lt;br&gt; &lt;br&gt; GPT</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="107"/>
@ -866,7 +866,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="60"/>
<source>&amp;Keep</source>
<translation>&amp;K</translation>
<translation> (&amp;K)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="70"/>
@ -881,12 +881,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="99"/>
<source>&amp;Mount Point:</source>
<translation>&amp;M</translation>
<translation> (&amp;M)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="119"/>
<source>Si&amp;ze:</source>
<translation>&amp;Z:</translation>
<translation> (&amp;Z):</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="129"/>
@ -896,7 +896,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="136"/>
<source>Fi&amp;le System:</source>
<translation>&amp;L</translation>
<translation> (&amp;L)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="149"/>
@ -919,7 +919,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/EncryptWidget.ui" line="32"/>
<source>En&amp;crypt system</source>
<translation>&amp;C</translation>
<translation> (&amp;C)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/EncryptWidget.ui" line="42"/>
@ -990,7 +990,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
<source>&amp;Restart now</source>
<translation>&amp;R</translation>
<translation> (&amp;R)</translation>
</message>
<message>
<location filename="../src/modules/finished/FinishedPage.cpp" line="51"/>
@ -1107,12 +1107,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="66"/>
<source>&amp;Cancel</source>
<translation>&amp;C</translation>
<translation> (&amp;C)</translation>
</message>
<message>
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="67"/>
<source>&amp;OK</source>
<translation>&amp;O</translation>
<translation> (&amp;O)</translation>
</message>
</context>
<context>
@ -1219,7 +1219,7 @@ The installer will quit and all changes will be lost.</source>
<location filename="../src/modules/locale/LocalePage.cpp" line="220"/>
<location filename="../src/modules/locale/LocalePage.cpp" line="221"/>
<source>&amp;Change...</source>
<translation>&amp;C...</translation>
<translation> (&amp;C)...</translation>
</message>
<message>
<location filename="../src/modules/locale/LocalePage.cpp" line="398"/>
@ -1696,7 +1696,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="22"/>
<source>Storage de&amp;vice:</source>
<translation> &amp;V:</translation>
<translation> (&amp;V):</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="51"/>
@ -1706,22 +1706,22 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="87"/>
<source>New Partition &amp;Table</source>
<translation>&amp;T</translation>
<translation> (&amp;T)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="107"/>
<source>Cre&amp;ate</source>
<translation>&amp;a</translation>
<translation> (&amp;A)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="114"/>
<source>&amp;Edit</source>
<translation>&amp;E</translation>
<translation> (&amp;E)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="121"/>
<source>&amp;Delete</source>
<translation>&amp;D</translation>
<translation> (&amp;D)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
@ -1751,7 +1751,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="217"/>
<source>Are you sure you want to create a new partition table on %1?</source>
<translation>1 </translation>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="241"/>
@ -1859,7 +1859,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="451"/>
<source>A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.&lt;br/&gt;&lt;br/&gt;There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.&lt;br/&gt;You may continue if you wish, but filesystem unlocking will happen later during system startup.&lt;br/&gt;To encrypt the boot partition, go back and recreate it, selecting &lt;strong&gt;Encrypt&lt;/strong&gt; in the partition creation window.</source>
<translation>&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Encrypt&lt;/strong&gt;</translation>
<translation>&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;Encrypt&lt;/strong&gt; () </translation>
</message>
</context>
<context>
@ -1917,7 +1917,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="177"/>
<source>Not all of the configured files could be preserved.</source>
<translation></translation>
<translation></translation>
</message>
</context>
<context>
@ -2654,7 +2654,7 @@ Output:
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="44"/>
<source>Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area.</source>
<translation> %1 %1 (2) </translation>
<translation> %1 %1 (2) </translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
@ -2757,7 +2757,7 @@ Output:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="82"/>
<source>Total Size:</source>
<translation>:</translation>
<translation>:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="92"/>
@ -2775,7 +2775,7 @@ Output:
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="122"/>
<source>Total Sectors:</source>
<translation>:</translation>
<translation>:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="142"/>
@ -2793,17 +2793,17 @@ Output:
<message>
<location filename="../src/modules/welcome/WelcomePage.ui" line="75"/>
<source>&amp;Language:</source>
<translation>&amp;L:</translation>
<translation> (&amp;L):</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.ui" line="176"/>
<source>&amp;Release notes</source>
<translation>&amp;R</translation>
<translation> (&amp;R)</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.ui" line="166"/>
<source>&amp;Known issues</source>
<translation>&amp;K</translation>
<translation> (&amp;K)</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.ui" line="156"/>
@ -2813,7 +2813,7 @@ Output:
<message>
<location filename="../src/modules/welcome/WelcomePage.ui" line="146"/>
<source>&amp;About</source>
<translation>&amp;A</translation>
<translation> (&amp;A)</translation>
</message>
<message>
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>

2847
lang/calamares_mk.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@ -718,22 +718,22 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="38"/>
<source>Create new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Создать новую группу томов на диске %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="45"/>
<source>Create new volume group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Создать новую группу томов на диске %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="52"/>
<source>Creating new volume group named %1.</source>
<translation type="unfinished"/>
<translation>Cоздание новой группы томов на диске %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreateVolumeGroupJob.cpp" line="65"/>
<source>The installer failed to create a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>Программа установки не смогла создать группу томов на диске &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -821,7 +821,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/core/DeviceModel.cpp" line="89"/>
<source>%1 - (%2)</source>
<translation type="unfinished"/>
<translation>%1 - (%2)</translation>
</message>
</context>
<context>
@ -829,7 +829,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/dracutlukscfg/DracutLuksCfgJob.cpp" line="131"/>
<source>Write LUKS configuration for Dracut to %1</source>
<translation type="unfinished"/>
<translation>Записать LUKS настройки для Dracut в %1</translation>
</message>
<message>
<location filename="../src/modules/dracutlukscfg/DracutLuksCfgJob.cpp" line="133"/>
@ -1470,7 +1470,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Недопустимое целое значение свойства - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
@ -1724,12 +1724,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="132"/>
<source>New Volume Group</source>
<translation type="unfinished"/>
<translation>Новая группа томов</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="139"/>
<source>Resize Volume Group</source>
<translation type="unfinished"/>
<translation>Изменить размер группы томов</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="146"/>
@ -1739,12 +1739,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="153"/>
<source>Remove Volume Group</source>
<translation type="unfinished"/>
<translation>Удалить группу томов</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="180"/>
<source>I&amp;nstall boot loader on:</source>
<translation type="unfinished"/>
<translation>Уст&amp;ановить загрузчик в:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="217"/>
@ -1884,7 +1884,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/plasmalnf/page_plasmalnf.ui" line="20"/>
<source>Placeholder</source>
<translation type="unfinished"/>
<translation>Заменитель</translation>
</message>
<message>
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="67"/>
@ -1905,12 +1905,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="85"/>
<source>Saving files for later ...</source>
<translation type="unfinished"/>
<translation>Сохраняю файлы на потом...</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="123"/>
<source>No files configured to save for later.</source>
<translation type="unfinished"/>
<translation>Нет файлов, которые требуется сохранить на потом.</translation>
</message>
<message>
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="177"/>
@ -1924,7 +1924,8 @@ The installer will quit and all changes will be lost.</source>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="271"/>
<source>
There was no output from the command.</source>
<translation type="unfinished"/>
<translation>
Вывода из команды не последовало.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="272"/>
@ -2031,17 +2032,17 @@ Output:
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="34"/>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="48"/>
<source>Remove Volume Group named %1.</source>
<translation type="unfinished"/>
<translation>Удалить группу томов на диске %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="41"/>
<source>Remove Volume Group named &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation type="unfinished"/>
<translation>Удалить группу томов на диске %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="61"/>
<source>The installer failed to remove a volume group named &apos;%1&apos;.</source>
<translation type="unfinished"/>
<translation>Установщик не смог удалить группу томов на диске &apos;%1&apos;.</translation>
</message>
</context>
<context>
@ -2182,12 +2183,12 @@ Output:
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="130"/>
<source>Resize Filesystem Job</source>
<translation type="unfinished"/>
<translation>Изменить размер файловой системы</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="238"/>
<source>Invalid configuration</source>
<translation type="unfinished"/>
<translation>Недействительная конфигурация</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="239"/>
@ -2213,7 +2214,7 @@ Output:
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="303"/>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="320"/>
<source>Resize Failed</source>
<translation type="unfinished"/>
<translation>Не удалось изменить размер</translation>
</message>
<message>
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="273"/>
@ -2622,7 +2623,7 @@ Output:
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="24"/>
<source>Placeholder</source>
<translation type="unfinished"/>
<translation>Заменитель</translation>
</message>
<message>
<location filename="../src/modules/tracking/page_trackingstep.ui" line="72"/>

Binary file not shown.

View File

@ -3,6 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Abubakaragoub Y <Abubakaryagob@gmail.com>, 2018
#
#, fuzzy
msgid ""
msgstr ""
@ -10,6 +13,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Abubakaragoub Y <Abubakaryagob@gmail.com>, 2018\n"
"Language-Team: Arabic (https://www.transifex.com/calamares/teams/20061/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,43 +23,43 @@ msgstr ""
#: src/modules/displaymanager/main.py:380
msgid "Cannot write KDM configuration file"
msgstr ""
msgstr "فشلت كتابة ملف ضبط KDM."
#: src/modules/displaymanager/main.py:381
msgid "KDM config file {!s} does not exist"
msgstr ""
msgstr "ملف ضبط KDM {!s} غير موجود"
#: src/modules/displaymanager/main.py:442
msgid "Cannot write LXDM configuration file"
msgstr ""
msgstr "فشلت كتابة ملف ضبط LXDM."
#: src/modules/displaymanager/main.py:443
msgid "LXDM config file {!s} does not exist"
msgstr ""
msgstr "ملف ضبط LXDM {!s} غير موجود"
#: src/modules/displaymanager/main.py:517
msgid "Cannot write LightDM configuration file"
msgstr ""
msgstr "فشلت كتابة ملف ضبط LightDM."
#: src/modules/displaymanager/main.py:518
msgid "LightDM config file {!s} does not exist"
msgstr ""
msgstr "ملف ضبط LightDM {!s} غير موجود"
#: src/modules/displaymanager/main.py:592
msgid "Cannot configure LightDM"
msgstr ""
msgstr "فشل ضبط LightDM"
#: src/modules/displaymanager/main.py:593
msgid "No LightDM greeter installed."
msgstr ""
msgstr "لم يتم تصيب LightDM"
#: src/modules/displaymanager/main.py:624
msgid "Cannot write SLIM configuration file"
msgstr ""
msgstr "فشلت كتابة ملف ضبط SLIM."
#: src/modules/displaymanager/main.py:625
msgid "SLIM config file {!s} does not exist"
msgstr ""
msgstr "ملف ضبط SLIM {!s} غير موجود"
#: src/modules/displaymanager/main.py:740
#: src/modules/displaymanager/main.py:772
@ -78,28 +82,28 @@ msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
msgstr "الغاء تحميل ملف النظام"
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr ""
msgstr "عملية بايثون دميه"
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr ""
msgstr "عملية دميه خطوه بايثون {}"
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr ""
msgstr "توليد معرف الجهاز"
#: src/modules/packages/main.py:62
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr ""
msgstr "جاري تحميل الحزم (%(count)d/%(total)d)"
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
msgid "Install packages."
msgstr ""
msgstr "تثبيت الحزم"
#: src/modules/packages/main.py:67
#, python-format

Binary file not shown.

View File

@ -6,6 +6,7 @@
# Translators:
# strel, 2017
# Francisco Sánchez López de Lerma <fslopezlerma@gmail.com>, 2018
# Guido Grasso <cuquiman97@gmail.com>, 2018
#
#, fuzzy
msgid ""
@ -14,7 +15,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Francisco Sánchez López de Lerma <fslopezlerma@gmail.com>, 2018\n"
"Last-Translator: Guido Grasso <cuquiman97@gmail.com>, 2018\n"
"Language-Team: Spanish (https://www.transifex.com/calamares/teams/20061/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -24,31 +25,31 @@ msgstr ""
#: src/modules/displaymanager/main.py:380
msgid "Cannot write KDM configuration file"
msgstr ""
msgstr "No se puede escribir el archivo de configuración KDM"
#: src/modules/displaymanager/main.py:381
msgid "KDM config file {!s} does not exist"
msgstr ""
msgstr "El archivo de configuración {!s} de KDM no existe"
#: src/modules/displaymanager/main.py:442
msgid "Cannot write LXDM configuration file"
msgstr ""
msgstr "No se puede escribir el archivo de configuración LXDM"
#: src/modules/displaymanager/main.py:443
msgid "LXDM config file {!s} does not exist"
msgstr ""
msgstr "El archivo de configuracion {!s} de LXDM no existe"
#: src/modules/displaymanager/main.py:517
msgid "Cannot write LightDM configuration file"
msgstr ""
msgstr "No se puede escribir el archivo de configuración de LightDM"
#: src/modules/displaymanager/main.py:518
msgid "LightDM config file {!s} does not exist"
msgstr ""
msgstr "El archivo de configuración {!s} de LightDM no existe"
#: src/modules/displaymanager/main.py:592
msgid "Cannot configure LightDM"
msgstr ""
msgstr "No se puede configurar LightDM"
#: src/modules/displaymanager/main.py:593
msgid "No LightDM greeter installed."
@ -56,16 +57,18 @@ msgstr ""
#: src/modules/displaymanager/main.py:624
msgid "Cannot write SLIM configuration file"
msgstr ""
msgstr "No se puede escribir el archivo de configuración de SLIM"
#: src/modules/displaymanager/main.py:625
msgid "SLIM config file {!s} does not exist"
msgstr ""
msgstr "El archivo de configuración {!s} de SLIM no existe"
#: src/modules/displaymanager/main.py:740
#: src/modules/displaymanager/main.py:772
msgid "No display managers selected for the displaymanager module."
msgstr ""
"No se ha seleccionado ningún gestor de pantalla para el modulo "
"displaymanager"
#: src/modules/displaymanager/main.py:741
msgid ""
@ -76,10 +79,12 @@ msgstr ""
#: src/modules/displaymanager/main.py:773
msgid "The list is empty after checking for installed display managers."
msgstr ""
"La lista está vacía después de haber chequeado los gestores de pantalla "
"instalados"
#: src/modules/displaymanager/main.py:821
msgid "Display manager configuration was incomplete"
msgstr ""
msgstr "La configuración del gestor de pantalla estaba incompleta"
#: src/modules/umount/main.py:40
msgid "Unmount file systems."

Binary file not shown.

View File

@ -3,6 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Ander Elortondo, 2019
#
#, fuzzy
msgid ""
msgstr ""
@ -10,6 +13,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Ander Elortondo, 2019\n"
"Language-Team: Basque (https://www.transifex.com/calamares/teams/20061/eu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,98 +23,102 @@ msgstr ""
#: src/modules/displaymanager/main.py:380
msgid "Cannot write KDM configuration file"
msgstr ""
msgstr "Ezin da KDM konfigurazio fitxategia idatzi"
#: src/modules/displaymanager/main.py:381
msgid "KDM config file {!s} does not exist"
msgstr ""
msgstr "KDM konfigurazio fitxategia {!s} ez da existitzen"
#: src/modules/displaymanager/main.py:442
msgid "Cannot write LXDM configuration file"
msgstr ""
msgstr "Ezin da LXDM konfigurazio fitxategia idatzi"
#: src/modules/displaymanager/main.py:443
msgid "LXDM config file {!s} does not exist"
msgstr ""
msgstr "LXDM konfigurazio fitxategia {!s} ez da existitzen"
#: src/modules/displaymanager/main.py:517
msgid "Cannot write LightDM configuration file"
msgstr ""
msgstr "Ezin da LightDM konfigurazio fitxategia idatzi"
#: src/modules/displaymanager/main.py:518
msgid "LightDM config file {!s} does not exist"
msgstr ""
msgstr "LightDM konfigurazio fitxategia {!s} ez da existitzen"
#: src/modules/displaymanager/main.py:592
msgid "Cannot configure LightDM"
msgstr ""
msgstr "Ezin da LightDM konfiguratu"
#: src/modules/displaymanager/main.py:593
msgid "No LightDM greeter installed."
msgstr ""
msgstr "Ez dago LightDM harrera instalatua."
#: src/modules/displaymanager/main.py:624
msgid "Cannot write SLIM configuration file"
msgstr ""
msgstr "Ezin da SLIM konfigurazio fitxategia idatzi"
#: src/modules/displaymanager/main.py:625
msgid "SLIM config file {!s} does not exist"
msgstr ""
msgstr "SLIM konfigurazio fitxategia {!s} ez da existitzen"
#: src/modules/displaymanager/main.py:740
#: src/modules/displaymanager/main.py:772
msgid "No display managers selected for the displaymanager module."
msgstr ""
"Ez da pantaila kudeatzailerik aukeratu pantaila-kudeatzaile modulurako."
#: src/modules/displaymanager/main.py:741
msgid ""
"The displaymanagers list is empty or undefined in bothglobalstorage and "
"displaymanager.conf."
msgstr ""
"Pantaila-kudeatzaile-zerrenda hutsik dago edo definitzeke bothglobalstorage "
"eta displaymanager.conf"
#: src/modules/displaymanager/main.py:773
msgid "The list is empty after checking for installed display managers."
msgstr ""
"Zerrenda hutsik dago instalatutako pantaila-kudeatzaileak egiaztatu ondoren."
#: src/modules/displaymanager/main.py:821
msgid "Display manager configuration was incomplete"
msgstr ""
msgstr "Pantaila kudeatzaile konfigurazioa osotu gabe"
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
msgstr "Fitxategi sistemak desmuntatu."
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr ""
msgstr "Dummy python lana."
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr ""
msgstr "Dummy python urratsa {}"
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr ""
msgstr "Sortu makina-id."
#: src/modules/packages/main.py:62
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr ""
msgstr "Paketeak prozesatzen (%(count)d/ %(total)d) "
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
msgid "Install packages."
msgstr ""
msgstr "Instalatu paketeak"
#: src/modules/packages/main.py:67
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Pakete bat instalatzen."
msgstr[1] "%(num)dpakete instalatzen."
#: src/modules/packages/main.py:70
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] ""
msgstr[1] ""
msgstr[0] "Pakete bat kentzen."
msgstr[1] "%(num)dpakete kentzen."

Binary file not shown.

View File

@ -6,8 +6,10 @@
# Translators:
# Paul Combal <abonnementspaul@gmail.com>, 2017
# Abdallah B <bahassinea@gmail.com>, 2017
# Aestan <anthony.margerand@gmail.com>, 2018
# Aestan <anthony.margerand@protonmail.com>, 2018
# Jeremy Gourmel <jgourmel@free.fr>, 2018
# Aurnytoraink <wiiu3dsxl13127@gmail.com>, 2018
# Florian B <florianb3522@gmail.com>, 2018
#
#, fuzzy
msgid ""
@ -16,7 +18,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Jeremy Gourmel <jgourmel@free.fr>, 2018\n"
"Last-Translator: Florian B <florianb3522@gmail.com>, 2018\n"
"Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -26,23 +28,23 @@ msgstr ""
#: src/modules/displaymanager/main.py:380
msgid "Cannot write KDM configuration file"
msgstr ""
msgstr "Impossible d'écrire le fichier de configuration KDM"
#: src/modules/displaymanager/main.py:381
msgid "KDM config file {!s} does not exist"
msgstr ""
msgstr "Le fichier de configuration KDM n'existe pas"
#: src/modules/displaymanager/main.py:442
msgid "Cannot write LXDM configuration file"
msgstr ""
msgstr "Impossible d'écrire le fichier de configuration LXDM"
#: src/modules/displaymanager/main.py:443
msgid "LXDM config file {!s} does not exist"
msgstr ""
msgstr "Le fichier de configuration LXDM n'existe pas"
#: src/modules/displaymanager/main.py:517
msgid "Cannot write LightDM configuration file"
msgstr ""
msgstr "Impossible d'écrire le fichier de configuration LightDM"
#: src/modules/displaymanager/main.py:518
msgid "LightDM config file {!s} does not exist"
@ -50,15 +52,15 @@ msgstr ""
#: src/modules/displaymanager/main.py:592
msgid "Cannot configure LightDM"
msgstr ""
msgstr "Impossible de configurer LightDM"
#: src/modules/displaymanager/main.py:593
msgid "No LightDM greeter installed."
msgstr ""
msgstr "Aucun hôte LightDM est installé"
#: src/modules/displaymanager/main.py:624
msgid "Cannot write SLIM configuration file"
msgstr ""
msgstr "Impossible d'écrire le fichier de configuration SLIM"
#: src/modules/displaymanager/main.py:625
msgid "SLIM config file {!s} does not exist"
@ -68,20 +70,26 @@ msgstr ""
#: src/modules/displaymanager/main.py:772
msgid "No display managers selected for the displaymanager module."
msgstr ""
"Aucun gestionnaire d'affichage n'a été sélectionné pour le module de "
"gestionnaire d'affichage"
#: src/modules/displaymanager/main.py:741
msgid ""
"The displaymanagers list is empty or undefined in bothglobalstorage and "
"displaymanager.conf."
msgstr ""
"La liste des gestionnaires d'affichage est vide ou indéfinie dans "
"bothglobalstorage et displaymanager.conf."
#: src/modules/displaymanager/main.py:773
msgid "The list is empty after checking for installed display managers."
msgstr ""
"La liste est vide après vérification des gestionnaires d'affichage "
"installés."
#: src/modules/displaymanager/main.py:821
msgid "Display manager configuration was incomplete"
msgstr ""
msgstr "La configuration du gestionnaire d'affichage était incomplète"
#: src/modules/umount/main.py:40
msgid "Unmount file systems."

Binary file not shown.

View File

@ -6,6 +6,7 @@
# Translators:
# Choiril Abdul, 2018
# Harry Suryapambagya <harsxv@gmail.com>, 2018
# Wantoyo <wantoyek@gmail.com>, 2018
#
#, fuzzy
msgid ""
@ -14,7 +15,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Harry Suryapambagya <harsxv@gmail.com>, 2018\n"
"Last-Translator: Wantoyo <wantoyek@gmail.com>, 2018\n"
"Language-Team: Indonesian (https://www.transifex.com/calamares/teams/20061/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -24,62 +25,66 @@ msgstr ""
#: src/modules/displaymanager/main.py:380
msgid "Cannot write KDM configuration file"
msgstr ""
msgstr "Gak bisa menulis file konfigurasi KDM"
#: src/modules/displaymanager/main.py:381
msgid "KDM config file {!s} does not exist"
msgstr ""
msgstr "File {!s} config KDM belum ada"
#: src/modules/displaymanager/main.py:442
msgid "Cannot write LXDM configuration file"
msgstr ""
msgstr "Gak bisa menulis file konfigurasi LXDM"
#: src/modules/displaymanager/main.py:443
msgid "LXDM config file {!s} does not exist"
msgstr ""
msgstr "File {!s} config LXDM enggak ada"
#: src/modules/displaymanager/main.py:517
msgid "Cannot write LightDM configuration file"
msgstr ""
msgstr "Gak bisa menulis file konfigurasi LightDM"
#: src/modules/displaymanager/main.py:518
msgid "LightDM config file {!s} does not exist"
msgstr ""
msgstr "File {!s} config LightDM belum ada"
#: src/modules/displaymanager/main.py:592
msgid "Cannot configure LightDM"
msgstr ""
msgstr "Gak bisa mengkonfigurasi LightDM"
#: src/modules/displaymanager/main.py:593
msgid "No LightDM greeter installed."
msgstr ""
msgstr "Tiada LightDM greeter yang terinstal."
#: src/modules/displaymanager/main.py:624
msgid "Cannot write SLIM configuration file"
msgstr ""
msgstr "Gak bisa menulis file konfigurasi SLIM"
#: src/modules/displaymanager/main.py:625
msgid "SLIM config file {!s} does not exist"
msgstr ""
msgstr "File {!s} config SLIM belum ada"
#: src/modules/displaymanager/main.py:740
#: src/modules/displaymanager/main.py:772
msgid "No display managers selected for the displaymanager module."
msgstr ""
msgstr "Tiada display manager yang dipilih untuk modul displaymanager."
#: src/modules/displaymanager/main.py:741
msgid ""
"The displaymanagers list is empty or undefined in bothglobalstorage and "
"displaymanager.conf."
msgstr ""
"Daftar displaymanager telah kosong atau takdidefinisikan dalam "
"bothglobalstorage dan displaymanager.conf."
#: src/modules/displaymanager/main.py:773
msgid "The list is empty after checking for installed display managers."
msgstr ""
"Daftar telah kosong sesudah pemeriksaan untuk display manager yang "
"terinstal."
#: src/modules/displaymanager/main.py:821
msgid "Display manager configuration was incomplete"
msgstr ""
msgstr "Konfigurasi display manager belum rampung"
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
@ -104,13 +109,13 @@ msgstr "Paket pemrosesan (%(count)d/%(total)d)"
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
msgid "Install packages."
msgstr "pasang paket"
msgstr "Instal paket-paket."
#: src/modules/packages/main.py:67
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] "memasang paket %(num)d"
msgstr[0] "Menginstal paket %(num)d"
#: src/modules/packages/main.py:70
#, python-format

Binary file not shown.

View File

@ -5,6 +5,7 @@
#
# Translators:
# Takefumi Nagata, 2018
# 諏訪子 洩矢, 2018
#
#, fuzzy
msgid ""
@ -13,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Takefumi Nagata, 2018\n"
"Last-Translator: 諏訪子 洩矢, 2018\n"
"Language-Team: Japanese (https://www.transifex.com/calamares/teams/20061/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -75,7 +76,7 @@ msgstr ""
#: src/modules/displaymanager/main.py:773
msgid "The list is empty after checking for installed display managers."
msgstr ""
msgstr "インストールされたディスプレイマネージャーに検索しましたと、リストが空です。"
#: src/modules/displaymanager/main.py:821
msgid "Display manager configuration was incomplete"

Binary file not shown.

View File

@ -0,0 +1,120 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Martin Ristovski <martinristovski@protonmail.com>, 2018
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
"Last-Translator: Martin Ristovski <martinristovski@protonmail.com>, 2018\n"
"Language-Team: Macedonian (https://www.transifex.com/calamares/teams/20061/mk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
#: src/modules/displaymanager/main.py:380
msgid "Cannot write KDM configuration file"
msgstr "KDM конфигурациониот фајл не може да се создаде"
#: src/modules/displaymanager/main.py:381
msgid "KDM config file {!s} does not exist"
msgstr "KDM конфигурациониот фајл {!s} не постои"
#: src/modules/displaymanager/main.py:442
msgid "Cannot write LXDM configuration file"
msgstr "LXDM конфигурациониот фајл не може да се создаде"
#: src/modules/displaymanager/main.py:443
msgid "LXDM config file {!s} does not exist"
msgstr "LXDM конфигурациониот фајл {!s} не постои"
#: src/modules/displaymanager/main.py:517
msgid "Cannot write LightDM configuration file"
msgstr "LightDM конфигурациониот фајл не може да се создаде"
#: src/modules/displaymanager/main.py:518
msgid "LightDM config file {!s} does not exist"
msgstr "LightDM конфигурациониот фајл {!s} не постои"
#: src/modules/displaymanager/main.py:592
msgid "Cannot configure LightDM"
msgstr "Не може да се подеси LightDM"
#: src/modules/displaymanager/main.py:593
msgid "No LightDM greeter installed."
msgstr "Нема инсталирано LightDM поздравувач"
#: src/modules/displaymanager/main.py:624
msgid "Cannot write SLIM configuration file"
msgstr "SLIM конфигурациониот фајл не може да се создаде"
#: src/modules/displaymanager/main.py:625
msgid "SLIM config file {!s} does not exist"
msgstr "SLIM конфигурациониот фајл {!s} не постои"
#: src/modules/displaymanager/main.py:740
#: src/modules/displaymanager/main.py:772
msgid "No display managers selected for the displaymanager module."
msgstr "Немате избрано дисплеј менаџер за displaymanager модулот."
#: src/modules/displaymanager/main.py:741
msgid ""
"The displaymanagers list is empty or undefined in bothglobalstorage and "
"displaymanager.conf."
msgstr ""
#: src/modules/displaymanager/main.py:773
msgid "The list is empty after checking for installed display managers."
msgstr ""
#: src/modules/displaymanager/main.py:821
msgid "Display manager configuration was incomplete"
msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr ""
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr ""
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr ""
#: src/modules/packages/main.py:62
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr ""
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
msgid "Install packages."
msgstr ""
#: src/modules/packages/main.py:67
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] ""
msgstr[1] ""
#: src/modules/packages/main.py:70
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] ""
msgstr[1] ""

View File

@ -16,6 +16,11 @@
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* Tool to find differences between translations (can be used to help
* merging them into one). See usage string, below, for details.
*/
#include <QCoreApplication>
#include <QDebug>
#include <QFile>
@ -23,6 +28,16 @@
#include <QDomDocument>
static const char usage[] = "Usage: txload <master> [<subsidiary> ...]\n"
"\n"
"Reads a .ts source file <master> and zero or more .ts <subsidiary>\n"
"files, and does a comparison between the translations. Source (English)\n"
"strings that are untranslated are flagged in each of the translation\n"
"files, while differences in the translations are themselves also shown.\n"
"\n"
"Outputs to stdout a human-readable list of differences between the\n"
"translations.\n";
bool load_file(const char* filename, QDomDocument& doc)
{
QFile file(filename);
@ -158,7 +173,10 @@ int main(int argc, char** argv)
QCoreApplication a(argc, argv);
if (argc < 2)
{
qWarning() << usage;
return 1;
}
QDomDocument doc("master");
if ( !load_file(argv[1], doc) )

View File

@ -1,7 +1,7 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
* Copyright 2017-2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -275,16 +275,21 @@ gettext_path()
}
_add_localedirs( candidatePaths, QDir().canonicalPath() ); // .
cDebug() << "Standard paths" << candidatePaths;
cDebug() << "Determining gettext path from" << candidatePaths;
for ( auto lang : _gettext_languages() )
QStringList candidateLanguages = _gettext_languages();
for ( const auto& lang : candidateLanguages )
for ( auto localedir : candidatePaths )
{
QDir ldir( localedir );
cDebug() << "Checking" << lang << "in" <<ldir.canonicalPath();
if ( ldir.cd( lang ) )
{
cDebug() << " .. Found" << lang << "in" << ldir.canonicalPath();
return bp::object( localedir.toStdString() );
}
}
cDebug() << " .. None found for" << candidateLanguages;
return bp::object(); // None
}

View File

@ -3,6 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Abubakaragoub Y <Abubakaryagob@gmail.com>, 2018
#
#, fuzzy
msgid ""
msgstr ""
@ -10,6 +13,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
"Last-Translator: Abubakaragoub Y <Abubakaryagob@gmail.com>, 2018\n"
"Language-Team: Arabic (https://www.transifex.com/calamares/teams/20061/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,24 +23,24 @@ msgstr ""
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr ""
msgstr "اضغط علي!"
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr ""
msgstr "QLabel جديد"
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr ""
msgstr "دميه خطوة PythonQt "
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr ""
msgstr "دميه عملية PythonQt "
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr ""
msgstr "هذة دميه عملية خطوة PythonQt. و تقول: {}"
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr ""
msgstr "رسالة حاله دميه عملية خطوة PythonQt"

View File

@ -3,6 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Ander Elortondo, 2019
#
#, fuzzy
msgid ""
msgstr ""
@ -10,6 +13,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
"Last-Translator: Ander Elortondo, 2019\n"
"Language-Team: Basque (https://www.transifex.com/calamares/teams/20061/eu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,24 +23,24 @@ msgstr ""
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr ""
msgstr "Egidazu klik!"
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr ""
msgstr "QLabel berria."
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr ""
msgstr "Dummy PythonQt pauso-ikuspegia"
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr ""
msgstr " Dummy PythonQt lana"
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr ""
msgstr "Hau Dummy PythonQt lana da. Dummy lanak zera dio: {}"
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr ""
msgstr "Dummy PythonQt lanaren egoera mezua."

View File

@ -5,7 +5,7 @@
#
# Translators:
# Paul Combal <abonnementspaul@gmail.com>, 2017
# Aestan <anthony.margerand@gmail.com>, 2018
# Aestan <anthony.margerand@protonmail.com>, 2018
#
#, fuzzy
msgid ""
@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
"Last-Translator: Aestan <anthony.margerand@gmail.com>, 2018\n"
"Last-Translator: Aestan <anthony.margerand@protonmail.com>, 2018\n"
"Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"

View File

@ -0,0 +1,46 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# Martin Ristovski <martinristovski@protonmail.com>, 2018
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-10-05 11:34-0400\n"
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
"Last-Translator: Martin Ristovski <martinristovski@protonmail.com>, 2018\n"
"Language-Team: Macedonian (https://www.transifex.com/calamares/teams/20061/mk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr "Кликни ме!"
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr "Нов QLabel."
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr ""
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr ""
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr ""
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr ""

View File

@ -53,6 +53,17 @@ if( ECM_FOUND AND BUILD_TESTING )
${YAMLCPP_LIBRARY}
)
set_target_properties( geoiptest PROPERTIES AUTOMOC TRUE )
ecm_add_test(
Tests.cpp
LocaleConfiguration.cpp
TEST_NAME
localetest
LINK_LIBRARIES
calamares
Qt5::Test
)
set_target_properties( localetest PROPERTIES AUTOMOC TRUE )
endif()
if( BUILD_TESTING )

View File

@ -1,7 +1,7 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
* Copyright 2017-2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -27,14 +27,23 @@ LocaleConfiguration::LocaleConfiguration()
}
LocaleConfiguration
LocaleConfiguration::createDefault()
LocaleConfiguration::LocaleConfiguration( const QString& localeName, const QString& formatsName )
: LocaleConfiguration()
{
LocaleConfiguration lc = LocaleConfiguration();
lc.lang = lc.lc_numeric = lc.lc_time = lc.lc_monetary = lc.lc_paper = lc.lc_name
= lc.lc_address = lc.lc_telephone = lc.lc_measurement
= lc.lc_identification = "en_US.UTF-8";
return lc;
lc_numeric = lc_time = lc_monetary = lc_paper = lc_name
= lc_address = lc_telephone = lc_measurement
= lc_identification = formatsName;
(void) setLanguage( localeName );
}
void
LocaleConfiguration::setLanguage(const QString& localeName )
{
QString language = localeName.split( '_' ).first();
m_languageLocaleBcp47 = QLocale( language ).bcp47Name().toLower();
m_lang = localeName;
}
@ -43,11 +52,7 @@ LocaleConfiguration::fromLanguageAndLocation( const QString& languageLocale,
const QStringList& availableLocales,
const QString& countryCode )
{
LocaleConfiguration lc;
// Note that the documentation how this works is in packages.conf
QString language = languageLocale.split( '_' ).first();
lc.myLanguageLocaleBcp47 = QLocale(language).bcp47Name().toLower();
QStringList linesForLanguage;
for ( const QString &line : availableLocales )
@ -264,19 +269,14 @@ LocaleConfiguration::fromLanguageAndLocation( const QString& languageLocale,
if ( lc_formats.isEmpty() )
lc_formats = lang;
lc.lang = lang;
lc.lc_address = lc.lc_identification = lc.lc_measurement = lc.lc_monetary
= lc.lc_name = lc.lc_numeric = lc.lc_paper = lc.lc_telephone
= lc.lc_time = lc_formats;
return lc;
return LocaleConfiguration( lang, lc_formats );
}
bool
LocaleConfiguration::isEmpty() const
{
return lang.isEmpty() &&
return m_lang.isEmpty() &&
lc_numeric.isEmpty() &&
lc_time.isEmpty() &&
lc_monetary.isEmpty() &&
@ -294,8 +294,8 @@ LocaleConfiguration::toMap() const
{
QMap< QString, QString > map;
if ( !lang.isEmpty() )
map.insert( "LANG", lang );
if ( !m_lang.isEmpty() )
map.insert( "LANG", m_lang );
if ( !lc_numeric.isEmpty() )
map.insert( "LC_NUMERIC", lc_numeric );
@ -327,8 +327,3 @@ LocaleConfiguration::toMap() const
return map;
}
QString
LocaleConfiguration::toBcp47() const
{
return myLanguageLocaleBcp47;
}

View File

@ -1,7 +1,7 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
* Copyright 2017-2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -20,28 +20,42 @@
#ifndef LOCALECONFIGURATION_H
#define LOCALECONFIGURATION_H
#include <QDebug>
#include <QString>
#include <QMap>
class LocaleConfiguration
{
public:
/// @brief Create an empty locale, with nothing set
explicit LocaleConfiguration();
/// @brief Create a locale with everything set to the given @p localeName
explicit LocaleConfiguration( const QString& localeName /* "en_US.UTF-8" */ )
: LocaleConfiguration( localeName, localeName ) { };
/// @brief Create a locale with language and formats separate
explicit LocaleConfiguration( const QString& localeName, const QString& formatsName );
static LocaleConfiguration createDefault();
static LocaleConfiguration fromLanguageAndLocation( const QString& language,
const QStringList& availableLocales,
const QString& countryCode );
bool isEmpty() const;
QMap< QString, QString > toMap() const;
/** @brief sets lang and the BCP47 representation
*
* Note that the documentation how this works is in packages.conf
*/
void setLanguage( const QString& localeName );
QString language() const { return m_lang; }
// Note that the documentation how this works is in packages.conf
QString toBcp47() const;
QString toBcp47() const { return m_languageLocaleBcp47; }
QMap< QString, QString > toMap() const;
// These become all uppercase in locale.conf, but we keep them lowercase here to
// avoid confusion with locale.h.
QString lang, lc_numeric, lc_time, lc_monetary, lc_paper, lc_name, lc_address,
QString lc_numeric, lc_time, lc_monetary, lc_paper, lc_name, lc_address,
lc_telephone, lc_measurement, lc_identification;
// If the user has explicitly selected language (from the dialog)
@ -49,7 +63,13 @@ public:
bool explicit_lang, explicit_lc;
private:
QString myLanguageLocaleBcp47;
QString m_lang;
QString m_languageLocaleBcp47;
};
inline QDebug& operator <<( QDebug& s, const LocaleConfiguration& l )
{
return s << l.language() << '(' << l.toBcp47() << ") +" << l.lc_numeric;
}
#endif // LOCALECONFIGURATION_H

View File

@ -1,7 +1,7 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
* Copyright 2017-2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -164,16 +164,17 @@ LocalePage::LocalePage( QWidget* parent )
{
LCLocaleDialog* dlg =
new LCLocaleDialog( m_selectedLocaleConfiguration.isEmpty() ?
guessLocaleConfiguration().lang :
m_selectedLocaleConfiguration.lang,
guessLocaleConfiguration().language() :
m_selectedLocaleConfiguration.language(),
m_localeGenLines,
this );
dlg->exec();
if ( dlg->result() == QDialog::Accepted &&
!dlg->selectedLCLocale().isEmpty() )
{
m_selectedLocaleConfiguration.lang = dlg->selectedLCLocale();
m_selectedLocaleConfiguration.setLanguage( dlg->selectedLCLocale() );
m_selectedLocaleConfiguration.explicit_lang = true;
this->updateGlobalLocale();
this->updateLocaleLabels();
}
@ -317,7 +318,7 @@ LocalePage::init( const QString& initialRegion,
}
else
{
cDebug() << "Cannot open file" << localeGenPath
cWarning() << "Cannot open file" << localeGenPath
<< ". Assuming the supported languages are already built into "
"the locale archive.";
QProcess localeA;
@ -386,7 +387,11 @@ std::pair< QString, QString > LocalePage::prettyLocaleStatus( const LocaleConfig
{
using CalamaresUtils::LocaleLabel;
<<<<<<< HEAD
LocaleLabel lang( lc.lang, LocaleLabel::LabelFormat::AlwaysWithCountry );
=======
LocaleLabel lang( lc.language(), LocaleLabel::LabelFormat::AlwaysWithCountry );
>>>>>>> 44211ee19a30eb062508bba565da274c53b16a71
LocaleLabel num( lc.lc_numeric, LocaleLabel::LabelFormat::AlwaysWithCountry );
return std::make_pair< QString, QString >(
@ -443,7 +448,8 @@ LocalePage::onActivate()
!m_selectedLocaleConfiguration.explicit_lang )
{
auto newLocale = guessLocaleConfiguration();
m_selectedLocaleConfiguration.lang = newLocale.lang;
m_selectedLocaleConfiguration.setLanguage( newLocale.language() );
updateGlobalLocale();
updateLocaleLabels();
}
}
@ -452,41 +458,42 @@ LocalePage::onActivate()
LocaleConfiguration
LocalePage::guessLocaleConfiguration() const
{
QLocale myLocale; // User-selected language
// If we cannot say anything about available locales
if ( m_localeGenLines.isEmpty() )
{
cWarning() << "guessLocaleConfiguration can't guess from an empty list.";
return LocaleConfiguration::createDefault();
}
QString myLanguageLocale = myLocale.name();
if ( myLanguageLocale.isEmpty() )
return LocaleConfiguration::createDefault();
return LocaleConfiguration::fromLanguageAndLocation( myLanguageLocale,
return LocaleConfiguration::fromLanguageAndLocation( QLocale().name(),
m_localeGenLines,
m_tzWidget->getCurrentLocation().country );
}
<<<<<<< HEAD
=======
void
LocalePage::updateGlobalLocale()
{
auto *gs = Calamares::JobQueue::instance()->globalStorage();
const QString bcp47 = m_selectedLocaleConfiguration.toBcp47();
gs->insert( "locale", bcp47 );
}
>>>>>>> 44211ee19a30eb062508bba565da274c53b16a71
void
LocalePage::updateGlobalStorage()
{
LocaleGlobal::Location location = m_tzWidget->getCurrentLocation();
Calamares::JobQueue::instance()->globalStorage()
->insert( "locationRegion", location.region );
Calamares::JobQueue::instance()->globalStorage()
->insert( "locationZone", location.zone );
auto *gs = Calamares::JobQueue::instance()->globalStorage();
const QString bcp47 = m_selectedLocaleConfiguration.toBcp47();
Calamares::JobQueue::instance()->globalStorage()->insert( "locale", bcp47 );
LocaleGlobal::Location location = m_tzWidget->getCurrentLocation();
bool locationChanged = ( location.region != gs->value( "locationRegion" ) ) ||
( location.zone != gs->value( "locationZone" ) );
gs->insert( "locationRegion", location.region );
gs->insert( "locationZone", location.zone );
updateGlobalLocale();
// If we're in chroot mode (normal install mode), then we immediately set the
// timezone on the live system. When debugging timezones, don't bother.
#ifndef DEBUG_TIMEZONES
if ( Calamares::Settings::instance()->doChroot() )
if ( locationChanged && Calamares::Settings::instance()->doChroot() )
{
QProcess::execute( "timedatectl", // depends on systemd
{ "set-timezone",
@ -498,7 +505,7 @@ LocalePage::updateGlobalStorage()
auto newLocale = guessLocaleConfiguration();
if ( !m_selectedLocaleConfiguration.isEmpty() &&
m_selectedLocaleConfiguration.explicit_lang )
newLocale.lang = m_selectedLocaleConfiguration.lang;
newLocale.setLanguage( m_selectedLocaleConfiguration.language() );
if ( !m_selectedLocaleConfiguration.isEmpty() &&
m_selectedLocaleConfiguration.explicit_lc )
{

View File

@ -1,6 +1,7 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
* Copyright 2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -56,6 +57,12 @@ private:
// the settings for language and numbers.
std::pair< QString, QString > prettyLocaleStatus( const LocaleConfiguration& ) const;
/** @brief Update the GS *locale* key with the selected system language.
*
* This uses whatever is set in m_selectedLocaleConfiguration as the language,
* and writes it to GS *locale* key (as a string, in BCP47 format).
*/
void updateGlobalLocale();
void updateGlobalStorage();
void updateLocaleLabels();

View File

@ -0,0 +1,80 @@
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
#include "Tests.h"
#include "LocaleConfiguration.h"
#include <QtTest/QtTest>
QTEST_GUILESS_MAIN( LocaleTests )
LocaleTests::LocaleTests()
{
}
LocaleTests::~LocaleTests()
{
}
void LocaleTests::initTestCase()
{
}
void LocaleTests::testEmptyLocaleConfiguration()
{
LocaleConfiguration lc;
QVERIFY( lc.isEmpty() );
QCOMPARE( lc.toBcp47(), QString() );
}
void LocaleTests::testDefaultLocaleConfiguration()
{
LocaleConfiguration lc( "en_US.UTF-8" );
QVERIFY( !lc.isEmpty() );
QCOMPARE( lc.language(), "en_US.UTF-8" );
QCOMPARE( lc.toBcp47(), "en" );
LocaleConfiguration lc2( "de_DE.UTF-8" );
QVERIFY( !lc2.isEmpty() );
QCOMPARE( lc2.language(), "de_DE.UTF-8" );
QCOMPARE( lc2.toBcp47(), "de" );
}
void LocaleTests::testSplitLocaleConfiguration()
{
LocaleConfiguration lc( "en_US.UTF-8", "de_DE.UTF-8" );
QVERIFY( !lc.isEmpty() );
QCOMPARE( lc.language(), "en_US.UTF-8" );
QCOMPARE( lc.toBcp47(), "en" );
QCOMPARE( lc.lc_numeric, QStringLiteral( "de_DE.UTF-8" ) );
LocaleConfiguration lc2( "de_DE.UTF-8", "da_DK.UTF-8" );
QVERIFY( !lc2.isEmpty() );
QCOMPARE( lc2.language(), "de_DE.UTF-8" );
QCOMPARE( lc2.toBcp47(), "de" );
QCOMPARE( lc2.lc_numeric, "da_DK.UTF-8" );
LocaleConfiguration lc3( "da_DK.UTF-8", "de_DE.UTF-8" );
QVERIFY( !lc3.isEmpty() );
QCOMPARE( lc3.toBcp47(), "da" );
QCOMPARE( lc3.lc_numeric, "de_DE.UTF-8" );
}

View File

@ -0,0 +1,40 @@
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2019, Adriaan de Groot <groot@kde.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef TESTS_H
#define TESTS_H
#include <QObject>
class LocaleTests : public QObject
{
Q_OBJECT
public:
LocaleTests();
~LocaleTests() override;
private Q_SLOTS:
void initTestCase();
// Check the sample config file is processed correctly
void testEmptyLocaleConfiguration();
void testDefaultLocaleConfiguration();
void testSplitLocaleConfiguration();
};
#endif

View File

@ -1,6 +1,7 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
* Copyright 2019, Adriaan de Groot <groot@kde.org>
*
* Originally from the Manjaro Installation Framework
* by Roland Singer <roland@manjaro.org>
@ -38,11 +39,13 @@
class LocaleGlobal
{
public:
struct Locale {
struct Locale
{
QString description, locale;
};
struct Location {
struct Location
{
QString region, zone, country;
double latitude, longitude;
static QString pretty( const QString& s );
@ -59,7 +62,12 @@ private:
static void initLocales();
static void initLocations();
static double getRightGeoLocation(QString str);
static double getRightGeoLocation( QString str );
};
inline QDebug& operator <<( QDebug& s, const LocaleGlobal::Location& l )
{
return s << l.region << '/' << l.zone << '(' << l.country << ") @N" << l.latitude << 'E' << l.longitude;
}
#endif // LOCALEGLOBAL_H

View File

@ -150,10 +150,10 @@ class PackageManager(metaclass=abc.ABCMeta):
@param packagedata: str|dict
"""
if isinstance(packagedata, str):
self.remove([packagedata], from_local=from_local)
self.remove([packagedata])
else:
self.run(packagedata["pre-script"])
self.remove([packagedata["package"]], from_local=from_local)
self.remove([packagedata["package"]])
self.run(packagedata["post-script"])

View File

@ -80,26 +80,47 @@ bool
canBeResized( Partition* candidate )
{
if ( !candidate )
{
cDebug() << "Partition* is NULL";
return false;
}
cDebug() << "Checking if" << candidate->partitionPath() << "can be resized.";
if ( !candidate->fileSystem().supportGrow() ||
!candidate->fileSystem().supportShrink() )
{
cDebug() << " .. filesystem" << candidate->fileSystem().name()
<< "does not support resize.";
return false;
}
if ( KPMHelpers::isPartitionFreeSpace( candidate ) )
{
cDebug() << " .. partition is free space";
return false;
}
if ( candidate->isMounted() )
{
cDebug() << " .. partition is mounted";
return false;
}
if ( candidate->roles().has( PartitionRole::Primary ) )
{
PartitionTable* table = dynamic_cast< PartitionTable* >( candidate->parent() );
if ( !table )
{
cDebug() << " .. no partition table found";
return false;
}
if ( table->numPrimaries() >= table->maxPrimaries() )
{
cDebug() << " .. partition table already has"
<< table->maxPrimaries() << "primary partitions.";
return false;
}
}
bool ok = false;
@ -136,11 +157,10 @@ bool
canBeResized( PartitionCoreModule* core, const QString& partitionPath )
{
//FIXME: check for max partitions count on DOS MBR
cDebug() << "checking if" << partitionPath << "can be resized.";
cDebug() << "Checking if" << partitionPath << "can be resized.";
QString partitionWithOs = partitionPath;
if ( partitionWithOs.startsWith( "/dev/" ) )
{
cDebug() << partitionWithOs << "seems like a good path";
DeviceModel* dm = core->deviceModel();
for ( int i = 0; i < dm->rowCount(); ++i )
{
@ -148,10 +168,11 @@ canBeResized( PartitionCoreModule* core, const QString& partitionPath )
Partition* candidate = KPMHelpers::findPartitionByPath( { dev }, partitionWithOs );
if ( candidate )
{
cDebug() << "found Partition* for" << partitionWithOs;
cDebug() << " .. found Partition* for" << partitionWithOs;
return canBeResized( candidate );
}
}
cDebug() << " .. no Partition* found for" << partitionWithOs;
}
cDebug() << "Partition" << partitionWithOs << "CANNOT BE RESIZED FOR AUTOINSTALL.";
@ -177,6 +198,9 @@ lookForFstabEntries( const QString& partitionPath )
mountOptions.append( "noload" );
}
cDebug() << "Checking device" << partitionPath
<< "for fstab (fs=" << r.getOutput() << ')';
FstabEntryList fstabEntries;
QTemporaryDir mountsDir;
mountsDir.setAutoRemove( false );
@ -185,6 +209,9 @@ lookForFstabEntries( const QString& partitionPath )
if ( !exit ) // if all is well
{
QFile fstabFile( mountsDir.path() + "/etc/fstab" );
cDebug() << " .. reading" << fstabFile.fileName();
if ( fstabFile.open( QIODevice::ReadOnly | QIODevice::Text ) )
{
const QStringList fstabLines = QString::fromLocal8Bit( fstabFile.readAll() )
@ -193,12 +220,18 @@ lookForFstabEntries( const QString& partitionPath )
for ( const QString& rawLine : fstabLines )
fstabEntries.append( FstabEntry::fromEtcFstab( rawLine ) );
fstabFile.close();
cDebug() << " .. got" << fstabEntries.count() << "lines.";
std::remove_if( fstabEntries.begin(), fstabEntries.end(), [](const FstabEntry& x) { return !x.isValid(); } );
cDebug() << " .. got" << fstabEntries.count() << "fstab entries.";
}
else
cWarning() << "Could not read fstab from mounted fs";
if ( QProcess::execute( "umount", { "-R", mountsDir.path() } ) )
cWarning() << "Could not unmount" << mountsDir.path();
}
else
cWarning() << "Could not mount existing fs";
return fstabEntries;
}

View File

@ -28,7 +28,6 @@
#include "utils/Units.h"
#include "JobQueue.h"
#include "utils/Logger.h"
#include "GlobalStorage.h"
#include <kpmcore/core/device.h>
#include <kpmcore/core/partition.h>
@ -43,58 +42,38 @@ using CalamaresUtils::operator""_GiB;
using CalamaresUtils::operator""_MiB;
qint64
swapSuggestion( const qint64 availableSpaceB )
swapSuggestion( const qint64 availableSpaceB, Choices::SwapChoice swap )
{
/* If suspend-to-disk is demanded, then we always need enough
* swap to write the whole memory to disk -- between 2GB and 8GB
* RAM give proportionally more swap, and from 8GB RAM keep
* swap = RAM.
*
* If suspend-to-disk is not demanded, then ramp up more slowly,
* to 8GB swap at 16GB memory, and then drop to 4GB for "large
* memory" machines, on the assumption that those don't need swap
* because they have tons of memory (or whatever they are doing,
* had better not run into swap).
*/
if ( ( swap != Choices::SmallSwap ) && ( swap != Choices::FullSwap ) )
return 0;
// See partition.conf for explanation
qint64 suggestedSwapSizeB = 0;
auto memory = CalamaresUtils::System::instance()->getTotalMemoryB();
qint64 availableRamB = memory.first;
qreal overestimationFactor = memory.second;
bool ensureSuspendToDisk =
Calamares::JobQueue::instance()->globalStorage()->
value( "ensureSuspendToDisk" ).toBool();
bool ensureSuspendToDisk = swap == Choices::FullSwap;
if ( ensureSuspendToDisk )
{
if ( availableRamB < 4_GiB )
suggestedSwapSizeB = qMax( 2_GiB, availableRamB * 2 );
else if ( availableRamB >= 4_GiB && availableRamB < 8_GiB )
suggestedSwapSizeB = 8_GiB;
else
suggestedSwapSizeB = availableRamB;
// Ramp up quickly to 8GiB, then follow memory size
if ( availableRamB <= 4_GiB )
suggestedSwapSizeB = availableRamB * 2;
else if ( availableRamB <= 8_GiB )
suggestedSwapSizeB = 8_GiB;
else
suggestedSwapSizeB = availableRamB;
suggestedSwapSizeB *= overestimationFactor;
}
else //if we don't care about suspend to disk
{
if ( availableRamB < 2_GiB )
suggestedSwapSizeB = qMax( 2_GiB, availableRamB * 2 );
else if ( availableRamB >= 2_GiB && availableRamB < 8_GiB )
suggestedSwapSizeB = availableRamB;
else if ( availableRamB >= 8_GiB && availableRamB < 16_GiB )
suggestedSwapSizeB = 8_GiB;
else
suggestedSwapSizeB = 4_GiB;
// .. top out at 8GiB if we don't care about suspend
if ( !ensureSuspendToDisk )
suggestedSwapSizeB = qMin( 8_GiB, suggestedSwapSizeB );
suggestedSwapSizeB *= overestimationFactor;
// don't use more than 10% of available space
qreal maxSwapDiskRatio = 0.10;
qint64 maxSwapSizeB = availableSpaceB * maxSwapDiskRatio;
if ( suggestedSwapSizeB > maxSwapSizeB )
suggestedSwapSizeB = maxSwapSizeB;
}
// Allow for a fudge factor
suggestedSwapSizeB *= overestimationFactor;
// don't use more than 10% of available space
if ( !ensureSuspendToDisk )
suggestedSwapSizeB = qMin( suggestedSwapSizeB, qint64( 0.10 * availableSpaceB ) );
cDebug() << "Suggested swap size:" << suggestedSwapSizeB / 1024. / 1024. / 1024. << "GiB";
@ -118,16 +97,14 @@ bytesToSectors( qint64 bytes, qint64 blocksize )
}
void
doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPassphrase )
doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionOptions o )
{
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
bool isEfi = PartUtils::isEfiSystem();
QString defaultFsType = gs->value( "defaultFileSystemType" ).toString();
QString defaultFsType = o.defaultFsType;
if ( FileSystem::typeForName( defaultFsType ) == FileSystem::Unknown )
defaultFsType = "ext4";
bool isEfi = PartUtils::isEfiSystem();
// Partition sizes are expressed in MiB, should be multiples of
// the logical sector size (usually 512B). EFI starts with 2MiB
// empty and a 300MiB EFI boot partition, while BIOS starts at
@ -160,8 +137,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
PartitionTable::FlagNone
);
PartitionInfo::setFormat( efiPartition, true );
PartitionInfo::setMountPoint( efiPartition, gs->value( "efiSystemPartition" )
.toString() );
PartitionInfo::setMountPoint( efiPartition, o.efiPartitionMountPoint );
core->createPartition( dev, efiPartition, PartitionTable::FlagEsp );
firstFreeSector = lastSector + 1;
}
@ -170,20 +146,18 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
core->createPartitionTable( dev, PartitionTable::msdos );
}
const bool mayCreateSwap = !gs->value( "neverCreateSwap" ).toBool();
const bool mayCreateSwap = ( o.swap == Choices::SmallSwap ) || ( o.swap == Choices::FullSwap );
bool shouldCreateSwap = false;
qint64 suggestedSwapSizeB = 0;
if ( mayCreateSwap )
{
qint64 availableSpaceB = ( dev->totalLogical() - firstFreeSector ) * dev->logicalSize();
suggestedSwapSizeB = swapSuggestion( availableSpaceB );
suggestedSwapSizeB = swapSuggestion( availableSpaceB, o.swap );
// Space required by this installation is what the distro claims is needed
// (via global configuration) plus the swap size plus a fudge factor of
// 0.6GiB (this was 2.1GiB up to Calamares 3.2.2).
qint64 requiredSpaceB =
GiBtoBytes( gs->value( "requiredStorageGB" ).toDouble() + 0.6 ) +
suggestedSwapSizeB;
qint64 requiredSpaceB = o.requiredSpaceB + 600_MiB + suggestedSwapSizeB;
// If there is enough room for ESP + root + swap, create swap, otherwise don't.
shouldCreateSwap = availableSpaceB > requiredSpaceB;
@ -196,7 +170,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
}
Partition* rootPartition = nullptr;
if ( luksPassphrase.isEmpty() )
if ( o.luksPassphrase.isEmpty() )
{
rootPartition = KPMHelpers::createNewPartition(
dev->partitionTable(),
@ -217,7 +191,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
FileSystem::typeForName( defaultFsType ),
firstFreeSector,
lastSectorForRoot,
luksPassphrase,
o.luksPassphrase,
PartitionTable::FlagNone
);
}
@ -232,7 +206,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
if ( shouldCreateSwap )
{
Partition* swapPartition = nullptr;
if ( luksPassphrase.isEmpty() )
if ( o.luksPassphrase.isEmpty() )
{
swapPartition = KPMHelpers::createNewPartition(
dev->partitionTable(),
@ -253,7 +227,7 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass
FileSystem::LinuxSwap,
lastSectorForRoot + 1,
dev->totalLogical() - 1,
luksPassphrase,
o.luksPassphrase,
PartitionTable::FlagNone
);
}
@ -269,13 +243,11 @@ void
doReplacePartition( PartitionCoreModule* core,
Device* dev,
Partition* partition,
const QString& luksPassphrase )
Choices::ReplacePartitionOptions o )
{
cDebug() << "doReplacePartition for device" << partition->partitionPath();
QString defaultFsType = Calamares::JobQueue::instance()->
globalStorage()->
value( "defaultFileSystemType" ).toString();
QString defaultFsType = o.defaultFsType;
if ( FileSystem::typeForName( defaultFsType ) == FileSystem::Unknown )
defaultFsType = "ext4";
@ -296,7 +268,7 @@ doReplacePartition( PartitionCoreModule* core,
}
Partition* newPartition = nullptr;
if ( luksPassphrase.isEmpty() )
if ( o.luksPassphrase.isEmpty() )
{
newPartition = KPMHelpers::createNewPartition(
partition->parent(),
@ -317,7 +289,7 @@ doReplacePartition( PartitionCoreModule* core,
FileSystem::typeForName( defaultFsType ),
partition->firstSector(),
partition->lastSector(),
luksPassphrase,
o.luksPassphrase,
PartitionTable::FlagNone
);
}

View File

@ -27,29 +27,74 @@ class Partition;
namespace PartitionActions
{
/** @brief Namespace for enums
*
* This namespace houses non-class enums.....
*/
namespace Choices
{
/** @brief Ccchoice of swap (size and type) */
enum SwapChoice
{
NoSwap, // don't create any swap, don't use any
ReuseSwap, // don't create, but do use existing
SmallSwap, // up to 8GiB of swap
FullSwap, // ensureSuspendToDisk -- at least RAM size
SwapFile // use a file (if supported)
};
struct ReplacePartitionOptions
{
QString defaultFsType; // e.g. "ext4" or "btrfs"
QString luksPassphrase; // optional
ReplacePartitionOptions( const QString& fs, const QString& luks )
: defaultFsType( fs )
, luksPassphrase( luks )
{
}
};
struct AutoPartitionOptions : ReplacePartitionOptions
{
QString efiPartitionMountPoint; // optional, e.g. "/boot"
quint64 requiredSpaceB; // estimated required space for root partition
SwapChoice swap;
AutoPartitionOptions( const QString& fs, const QString& luks, const QString& efi, qint64 r, SwapChoice s )
: ReplacePartitionOptions( fs, luks )
, efiPartitionMountPoint( efi )
, requiredSpaceB( r > 0 ? r : 0 )
, swap( s )
{
}
};
} // namespace Choices
/**
* @brief doAutopartition sets up an autopartitioning operation on the given Device.
* @param core a pointer to the PartitionCoreModule instance.
* @param dev the device to wipe.
* @param luksPassphrase the passphrase for LUKS encryption (optional, default is empty).
* @param options settings for autopartitioning.
*/
void doAutopartition( PartitionCoreModule* core,
Device* dev,
const QString& luksPassphrase = QString() );
Choices::AutoPartitionOptions options );
/**
* @brief doReplacePartition sets up replace-partitioning with the given partition.
* @param core a pointer to the PartitionCoreModule instance.
* @param dev a pointer to the Device on which to replace a partition.
* @param partition a pointer to the Partition to be replaced.
* @param luksPassphrase the passphrase for LUKS encryption (optional, default is empty).
* @param options settings for partitioning (not all fields apply)
*
* @note this function also takes care of requesting PCM to delete the partition.
*/
void doReplacePartition( PartitionCoreModule* core,
Device* dev,
Partition* partition,
const QString& luksPassphrase = QString() );
}
Choices::ReplacePartitionOptions options );
} // namespace PartitionActions
#endif // PARTITIONACTIONS_H

View File

@ -20,31 +20,33 @@
#include "ChoicePage.h"
#include "core/BootLoaderModel.h"
#include "core/PartitionActions.h"
#include "core/PartitionCoreModule.h"
#include "core/DeviceModel.h"
#include "core/PartitionModel.h"
#include "core/KPMHelpers.h"
#include "core/OsproberEntry.h"
#include "core/PartUtils.h"
#include "core/PartitionActions.h"
#include "core/PartitionCoreModule.h"
#include "core/PartitionInfo.h"
#include "core/PartitionIterator.h"
#include "core/PartitionModel.h"
#include "ReplaceWidget.h"
#include "PrettyRadioButton.h"
#include "BootInfoWidget.h"
#include "DeviceInfoWidget.h"
#include "PartitionBarsView.h"
#include "PartitionLabelsView.h"
#include "PartitionSplitterWidget.h"
#include "BootInfoWidget.h"
#include "DeviceInfoWidget.h"
#include "PrettyRadioButton.h"
#include "ReplaceWidget.h"
#include "ScanningDialog.h"
#include "utils/CalamaresUtilsGui.h"
#include "utils/Logger.h"
#include "utils/Retranslator.h"
#include "utils/Units.h"
#include "Branding.h"
#include "core/KPMHelpers.h"
#include "JobQueue.h"
#include "GlobalStorage.h"
#include "core/PartitionInfo.h"
#include "JobQueue.h"
#include <kpmcore/core/device.h>
#include <kpmcore/core/partition.h>
@ -61,7 +63,7 @@
#include <QFutureWatcher>
#include <QtConcurrent/QtConcurrent>
using PartitionActions::Choices::SwapChoice;
/**
* @brief ChoicePage::ChoicePage is the default constructor. Called on startup as part of
@ -81,6 +83,9 @@ ChoicePage::ChoicePage( QWidget* parent )
, m_eraseButton( nullptr )
, m_replaceButton( nullptr )
, m_somethingElseButton( nullptr )
, m_eraseSwapChoices( nullptr )
, m_replaceSwapChoices( nullptr )
, m_alongsideSwapChoices( nullptr )
, m_deviceInfoWidget( nullptr )
, m_beforePartitionBarsView( nullptr )
, m_beforePartitionLabelsView( nullptr )
@ -176,6 +181,19 @@ ChoicePage::init( PartitionCoreModule* core )
}
/** @brief Creates a combobox with the given choices in it.
*
* No texts are set -- that happens later by the translator functions.
*/
static inline QComboBox*
createCombo( std::initializer_list< SwapChoice > l )
{
QComboBox* box = new QComboBox;
for ( SwapChoice c : l )
box->addItem( QString(), c );
return box;
}
/**
* @brief ChoicePage::setupChoices creates PrettyRadioButton objects for the action
* choices.
@ -229,6 +247,19 @@ ChoicePage::setupChoices()
iconSize ) );
m_grp->addButton( m_replaceButton->buttonWidget(), Replace );
// Fill up swap options
// .. TODO: only if enabled in the config
m_eraseSwapChoices = createCombo( { SwapChoice::NoSwap, SwapChoice::SmallSwap, SwapChoice::FullSwap } );
m_eraseButton->addOptionsComboBox( m_eraseSwapChoices );
#if 0
m_replaceSwapChoices = createCombo( { SwapChoice::NoSwap, SwapChoice::ReuseSwap, SwapChoice::SmallSwap, SwapChoice::FullSwap } );
m_replaceButton->addOptionsComboBox( m_replaceSwapChoices );
m_alongsideSwapChoices = createCombo( { SwapChoice::NoSwap, SwapChoice::ReuseSwap, SwapChoice::SmallSwap, SwapChoice::FullSwap } );
m_alongsideButton->addOptionsComboBox( m_alongsideSwapChoices );
#endif
m_itemsLayout->addWidget( m_alongsideButton );
m_itemsLayout->addWidget( m_replaceButton );
m_itemsLayout->addWidget( m_eraseButton );
@ -252,7 +283,7 @@ ChoicePage::setupChoices()
{
if ( checked ) // An action was picked.
{
m_choice = static_cast< Choice >( id );
m_choice = static_cast< InstallChoice >( id );
updateNextEnabled();
emit actionChosen();
@ -282,6 +313,12 @@ ChoicePage::setupChoices()
applyActionChoice( currentChoice() );
}
} );
CALAMARES_RETRANSLATE(
updateSwapChoicesTr( m_eraseSwapChoices );
updateSwapChoicesTr( m_alongsideSwapChoices );
updateSwapChoicesTr( m_replaceSwapChoices );
)
}
@ -376,7 +413,7 @@ ChoicePage::continueApplyDeviceChoice()
void
ChoicePage::applyActionChoice( ChoicePage::Choice choice )
ChoicePage::applyActionChoice( ChoicePage::InstallChoice choice )
{
m_beforePartitionBarsView->selectionModel()->
disconnect( SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ) );
@ -386,30 +423,37 @@ ChoicePage::applyActionChoice( ChoicePage::Choice choice )
switch ( choice )
{
case Erase:
if ( m_core->isDirty() )
{
ScanningDialog::run( QtConcurrent::run( [ = ]
{
QMutexLocker locker( &m_coreMutex );
m_core->revertDevice( selectedDevice() );
} ),
[ = ]
{
PartitionActions::doAutopartition( m_core,
selectedDevice(),
m_encryptWidget->passphrase() );
emit deviceChosen();
},
this );
}
else
{
PartitionActions::doAutopartition( m_core,
selectedDevice(),
m_encryptWidget->passphrase() );
emit deviceChosen();
}
auto gs = Calamares::JobQueue::instance()->globalStorage();
PartitionActions::Choices::AutoPartitionOptions options {
gs->value( "defaultFileSystemType" ).toString(),
m_encryptWidget->passphrase(),
gs->value( "efiSystemPartition" ).toString(),
CalamaresUtils::GiBtoBytes( gs->value( "requiredStorageGB" ).toDouble() ),
static_cast<PartitionActions::Choices::SwapChoice>( m_eraseSwapChoices->currentData().toInt() )
};
if ( m_core->isDirty() )
{
ScanningDialog::run( QtConcurrent::run( [ = ]
{
QMutexLocker locker( &m_coreMutex );
m_core->revertDevice( selectedDevice() );
} ),
[ = ]
{
PartitionActions::doAutopartition( m_core, selectedDevice(), options );
emit deviceChosen();
},
this );
}
else
{
PartitionActions::doAutopartition( m_core, selectedDevice(), options );
emit deviceChosen();
}
}
break;
case Replace:
if ( m_core->isDirty() )
@ -487,6 +531,7 @@ ChoicePage::doAlongsideSetupSplitter( const QModelIndex& current,
->value( "requiredStorageGB" )
.toDouble();
// TODO: make this consistent
qint64 requiredStorageB = qRound64( requiredStorageGB + 0.1 + 2.0 ) * 1024 * 1024 * 1024;
m_afterPartitionSplitterWidget->setSplitPartition(
@ -777,14 +822,19 @@ ChoicePage::doReplaceSelectedPartition( const QModelIndex& current )
if ( homePartitionPath->isEmpty() )
doReuseHomePartition = false;
PartitionActions::doReplacePartition( m_core,
selectedDevice(),
selectedPartition,
m_encryptWidget->passphrase() );
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
PartitionActions::doReplacePartition(
m_core,
selectedDevice(),
selectedPartition,
{
gs->value( "defaultFileSystemType" ).toString(),
m_encryptWidget->passphrase()
} );
Partition* homePartition = KPMHelpers::findPartitionByPath( { selectedDevice() },
*homePartitionPath );
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
if ( homePartition && doReuseHomePartition )
{
PartitionInfo::setMountPoint( homePartition, "/home" );
@ -897,7 +947,7 @@ ChoicePage::updateDeviceStatePreview()
* @param choice the chosen partitioning action.
*/
void
ChoicePage::updateActionChoicePreview( ChoicePage::Choice choice )
ChoicePage::updateActionChoicePreview( ChoicePage::InstallChoice choice )
{
Device* currentDevice = selectedDevice();
Q_ASSERT( currentDevice );
@ -1386,7 +1436,7 @@ ChoicePage::isNextEnabled() const
}
ChoicePage::Choice
ChoicePage::InstallChoice
ChoicePage::currentChoice() const
{
return m_choice;
@ -1434,3 +1484,42 @@ ChoicePage::updateNextEnabled()
emit nextStatusChanged( enabled );
}
void
ChoicePage::updateSwapChoicesTr(QComboBox* box)
{
if ( !box )
return;
static_assert(SwapChoice::NoSwap == 0, "Enum values out-of-sync");
for ( int index = 0; index < box->count(); ++index )
{
bool ok = false;
int value = 0;
switch ( value = box->itemData( index ).toInt( &ok ) )
{
// case 0:
case SwapChoice::NoSwap:
// toInt() returns 0 on failure, so check for ok
if ( ok ) // It was explicitly set to 0
box->setItemText( index, tr( "No Swap" ) );
else
cWarning() << "Box item" << index << box->itemText( index ) << "has non-integer role.";
break;
case SwapChoice::ReuseSwap:
box->setItemText( index, tr( "Reuse Swap" ) );
break;
case SwapChoice::SmallSwap:
box->setItemText( index, tr( "Swap (no Hibernate)" ) );
break;
case SwapChoice::FullSwap:
box->setItemText( index, tr( "Swap (with Hibernate)" ) );
break;
case SwapChoice::SwapFile:
box->setItemText( index, tr( "Swap to file" ) );
break;
default:
cWarning() << "Box item" << index << box->itemText( index ) << "has role" << value;
}
}
}

View File

@ -53,7 +53,7 @@ class ChoicePage : public QWidget, private Ui::ChoicePage
{
Q_OBJECT
public:
enum Choice
enum InstallChoice
{
NoChoice,
Alongside,
@ -84,7 +84,7 @@ public:
* currently selected partitioning mode (with a PrettyRadioButton).
* @return the enum Choice value.
*/
Choice currentChoice() const;
InstallChoice currentChoice() const;
/**
* @brief onLeave runs when control passes from this page to another one.
@ -95,7 +95,7 @@ public:
* @brief applyActionChoice reacts to a choice of partitioning mode.
* @param choice the partitioning action choice.
*/
void applyActionChoice( ChoicePage::Choice choice );
void applyActionChoice( ChoicePage::InstallChoice choice );
signals:
void nextStatusChanged( bool );
@ -121,18 +121,21 @@ private:
void continueApplyDeviceChoice(); // .. called after scan
void updateDeviceStatePreview();
void updateActionChoicePreview( ChoicePage::Choice choice );
void updateActionChoicePreview( ChoicePage::InstallChoice choice );
void setupActions();
OsproberEntryList getOsproberEntriesForDevice( Device* device ) const;
void doAlongsideApply();
void setupEfiSystemPartitionSelector();
// Translations support
void updateSwapChoicesTr( QComboBox* box );
bool m_nextEnabled;
PartitionCoreModule* m_core;
QMutex m_previewsMutex;
Choice m_choice;
InstallChoice m_choice;
bool m_isEfi;
QComboBox* m_drivesCombo;
@ -142,6 +145,9 @@ private:
PrettyRadioButton* m_eraseButton;
PrettyRadioButton* m_replaceButton;
PrettyRadioButton* m_somethingElseButton;
QComboBox* m_eraseSwapChoices;
QComboBox* m_replaceSwapChoices;
QComboBox* m_alongsideSwapChoices;
DeviceInfoWidget* m_deviceInfoWidget;

View File

@ -21,6 +21,7 @@
#include "gui/PartitionViewStep.h"
#include "core/DeviceModel.h"
#include "core/PartitionActions.h"
#include "core/PartitionCoreModule.h"
#include "core/PartitionModel.h"
#include "core/KPMHelpers.h"
@ -138,7 +139,7 @@ PartitionViewStep::createSummaryWidget() const
widget->setLayout( mainLayout );
mainLayout->setMargin( 0 );
ChoicePage::Choice choice = m_choicePage->currentChoice();
ChoicePage::InstallChoice choice = m_choicePage->currentChoice();
QFormLayout* formLayout = new QFormLayout( widget );
const int MARGIN = CalamaresUtils::defaultFontHeight() / 2;
@ -470,92 +471,129 @@ PartitionViewStep::onLeave()
}
static PartitionActions::Choices::SwapChoice
nameToChoice( QString name, bool& ok )
{
ok = false;
name = name.toLower();
using namespace PartitionActions::Choices;
// Each return here first sets ok to true, returns enum value
if ( name == QStringLiteral( "none" ) )
return( ok=true, SwapChoice::NoSwap );
else if ( name == QStringLiteral( "small" ) )
return( ok=true, SwapChoice::SmallSwap);
else if ( name == QStringLiteral( "suspend" ) )
return( ok=true, SwapChoice::FullSwap );
else if ( name == QStringLiteral( "reuse" ) )
return( ok=true, SwapChoice::ReuseSwap );
else if ( name == QStringLiteral( "file" ) )
return( ok=true, SwapChoice::SwapFile );
ok = false;
return SwapChoice::NoSwap;
}
void
PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap )
{
// Copy the efiSystemPartition setting to the global storage. It is needed not only in
// the EraseDiskPage, but also in the bootloader configuration modules (grub, bootloader).
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
if ( configurationMap.contains( "efiSystemPartition" ) &&
configurationMap.value( "efiSystemPartition" ).type() == QVariant::String &&
!configurationMap.value( "efiSystemPartition" ).toString().isEmpty() )
{
gs->insert( "efiSystemPartition", configurationMap.value( "efiSystemPartition" ).toString() );
}
else
{
gs->insert( "efiSystemPartition", QStringLiteral( "/boot/efi" ) );
}
QString efiSP = CalamaresUtils::getString( configurationMap, "efiSystemPartition" );
if ( efiSP.isEmpty() )
efiSP = QStringLiteral( "/boot/efi" );
gs->insert( "efiSystemPartition", efiSP );
if ( configurationMap.contains( "ensureSuspendToDisk" ) &&
configurationMap.value( "ensureSuspendToDisk" ).type() == QVariant::Bool )
{
gs->insert( "ensureSuspendToDisk", configurationMap.value( "ensureSuspendToDisk" ).toBool() );
}
else
{
gs->insert( "ensureSuspendToDisk", true );
}
// SWAP SETTINGS
//
// This is a bit convoluted because there's legacy settings to handle as well
// as the new-style list of choices, with mapping back-and-forth.
if ( configurationMap.contains( "userSwapChoices" ) &&
( configurationMap.contains( "ensureSuspendToDisk" ) || configurationMap.contains( "neverCreateSwap" ) ) )
cError() << "Partition-module configuration mixes old- and new-style swap settings.";
if ( configurationMap.contains( "neverCreateSwap" ) &&
configurationMap.value( "neverCreateSwap" ).type() == QVariant::Bool )
{
gs->insert( "neverCreateSwap", configurationMap.value( "neverCreateSwap" ).toBool() );
}
else
{
gs->insert( "neverCreateSwap", false );
}
if ( configurationMap.contains( "ensureSuspendToDisk" ) )
cWarning() << "Partition-module setting *ensureSuspendToDisk* is deprecated.";
bool ensureSuspendToDisk = CalamaresUtils::getBool( configurationMap, "ensureSuspendToDisk", true );
if ( configurationMap.contains( "drawNestedPartitions" ) &&
configurationMap.value( "drawNestedPartitions" ).type() == QVariant::Bool )
{
gs->insert( "drawNestedPartitions",
configurationMap.value( "drawNestedPartitions", false ).toBool() );
}
else
{
gs->insert( "drawNestedPartitions", false );
}
if ( configurationMap.contains( "neverCreateSwap" ) )
cWarning() << "Partition-module setting *neverCreateSwap* is deprecated.";
bool neverCreateSwap = CalamaresUtils::getBool( configurationMap, "neverCreateSwap", false );
if ( configurationMap.contains( "alwaysShowPartitionLabels" ) &&
configurationMap.value( "alwaysShowPartitionLabels" ).type() == QVariant::Bool )
QSet< PartitionActions::Choices::SwapChoice > choices; // Available swap choices
if ( configurationMap.contains( "userSwapChoices" ) )
{
gs->insert( "alwaysShowPartitionLabels",
configurationMap.value( "alwaysShowPartitionLabels", true ).toBool() );
}
else
{
gs->insert( "alwaysShowPartitionLabels", true );
}
// We've already warned about overlapping settings with the
// legacy *ensureSuspendToDisk* and *neverCreateSwap*.
QStringList l = configurationMap[ "userSwapChoices" ].toStringList();
if ( configurationMap.contains( "defaultFileSystemType" ) &&
configurationMap.value( "defaultFileSystemType" ).type() == QVariant::String &&
!configurationMap.value( "defaultFileSystemType" ).toString().isEmpty() )
{
QString typeString = configurationMap.value( "defaultFileSystemType" ).toString();
gs->insert( "defaultFileSystemType", typeString );
if ( FileSystem::typeForName( typeString ) == FileSystem::Unknown )
for ( const auto& item : l )
{
cWarning() << "bad default filesystem configuration for partition module. Reverting to ext4 as default.";
gs->insert( "defaultFileSystemType", "ext4" );
bool ok = false;
auto v = nameToChoice( item, ok );
if ( ok )
choices.insert( v );
}
if ( choices.isEmpty() )
{
cWarning() << "Partition-module configuration for *userSwapChoices* is empty:" << l;
choices.insert( PartitionActions::Choices::SwapChoice::FullSwap );
}
// suspend if it's one of the possible choices; suppress swap only if it's
// the **only** choice available.
ensureSuspendToDisk = choices.contains( PartitionActions::Choices::SwapChoice::FullSwap );
neverCreateSwap = ( choices.count() == 1 ) && choices.contains( PartitionActions::Choices::SwapChoice::NoSwap );
}
else
{
gs->insert( "defaultFileSystemType", QStringLiteral( "ext4" ) );
// Convert the legacy settings into a single setting for now.
if ( neverCreateSwap )
choices.insert( PartitionActions::Choices::SwapChoice::NoSwap );
else if ( ensureSuspendToDisk )
choices.insert( PartitionActions::Choices::SwapChoice::FullSwap );
else
choices.insert( PartitionActions::Choices::SwapChoice::SmallSwap );
}
if ( configurationMap.contains( "enableLuksAutomatedPartitioning" ) &&
configurationMap.value( "enableLuksAutomatedPartitioning" ).type() == QVariant::Bool )
{
gs->insert( "enableLuksAutomatedPartitioning",
configurationMap.value( "enableLuksAutomatedPartitioning" ).toBool() );
}
// These gs settings seem to be unused (in upstream Calamares) outside of
// the partition module itself.
gs->insert( "ensureSuspendToDisk", ensureSuspendToDisk );
gs->insert( "neverCreateSwap", neverCreateSwap );
// OTHER SETTINGS
//
gs->insert( "drawNestedPartitions", CalamaresUtils::getBool( configurationMap, "drawNestedPartitions", false ) );
gs->insert( "alwaysShowPartitionLabels", CalamaresUtils::getBool( configurationMap, "alwaysShowPartitionLabels", true ) );
gs->insert( "enableLuksAutomatedPartitioning", CalamaresUtils::getBool( configurationMap, "enableLuksAutomatedPartitioning", true ) );
QString defaultFS = CalamaresUtils::getString( configurationMap, "defaultFileSystemType" );
if ( defaultFS.isEmpty() )
defaultFS = QStringLiteral( "ext4" );
else
cDebug() << "Partition-module setting *defaultFileSystemType*" << defaultFS;
if ( FileSystem::typeForName( defaultFS ) == FileSystem::Unknown )
{
gs->insert( "enableLuksAutomatedPartitioning", true );
cWarning() << "Partition-module setting *defaultFileSystemType* is bad (" << defaultFS << ") using ext4.";
defaultFS = QStringLiteral( "ext4" );
#ifdef DEBUG_FILESYSTEMS
// This bit is for distro's debugging their settings, and shows
// all the strings that KPMCore is matching against for FS type.
{
Logger::CLog d( Logger::LOGDEBUG );
using TR = Logger::DebugRow< int, QString >;
const auto fstypes = FileSystem::types();
d << "Available types (" << fstypes.count() << ')';
for ( FileSystem::Type t : fstypes )
d << TR( static_cast<int>( t ), FileSystem::nameForType( t ) );
}
#endif
}
gs->insert( "defaultFileSystemType", defaultFS );
// Now that we have the config, we load the PartitionCoreModule in the background
@ -563,7 +601,7 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap )
// and remove the spinner.
QFutureWatcher< void >* watcher = new QFutureWatcher< void >();
connect( watcher, &QFutureWatcher< void >::finished,
this, [ this, watcher ]
this, [ this, watcher, choices ]
{
continueLoading();
watcher->deleteLater();

View File

@ -21,29 +21,34 @@
#include "utils/CalamaresUtilsGui.h"
#include "widgets/ClickableLabel.h"
#include <QComboBox>
#include <QGridLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QBoxLayout>
PrettyRadioButton::PrettyRadioButton( QWidget* parent )
: QWidget( parent )
, m_label( new ClickableLabel )
, m_radio( new QRadioButton )
, m_mainLayout( new QGridLayout )
, m_optionsLayout( nullptr )
{
QHBoxLayout* mainLayout = new QHBoxLayout;
setLayout( mainLayout );
setLayout( m_mainLayout );
m_radio = new QRadioButton;
m_label = new ClickableLabel;
connect( m_label, &ClickableLabel::clicked,
m_radio, &QRadioButton::click );
m_label->setBuddy( m_radio );
m_label->setWordWrap( true );
m_label->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred );
mainLayout->addWidget( m_radio );
mainLayout->addWidget( m_label );
mainLayout->setContentsMargins( 0, 0, 0, 0 );
m_mainLayout->addWidget( m_radio, 0, 0 );
m_mainLayout->addWidget( m_label, 0, 1 );
m_mainLayout->setContentsMargins( 0, 0, 0, 0 );
connect( m_label, &ClickableLabel::clicked,
m_radio, &QRadioButton::click );
connect( m_radio, &QRadioButton::toggled,
this, &PrettyRadioButton::toggleOptions );
}
@ -80,3 +85,32 @@ PrettyRadioButton::buttonWidget() const
{
return m_radio;
}
void
PrettyRadioButton::addOptionsComboBox( QComboBox* box )
{
if ( !box )
return;
if ( !m_optionsLayout )
{
QWidget* w = new QWidget;
m_optionsLayout = new QHBoxLayout;
m_optionsLayout->setAlignment( Qt::AlignmentFlag::AlignLeft );
m_optionsLayout->addStretch( 1 );
w->setLayout( m_optionsLayout );
m_mainLayout->addWidget( w, 1, 1 );
toggleOptions( m_radio->isChecked() );
}
m_optionsLayout->insertWidget( m_optionsLayout->count()-1, box );
}
void
PrettyRadioButton::toggleOptions( bool toggle )
{
if ( m_optionsLayout )
m_optionsLayout->parentWidget()->setVisible( toggle );
}

View File

@ -22,7 +22,17 @@
#include <QRadioButton>
class ClickableLabel;
class QComboBox;
class QGridLayout;
class QHBoxLayout;
/** @brief A radio button with fancy label next to it.
*
* The radio button itself can be retrieved with buttonWidget(),
* and the whole behaves a lot like a label. Extra options can be
* added to the display (options are hidden when the button is
* not selected) with addOptionsComboBox().
*/
class PrettyRadioButton : public QWidget
{
Q_OBJECT
@ -40,9 +50,18 @@ public:
virtual QRadioButton* buttonWidget() const;
/** @brief Add an options drop-down to this button. */
void addOptionsComboBox( QComboBox* );
protected slots:
/// Options are hidden when the radio button is off
void toggleOptions( bool checked );
protected:
ClickableLabel* m_label;
QRadioButton* m_radio;
QGridLayout* m_mainLayout;
QHBoxLayout* m_optionsLayout;
};
#endif // PRETTYRADIOBUTTON_H

View File

@ -85,6 +85,8 @@ ReplaceWidget::reset()
void
ReplaceWidget::applyChanges()
{
auto gs = Calamares::JobQueue::instance()->globalStorage();
PartitionModel* model = qobject_cast< PartitionModel* >( m_ui->partitionTreeView->model() );
if ( model )
{
@ -93,7 +95,9 @@ ReplaceWidget::applyChanges()
{
Device* dev = model->device();
PartitionActions::doReplacePartition( m_core, dev, partition );
PartitionActions::doReplacePartition(
m_core, dev, partition,
{ gs->value( "defaultFileSystemType" ).toString(), QString() } );
if ( m_isEfi )
{
@ -102,17 +106,13 @@ ReplaceWidget::applyChanges()
{
PartitionInfo::setMountPoint(
efiSystemPartitions.first(),
Calamares::JobQueue::instance()->
globalStorage()->
value( "efiSystemPartition" ).toString() );
gs->value( "efiSystemPartition" ).toString() );
}
else if ( efiSystemPartitions.count() > 1 )
{
PartitionInfo::setMountPoint(
efiSystemPartitions.at( m_ui->bootComboBox->currentIndex() ),
Calamares::JobQueue::instance()->
globalStorage()->
value( "efiSystemPartition" ).toString() );
gs->value( "efiSystemPartition" ).toString() );
}
}

View File

@ -3,22 +3,37 @@
# etc.) use just /boot.
efiSystemPartition: "/boot/efi"
# Make sure an autogenerated swap partition is big enough for hibernation in
# automated partitioning modes. Swap can be disabled through *neverCreateSwap*.
# In autogenerated partitioning, allow the user to select a swap size?
# If there is exactly one choice, no UI is presented, and the user
# cannot make a choice -- this setting is used. If there is more than
# one choice, a UI is presented.
#
# When *ensureSuspendToDisk* is true, swap is never smaller than physical
# memory, follows the guideline 2 * memory until swap reaches 8GiB.
# When *ensureSuspendToDisk* is false, swap size scales up with memory
# size until 8GiB, then at roughly half of memory size.
# Legacy settings *neverCreateSwap* and *ensureSuspendToDisk* correspond
# to values of *userSwapChoices* as follows:
# - *neverCreateSwap* is true, means [none]
# - *neverCreateSwap* is false, *ensureSuspendToDisk* is false, [small]
# - *neverCreateSwap* is false, *ensureSuspendToDisk* is true, [suspend]
#
#
# Default is true.
ensureSuspendToDisk: true
# Autogenerated swap sizes are as follows:
# - *suspend*: Swap is always at least total memory size,
# and up to 4GiB RAM follows the rule-of-thumb 2 * memory;
# from 4GiB to 8 GiB it stays steady at 8GiB, and over 8 GiB memory
# swap is the size of main memory.
# - *small*: Follows the rules above, but Swap is at
# most 8GiB, and no more than 10% of available disk.
# In both cases, a fudge factor (usually 10% extra) is applied so that there
# is some space for administrative overhead (e.g. 8 GiB swap will allocate
# 8.8GiB on disk in the end).
userSwapChoices:
- none # Create no swap, use no swap
# - reuse # Re-use existing swap, but don't create any
- small # Up to 4GB
- suspend # At least main memory size
# - file # To swap file instead of partition (unsupported right now)
# Never create swap partitions in automated partitioning modes.
# If this is true, ensureSuspendToDisk is ignored.
# Default is false.
neverCreateSwap: false
# LEGACY SETTINGS (these will generate a warning)
# ensureSuspendToDisk: true
# neverCreateSwap: false
# Correctly draw nested (e.g. logical) partitions as such.
drawNestedPartitions: false
@ -38,6 +53,8 @@ alwaysShowPartitionLabels: true
#
# Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs
# If nothing is specified, Calamares defaults to "ext4".
#
# Names are case-sensitive and defined by KPMCore.
defaultFileSystemType: "ext4"
# Show/hide LUKS related functionality in automated partitioning modes.