Commit Graph

160 Commits

Author SHA1 Message Date
Adriaan de Groot
aaae1507cd [locale] Convenience function for TZ splitting 2018-04-12 11:51:50 -04:00
Adriaan de Groot
3636226425 [locale] Document change to the way GeoIPURL is handled. 2018-04-12 10:18:15 -04:00
Adriaan de Groot
fe98b789f0 [locale] Document the settings in locale.conf
- The geoipUrl is weird, because it is not a complete URL.
   Document that, and what kind of data is expected.

FIXES #920
2018-04-12 10:15:19 -04:00
Adriaan de Groot
d5623af8ef [locale] Refactor geoip handling
- Configuration **must** be a complete URL. The implementation no
   longer appends /json to the URL.
2018-04-12 10:11:48 -04:00
Adriaan de Groot
c0d5a153d4 [locale] Refactor GeoIP handler
- Move GeoIP to its own cpp file
 - Provide a default implementation of the URL mangler
2018-04-12 09:54:22 -04:00
Adriaan de Groot
445f181cc3 [locale] Start refactoring geoip handling
- Introduce a handler interface for GeoIP providers
 - Move the implementation of FreeGeoIP into a struct of its own
2018-04-12 09:45:48 -04:00
Adriaan de Groot
7e5c91aae6 [locale] Reduce debugging bla bla 2018-04-04 11:42:38 -04:00
Adriaan de Groot
9fe85e592f Merge branch '3.1.x-stable' 2018-04-04 11:10:34 -04:00
Adriaan de Groot
b8e6144553 [locale] Document how the locale entry in Global Storage works.
- Make the BCP47 value explicitly lower-case.
 - Add some constness and encapsulation.
 - Fix up documentation in the packages module explaining the
   format of the ${LOCALE} replacement (now forced to lower-case,
   but it is also only the language part, not e.g. en-UK).

FIXES #922
2018-04-03 13:07:36 -04:00
Adriaan de Groot
20e9c2c8e3 Merge branch '3.1.x-stable' 2018-03-29 17:35:36 -04:00
Adriaan de Groot
32a1c84935 [locale] Document the settings in locale.conf
- The geoipUrl is weird, because it is not a complete URL.
   Document that, and what kind of data is expected.

FIXES #920
2018-03-29 16:50:02 -04:00
Adriaan de Groot
3f77fb1d16 [modules] Use new convenience logging methods 2018-02-12 11:58:34 -05:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
62c03d6857 Merge branch '3.1.x-stable' 2017-11-06 05:43:29 -05:00
Adriaan de Groot
35f5612ec1 [locale] Fix GeoIP (reported by demm, crazy)
- data has already been read, don't try to read more from the QNM reply
 - regression introduced in 7e25909e
2017-11-01 11:07:18 +01:00
Gabriel Craciunescu
fc53438be9 locale.conf: fix localeGenPath comment 2017-10-30 19:21:51 +01:00
Gabriel Craciunescu
2e80ab98d7 locale.conf: explain what all the settings are about 2017-10-30 18:49:03 +01:00
Adriaan de Groot
9f84519e87 Merge branch '3.1.x-stable'
- pull in northern-locations fixes
 - pull in testing yaml-config
2017-10-12 14:00:24 -03:00
Adriaan de Groot
8b76b861ad Code-formatting, add (unused for now) overload of getLocationPosition() 2017-10-12 12:26:50 -03:00
Adriaan de Groot
00fa7bff1c Code-formatting, add copyright notice 2017-10-12 07:08:21 -07:00
Adriaan de Groot
78031636af Correct for distortion of globe.
In the timezone widget, locations in the far north -- Inuvik,
Thule, Longyearbyen -- were displayed too far south, because the
map location calculation assumes a linear gradient, which places
90 degrees north at about 70 degrees. Change calculation to
pretend the world is flat south of 62 degrees north, and then
'bend' the remaining 28 degrees of latitude to the top of the
image. This puts most places in the right spot, although Yellowknife
is now on the south shore of Great Slave.

Fort Nelson should be north of Dawson Creek, too -- the math still
needs a little work.

