Автор Гілка: Робимо понеділок першим днем тижня у календарі  (Прочитано 4564 раз)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
отож, проблема:
типовий українець звик, що тиждень починається з понеділка. ґномівський календар, однак, в англійській локалі показує першим днем тижня неділю. та й в українській локалі він в деяких дистрах бува показує не те, що треба.

вирішення:

редагуємо в /usr/share/i18n/locales/ваша_локаль (яку можна дізнатися командою locale)
first_weekday 2
first_workday 2
2 - відповідає понеділку.

вуаля!
літературка: http://soniahamilton.wordpress.com/2008/02/06/change-first-day-of-week-in-ubuntus-gnome-calendar/
подяка: knedlyk за лінк та просвітлення
« Змінено: 2008-05-08 23:42:52 від noddeat »
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
відішліть, будь ласка, латку в «компетентні органи»
Fedora 35 (x86-64)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
відішліть, будь ласка, латку в «компетентні органи»
на лончпад вишлю, а якщо це баг всього X.org, то не знаю куди.

на жаль, чогось не можу відредагувати свій пост. Отже, треба
first_weekday і first)workday 1, а не 2. І після цього виконати:

locale-gen
killall gnome-panel
для оновлення локалі та перезавантаження календаря.



Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
відішліть, будь ласка, латку в «компетентні органи»
на лончпад вишлю, а якщо це баг всього X.org, то не знаю куди.
локалі стосуються glibc, ось тут є сторінка про питання, пов’язані з локалями, там є також список авторів локалей, з якими можна спробувати зв’язатися, або можна просто створити нову ваду і вкласти латку
Fedora 35 (x86-64)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Ви щось не те творите, шановні. Цитую з української локалі:

Цитата
% Define the first day of the week to be displayed in a calendar.
% This weekday is relative to the date defined in the <week> keyword.
first_weekday 1

% Define the first workday relative to the <week> keyword
first_workday 1

Цитата
% Week description, consists of three fields:
% 1. Number of days in a week.
% 2. Gregorian date that is a first weekday (19971130 for Sunday, 19971201 for Monday).
% 3. The weekday number to be contained in the first week of the year.
%
% ISO 8601 conforming applications should use the values 7, 19971201 (a
% Monday), and 4 (Thursday), respectively.
week 7;19971201;4

Як бачите, тиждень починається з понеділка, і перший робочий день тижня - це перший день тижня.
Як на мене, все правильно. У мене локаль uk_UA-2.1.12. Використайте команду "locale -ck LC_IDENTIFICATION" щоб подивитися назву і номер версії локалі.

[Fedora Linux]

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1929
  • Карма: +5/-0
перепрошую, я для перевірки зробив
$ LC_ALL=uk_UA.UTF-8 cal
і отримав
   травень 2008
нд пн вт ср чт пт сб
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
але виявляється, ця свиня cal ігнорує локаль і має ключ (!!!) який день показувати першим :(
Fedora 35 (x86-64)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Підтримка локалі додана в 2001-му році але вимкнена в коді (#if 0):

#if 0<-><------><------><------>/* setting week1stday is against man page */
/*
 * What *is* the first day of the week? Note that glibc does not
 * provide any information today, it (almost) always answers Monday.
 * Sunday is the Jewish and Christian tradition.
 * Sometimes an answer is built into the language:
 * German calls Wednesday "Mittwoch", so starts at Sunday.
 * Portuguese calls Monday "segunda-feira", so starts at Sunday.
 * Russian calls Friday "pyatnitsa", so starts at Monday.
 * ISO 8601 decided to start at Monday.
 *
 * The traditional Unix cal utility starts at Sunday.
 * We start at Sunday and have an option -m for starting at Monday.
 *
 * At some future time this may become -s for Sunday, -m for Monday,
 * no option for glibc-determined locale-dependent version.
 */
#ifdef HAVE_LANGINFO_H
<------>week1stday = (int)(nl_langinfo(_NL_TIME_FIRST_WEEKDAY))[0];
#endif
#endif

Якщо код відкоментувати і перекомпілювати пакет, то все працює як слід:
-(~/rpmbuild/SPECS:$)-> cat ~/rpmbuild/SOURCES/util-linux-ng-2.13-week1stday.patch
diff -rub util-linux-ng-2.13.1.orig/misc-utils/cal.c util-linux-ng-2.13.1/misc-utils/cal.c
--- util-linux-ng-2.13.1.orig/misc-utils/cal.c      2008-01-16 11:31:41.000000000 +0200
+++ util-linux-ng-2.13.1/misc-utils/cal.c      2008-05-14 14:46:08.000000000 +0300
@@ -285,7 +285,7 @@
       }
 #endif
 
-#if 0                        /* setting week1stday is against man page */
+#if 1                        /* setting week1stday is against man page */
 /*
  * What *is* the first day of the week? Note that glibc does not
  * provide any information today, it (almost) always answers Monday.

-(~/rpmbuild/SPECS:$)-> cal
    травень 2008    
пн вт ср чт пт сб нд
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Можна сконтактувати з розробниками і попросити їх дозволити цей код. Все таки ситуація з локалями значно покращилася з 2001-го року.
[Fedora Linux]

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Цитата
language="uk"
territory="UA"
audience="general"
application="general"
abbreviation="ULU-2.1.12"
revision="2.1.12"
date="2006-05-20"
category="i18n:2002;UTF-8;;;;;;;;;;;"
identification-codeset="UTF-8"
може, це убунту-специфічний баг? бо локаль така сама, а там були двійки замість одиниць. поки що не буду зголошувати в glibc, зголосив лише на лончпад.
« Змінено: 2008-05-14 23:44:34 від noddeat »
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній knedlyk

  • Дописувач
  • **
  • дописів: 99
  • Карма: +0/-0
  • Archlinux форева!
Так, це убунту специфічний баг. Я попробував Arch, Slackware i Zenwalk, в них все ОК з українською локаллю. А от убунту вимахується.

Відсутній knedlyk

  • Дописувач
  • **
  • дописів: 99
  • Карма: +0/-0
  • Archlinux форева!
До речі, то саме в Убунту 8.10 та 9.04 - так і залишилося... Треба ручками поправляти.

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
До речі, то саме в Убунту 8.10 та 9.04 - так і залишилося... Треба ручками поправляти.
номінував на реліз ,може воно пофікситься тепер. всі, хто зареєстрований на лончпаді, зайдіть сюди:
https://bugs.launchpad.net/ubuntu/+source/belocs-locales-data/+bug/229757
та клікніть «Nominate for release»
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"