While here, put Antarctica in the south, otherwise Rothera keeps
showing up in Greenland.
2017-10-09 13:14:53 -07:00
Adriaan de Groot
bd4ee9320d Clang: warnings--, drop unused WindowFlags parameter 2017-09-26 11:51:11 +02:00
Adriaan de Groot
337903db09 Clang: reduce warnings about overriden destructors 2017-09-20 09:11:18 -04:00
Adriaan de Groot
da4fa6a63a Fix link / library name 2017-09-13 19:03:56 +02:00
Adriaan de Groot
25de3aca6e Clang: don't shadow global int timezone 2017-09-11 09:42:21 +02:00
Philip
d2964cc71c [locale] default to the states
- see also 239c7534d2
2017-09-10 22:33:25 +01:00
Adriaan de Groot
7e25909e18 YAML: refactor YAML-exception reporting
- both NetInstall (group data) and Locale (GeoIP) use network
   data returned as a source of YAML data. Try to explain
   parsing errors for both.

FIXES #786
2017-09-06 07:51:22 -04:00
Adriaan de Groot
e9e6834dd8 Locale: translate OK, Cancel buttons in language selection (reported on IRC) 2017-09-04 07:57:20 -04:00
Adriaan de Groot
9737041e66 Locale: extend prettyStatus()
Add description of language and number formats to pretty status.
This is shown in the summary page. Refactor a little to produce
the strings only in one place. Constify methods.

FIXES: #564
2017-08-08 17:29:44 +04:30
Adriaan de Groot
196b1567db Modules: remove boilerplate module.desc 2017-08-02 11:05:32 -04:00
Adriaan de Groot
8ea14d7957 Release: add copyright to files I've touched 2017-06-21 08:27:10 -04:00
Adriaan de Groot
e1a5af6529 Locale: when entering page, guess language.
If user picks an installer language on the welcome page, then
the system language follows that setting -- but only after the
first action where Calamares must guess the system language
based on location. So guess on entry, so that system language
follows installer language.

FIXES #688.
2017-06-07 03:52:44 +06:00
Adriaan de Groot
d545904f5c Locale: don't overwrite explicit choice
If the user selects a language from the dialog (by clicking 'change'),
then preserve that explicit choice even when clicking on another
location which would reset the language based on the installer-
language.
2017-06-06 21:08:15 +06:00
Adriaan de Groot
89753a35f0 Locale: double-click to close locale-selection dialog 2017-06-06 09:31:22 -05:00
Adriaan de Groot
4df0de200b Locale: refactor to update labels in one place only 2017-06-06 09:22:21 -04:00
Adriaan de Groot
e0988a5e19 Timezones: make some TZ+0 pixels transparent, since otherwise it claims Amsterdam 2017-06-06 09:22:21 -04:00
Adriaan de Groot
17b8a9d884 Logging: format the multi-line warning about no-supported-languages 2017-06-06 09:10:13 -04:00
Rohan Garg
f20f9cca2e
Pointless ctor is pointless 2017-03-15 16:47:47 +01:00
Rohan Garg
4a55802b18 Allow passing a LOCALE variable in the package list
This allows for installing locale packages. This can be achieved
by adding a entry of the format packagename-${LOCALE} in the
packages configuration module.
2016-12-20 16:57:23 +01:00
Teo Mrnjavac
e2b2d761c2 Do not LINK_PUBLIC by default. 2016-12-07 16:37:29 +01:00
Teo Mrnjavac
6f3dc32bfe Config file comment. 2016-09-26 10:57:56 +02:00
Kevin Kofler
1b2cce4be3 Fix locale filtering for UTF-8 on Fedora.
locale -a returns the locales using ".utf8" names rather than ".UTF-8".
The case-insensitive match does not help because it is "utf8" rather
than "UTF-8". So we need to match both with and without the dash.
2016-09-26 01:47:58 +02:00
Andrius Štikonas
9f0ca042fe Port away from most cases of Q_FOREACH to C++11 ranged for loop.
In order to avoid deep copies, Qt containers over which we iterate must be const
The remaining unported cases require qAsConst (Qt 5.7) or std::as_const (C++17)
2016-09-01 16:46:14 +01:00
Teo Mrnjavac
1a1657a7fc Set timezone on the live system too. 2016-08-26 17:20:48 +02:00
Teo Mrnjavac
f2a087c348 Write timezone correctly. 2016-08-26 15:05:42 +02:00
Teo Mrnjavac
8daac2cba5 Recompute defaults after init. 2016-08-18 16:18:24 +02:00
Teo Mrnjavac
3146d2093e Add support for freegeoip.net in locale module.
This is disabled by default. To enable, provide a geoipUrl setting in
locale.conf.
Relies on the RequirementsChecker output, in the welcome module.
2016-08-18 15:38:41 +02:00
Teo Mrnjavac
cd1268cb63 Fix defaults. 2016-08-18 15:30:08 +02:00
Teo Mrnjavac
9a1c65a23e Style. 2016-08-18 15:29:32 +02:00
Philip Müller
239c7534d2 [locale] default to the states
Since our default locale setting is **en_US** anyway, it makes more sense to default to New York.
2016-08-15 10:06:06 +02:00
Teo Mrnjavac
e6cabe277b Fix locale names and user-visible locale names. 2016-08-10 16:10:06 +02:00
Teo Mrnjavac
160d00a47a Write locales map into GS. 2016-08-10 11:47:24 +02:00
Teo Mrnjavac
8f44f76443 Use LocaleConfiguration in LocalePage. Add relevant widgets.
Also fix error reporting.
Move guesswork to LocaleConfiguration + a total rewrite.
Locale is now a LocaleConfiguration, that converts to QMap.
2016-08-10 11:45:22 +02:00
Teo Mrnjavac
f60f1c6220 New LocaleConfiguration class which also deals with locale guesswork. 2016-08-10 11:43:13 +02:00
Teo Mrnjavac
471d94a02e Read country codes from zone.tab. 2016-08-10 11:43:13 +02:00
Teo Mrnjavac
5e12096e4b Only use UTF-8 locales. 2016-08-02 13:25:33 +02:00
Teo Mrnjavac
39782f80c9 Fix warnings. 2016-07-27 13:38:30 +02:00
Teo Mrnjavac
9450290212 Add support for locales in /usr/share/i18n/SUPPORTED 2016-05-27 17:14:17 +02:00
Teo Mrnjavac
1b1d78cf51 Improve locale.gen file parser. 2016-04-01 15:30:35 +02:00
Kevin Kofler
bcab8b2bfe [locale] Do not call timedatectl in a chroot, it is not safe
(timedatectl talks to a running timedated over D-Bus.) And we already
have code that works in a chroot below.
2016-01-15 02:44:27 +01:00
Teo Mrnjavac
e120f2a74c PluginFactory in Locale module. 2015-09-15 16:48:42 +02:00
Rohan Garg
18218b250e Adjust /etc/timezone if it exists 2015-09-15 16:48:41 +02:00
Rohan Garg
a98742c32c Use timedatectl provided by systemd to set the time on the target
Use tools provided by systemd to set the time and fall back to
manually doing it via linking /etc/localtime
2015-09-15 16:48:41 +02:00
Teo Mrnjavac
42e465aa10 CalamaresUtils::System is now a class. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
bf885d65db chroot calls are now generic "target env" calls. 2015-09-15 16:48:41 +02:00
Teo Mrnjavac
b75b13b466 Make sure to update GlobalStorage on every timezone change. 2015-07-15 17:48:59 +02:00
Teo Mrnjavac
fefa736501 Use <strong> instead of <b> in all instances. 2015-04-13 14:58:34 +02:00
Gormogon
e2d05cb9f2 Align Pointers 2015-02-25 19:57:19 -05:00
Teo Mrnjavac
92eae47a1d Const correctness. 2015-02-20 16:21:30 +01:00
Teo Mrnjavac
71851ed274 Process user-visible strings in TimezoneWidget and LocalePage. 2015-02-20 16:21:30 +01:00
Teo Mrnjavac
cf64b2ce27 Allow zone subdivisions in timezones list.
CAL-191 #close Please test and reopen if it's still broken.
2015-02-20 14:54:52 +01:00
Teo Mrnjavac
171248ad4f Add isBackEnabled checks to all ViewSteps. 2015-01-29 22:46:07 +01:00
Kevin Kofler
75adfa03fc locale: timezonewidget: Use the system default font.
Don't hardcode the Cantarell font.
2014-12-06 00:15:55 +01:00
Teo Mrnjavac
5bb7755925 Remove unnecessary debug output. 2014-11-26 19:10:17 +01:00
Teo Mrnjavac
5fdca37db5 Focus fix in Locale page. 2014-11-26 18:52:44 +01:00
Teo Mrnjavac
472590669f Adding stuff to GlobalStorage works much better it is actually executed. 2014-11-26 18:47:46 +01:00
Teo Mrnjavac
925632800b Debug output for lcLocale 2014-11-26 17:47:06 +01:00
Kevin Kofler
b79618aa15 locale: Move the string processing out of the loop. 2014-11-26 17:12:18 +01:00
Teo Mrnjavac
88dfd7fa10 Fix system locale string + allow 3 letter language codes. 2014-11-26 11:30:06 +01:00
Kevin Kofler
e7d0f205a4 locale: Support distributions without locale-gen.
If /etc/locale.gen (or the configured localeGenPath) does not exist,
assume that all the supported languages are already built into the
locale archive, and retrieve the list from "locale -a".

The list will then contain lines with only the locale rather than
locale + space + encoding, but that should not affect any of the rest of
the code. UTF-8 locales will still contain the string "UTF-8" (as part
of the ".UTF-8" suffix), we will not write a locale.gen file if we don't
have locale-gen, and everything else just strips away the encoding.
2014-11-25 20:03:37 +01:00
Kevin Kofler
440b38addf locale: Optimize guessLCLocale by moving function calls out of loops. 2014-11-25 19:44:16 +01:00
Kevin Kofler
bcbe5103b9 locale: Don't assume 2-letter language codes.
Some languages have 3-letter codes. So instead of splitting the output
of QLocale::name, use QLocale::language and the static
QLocale::languageToString.
2014-11-25 19:41:01 +01:00
Teo Mrnjavac
6049267cf6 Load lcLocale value into GlobalStorage. Also allow localeGenPath setting
in locale.conf.
2014-11-25 17:43:12 +01:00
Teo Mrnjavac
2ca58c6f91 Massive cleanup in LocalePage. Add LCLocale setting, with autodetect. 2014-11-25 17:41:27 +01:00
Teo Mrnjavac
100f08518b Build LCLocale dialog. 2014-11-25 17:40:38 +01:00
Teo Mrnjavac
ddfb8dfbc5 Add relevant strings. 2014-11-25 17:40:24 +01:00
Teo Mrnjavac
6cb072acc4 New LC LOCALE picker dialog. 2014-11-25 17:40:24 +01:00
Teo Mrnjavac
e5c3888be2 Allow multiple CALAMARES_RETRANSLATE blocks in the same widget. 2014-11-11 15:12:44 +01:00
Teo Mrnjavac
945b59748a Add RETRANSLATE macro to CalamaresUtils::Retranslator. 2014-11-11 15:12:44 +01:00
Teo Mrnjavac
6f3898a73d Use Retranslator in LocalePage. 2014-11-11 12:44:32 +01:00
Teo Mrnjavac
dec452f9b5 Make LocalePage retranslatable. 2014-11-10 14:56:29 +01:00
Teo Mrnjavac
8651b33843 Make the locale viewmodule use WaitingWidget. 2014-10-07 16:07:27 +02:00
Teo Mrnjavac
d97bb47f09 Add proper QResrouce system to libcalamaresui, finish up prepare checks
This also adds ImageRegistry, a SVG cache, a bunch of utility functions
for shared pixmaps in CalamaresUtilsGui and renames several qrc files
in viewmodules.
2014-08-26 18:24:51 +02:00
Teo Mrnjavac
1bb6603998 Move spinner widget to libcalamaresui. 2014-08-26 18:24:51 +02:00
Daniel Hillenbrand
38f32bfd56 locale: make sure /etc/localtime doesn't exist
If /etc/localtime exists in source image, creating a new symlink will fail
and prevent the installer from doing it's job.
2014-08-19 20:47:46 +02:00
Teo Mrnjavac
8f10c21e5b Big configuration overhaul.
Module descriptors are now module.desc, no configuration allowed inside.
Module config files are <modulename>.conf, installed in
share/calamares/modules.
settings.conf is read from /etc/calamares, then share/calamares, and if
running with --debug also in the current dir.
Module config files are read from /etc/calamares/modules, then
share/calamares/modules, and if running with --debug also in
src/modules/<modulename> relative to the current dir.
2014-08-06 11:54:45 +02:00
Teo Mrnjavac
1d6c41e94d A timezone is a file, not a directory. 2014-08-04 21:48:04 +02:00
Teo Mrnjavac
271b0945c9 Create jobs in locale viewmodule. 2014-08-01 16:29:19 +02:00
Teo Mrnjavac
34c5ac3182 Add SetTimezoneJob to locale viewmodule. 2014-08-01 16:28:29 +02:00
Teo Mrnjavac
e3741c4d26 Make the locale viewmodule load the initial timezone from config. 2014-07-15 11:35:05 +02:00