Strona 1 z 1

Kody nazw miesięcy w dopełniaczu w LibO 3.5

: sob gru 31, 2011 3:55 pm
autor: quest-88
Tworzę ten wątek jak rozwinięcie dyskusji Nazwa miesiąca w dopełniaczu. Jest to, tak myślę, ważna kwestia, ponieważ jedna zmiana nieodwracanie (ale nie negatywnie) zmieni treść arkuszy kalkulacyjnych u wszystkich użytkowników.

Obecny kod dla daty to D MMMM YYYY i wypluwa on np. 10 grudzień 2011 (miesiąc w mianowniku).

Pomysł jest taki, aby kod dla dopełniacza brzmiał D MMMM YYYY "r.", czego efektem byłoby wynik 10 grudnia 2011 r. Można też dopełniacz wydobyć poprzez dopisanie słowa "roku" do kodu, co oczywiście skutkuje dłuższą datą tj. 10 grudnia 2011 roku.

Byłaby to wtedy po prostu dodatkowa opcja, a wszystkie utworzone dotychczas arkusze pozostałyby bez zmian (bądź też należałoby je masowo, manualnie edytować i zmieniać).

Można też nazwę w dopełniaczu przestawić na obecny kod (domyślny D MMMM YYYY), a dla nazw w mianowniku wprowadzić dodatkowe znaki w kodzie (np. dodać kropkę tzn. kod D. MMMM YYYY wyplułby 10 grudzień 2011). Skutek byłby taki, że każdemu użytkownikowi, który dotychczas stworzył arkusz z datą, zmienilibyśmy mu (bez jego wiedzy) nazwę na poprawną...

Mamy więc do wyboru następujące opcje:

Mianownik bez zmian (także bez zmian w arkuszach), dopełniacz po dodaniu kodu "r." (D MMMM YYYY "r.") lub "roku" (D MMMM YYYY "roku")

Nazwy w dopełniaczu są domyślną opcją, a nazwy w mianowniku występują przez zmianę kodu (jeszcze nie wiem jak, ale najpewniej jest to do zrobienia).

Aktualnie nazwy miesięcy w dopełniaczu są opcjonalne i można je włączyć dodając "r." (z cudzysłowem) do kodu.

Uwaga! Zmiany nad którymi dyskutujemy nie są dostępne w żadnej publicznej kompilacji LibreOffice.

Ps. zmianom uległy również skróty dni tygodni z Nd, Pn, Wt, Śr, Cz, Pt, So na niedz., pon., wt., śr., czw., pt., sob. Ważący głos za zmianą miała wypowiedź językoznawcy Mirosława Bańko z PWN.
http://poradnia.pwn.pl/lista.php?id=1788

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: sob gru 31, 2011 8:05 pm
autor: Jan_J
Pomysł uporządkowania formatów jest jak najbardziej słuszny. Z marszu mam kilka uwag:
* rozsądek nakazywałby tak zaprojektować specyfikator formatu, by dało się do niego wstawić dowolny stały tekst. Dlatego przyjęcie ad hoc kropki jako metaznaku nie bardzo mi się podoba -- choć nawiązuje do tradycji pisania liczebników porządkowych z kropką właśnie, co czyni je nieco wdzięczniejszym, niż moje doraźnie wprowadzone MMMMM. Z drugiej strony, kopka przy MM znaczyłaby co innego niż przy MMMM -- to jest bez sensu.
* przyrostki "roku" / "r." są tradycyjnymi końcówkami daty; można by je również ustandaryzować (forma długa/krótka) tak, ”y całość dała się spójnie wykorzystać także w innych językach.
* nie 2012 "roku", tylko 2012"~roku", gdzie ~ symbolizuje spację klejącą. Skoro już ma być automat, to niech preferuje dobre praktyki, na które “w boju” ludzie nie mają czasu ani głowy.

<OT>Chyba się w roku~2011 już nie odezwę, więc przy okazji składam Wam Wszystkim życzenia pomyślności w nadchodzącym 2012~roku.</OT>

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: sob gru 31, 2011 10:29 pm
autor: Raknor
Idąc w ślady Litewskie -> http://cgit.freedesktop.org/libreoffice ... /lt_LT.xml
Można zrobić takie kody (ewentualnie poprzestawiać szyk dodatkowo):

Kod: Zaznacz cały

    <FormatElement msgid="DateFormatskey0" default="true" type="medium" usage="DATE" formatindex="18">
      <FormatCode>YYYY-MM-DD</FormatCode>
      <DefaultName>ISO 8601</DefaultName>
    </FormatElement>
    <FormatElement msgid="DateFormatskey1" default="true" type="long" usage="DATE" formatindex="19">
      <FormatCode>YYYY "r." MMMM DD "d."</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey2" default="false" type="long" usage="DATE" formatindex="20">
      <FormatCode>YYYY "roku" MMMM "miesiąca" D "dnia"</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="21">
      <FormatCode>YYYY-MM-DD</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey4" default="false" type="long" usage="DATE" formatindex="22">
      <FormatCode>YYYY "roku" MMMM D "dnia"</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey5" default="false" type="long" usage="DATE" formatindex="23">
      <FormatCode>YYYY "r." MMMM D "dnia"</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey6" default="false" type="long" usage="DATE" formatindex="24">
      <FormatCode>YYYY "r." MMM D "d." DDD</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey7" default="false" type="long" usage="DATE" formatindex="25">
      <FormatCode>YYYY "roku" MMMM D "d."</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey8" default="false" type="long" usage="DATE" formatindex="26">
      <FormatCode>YYYY "r." MMMM D "d." DDDD</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey9" default="false" type="long" usage="DATE" formatindex="27">
      <FormatCode>YY MMM NN D</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="28">
      <FormatCode>YY MMM DD NN</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey11" default="false" type="long" usage="DATE" formatindex="29">
      <FormatCode>YYYY MMMM NN D</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="30">
      <FormatCode>YYYY MMMM NNNND</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey13" default="true" type="short" usage="DATE" formatindex="31">
      <FormatCode>MM-DD</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey14" default="false" type="medium" usage="DATE" formatindex="32">
      <FormatCode>YY-MM-DD</FormatCode>
      <DefaultName>ISO 8601</DefaultName>
    </FormatElement>
    <FormatElement msgid="DateFormatskey15" default="false" type="medium" usage="DATE" formatindex="33">
      <FormatCode>YYYY-MM-DD</FormatCode>
      <DefaultName>ISO 8601</DefaultName>
    </FormatElement>
    <FormatElement msgid="DateFormatskey16" default="false" type="medium" usage="DATE" formatindex="34">
      <FormatCode>YY-MM</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey17" default="false" type="medium" usage="DATE" formatindex="35">
      <FormatCode>MMM-DD</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey18" default="false" type="medium" usage="DATE" formatindex="36">
      <FormatCode>MMMM</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey19" default="false" type="medium" usage="DATE" formatindex="37">
      <FormatCode>YY QQ</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey20" default="false" type="medium" usage="DATE" formatindex="38">
      <FormatCode>WW</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey21" default="false" type="medium" usage="DATE" formatindex="50">
      <FormatCode>YYYY MMMM DD NN</FormatCode>
    </FormatElement>
Idąc w ślady Ruskie -> http://cgit.freedesktop.org/libreoffice ... /ru_RU.xml
Można zrobić takie kody (ewentualnie poprzestawiać szyk dodatkowo):

Kod: Zaznacz cały

    <FormatElement msgid="DateFormatskey1" default="true" type="short" usage="DATE" formatindex="18">
      <FormatCode>D.M.YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey9" default="true" type="long" usage="DATE" formatindex="19">
      <FormatCode>NNNNDD MMMM, YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey8" default="true" type="medium" usage="DATE" formatindex="20">
      <FormatCode>DD.MM.YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="21">
      <FormatCode>DD.MM.YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey10" default="false" type="long" usage="DATE" formatindex="22">
      <FormatCode>D MMM, YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey11" default="false" type="long" usage="DATE" formatindex="23">
      <FormatCode>D MMM, YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="24">
      <FormatCode>D. MMM. YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="25">
      <FormatCode>D MMMM, YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
      <FormatCode>D. MMMM YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey13" default="false" type="long" usage="DATE" formatindex="27">
      <FormatCode>NN, D MMM, YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="28">
      <FormatCode>NN DD.MMM YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey14" default="false" type="long" usage="DATE" formatindex="29">
      <FormatCode>NN, D MMMM, YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="30">
      <FormatCode>NNNND MMMM, YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey18" default="false" type="short" usage="DATE" formatindex="31">
      <FormatCode>MM-DD</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey19" default="false" type="medium" usage="DATE" formatindex="32">
      <FormatCode>YY-MM-DD</FormatCode>
      <DefaultName>ISO 8601</DefaultName>
    </FormatElement>
    <FormatElement msgid="DateFormatskey20" default="false" type="medium" usage="DATE" formatindex="33">
      <FormatCode>YYYY-MM-DD</FormatCode>
      <DefaultName>ISO 8601</DefaultName>
    </FormatElement>
    <FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="34">
      <FormatCode>MM.YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="35">
      <FormatCode>DD.MMM</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="36">
      <FormatCode>MMMM</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey6" default="false" type="medium" usage="DATE" formatindex="37">
      <FormatCode>QQ YY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey21" default="false" type="medium" usage="DATE" formatindex="38">
      <FormatCode>WW</FormatCode>
    </FormatElement>

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: pn sty 02, 2012 7:42 pm
autor: Arghil
Wydaje mi się, że treść już utworzonych dokumentów nie powinna się zmieniać w zależności od wersji programu. Proponuje zostawić kod dla mianownika taki jak jest a dla dopełniacza dodać nowy.

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: czw sty 05, 2012 8:40 pm
autor: Raknor
Zastosowana poprawka:

Kod: Zaznacz cały

    <FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
      <FormatCode>D MMMM YYYY "r."</FormatCode>
    </FormatElement>
wprowadziła więcej zamieszania niż pożytku. Otóż w efekcie jej wprowadzenia, wszystkie miesiące są teraz w dopełniaczu.
Zatem, najprostszym sposobem dojścia do jakiegoś ładu jest pójście w ślady pliku xml ruskiego - wstawiając przecinki lub kropki w odpowiednie miejsca.

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: pt sty 06, 2012 1:48 pm
autor: quest-88
Raknor, nie przesadzaj z tym "zamieszaniem", bo jest całkiem nieźle, a poza tym sam się przyczyniłeś do obecnego stanu. :>

Może zacznijmy od kilku linków.

Nasze testy opieraliśmy na kompilacji z 5 stycznia (daily builds):
http://dev-builds.libreoffice.org/daily ... ffice-3-5/

Plik źródłowy kodów:
http://cgit.freedesktop.org/libreoffice ... /pl_PL.xml

Kod: Zaznacz cały

    <FormatElement msgid="DateFormatskey12" default="false" type="long" usage="DATE" formatindex="25">
      <FormatCode>D MMMM YYYY</FormatCode>
    </FormatElement>
    <FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="26">
      <FormatCode>D MMMM YYYY "r."</FormatCode>
Raknor na podstawie rosyjskiego i litewskiego pliku lokalizującego wywnioskował, że DateFormatskey12 odnosi się do nazw w mianowniku, a DateFormatskey17 do nazw w dopełniaczu. Początkowo kody niczym się nie różniły (były dokładnie takie same), przez co (prawdopodobnie) we wcześniejszych kompilacjach nie mogliśmy uzyskać nazw miesięcy w dopełniaczu. Dostępny był tylko mianownik. Dlatego też do kodu DateFormatskey17 dodaliśmy "r.".

Teraz okazało się, że dostępne są nazwy tylko w dopełniaczu, a Calc 3.5 automatycznie je zaktualizował. OK, a na co wpłynęła nasza zmiana ("r.")? Nie stało się nic wielkiego (ani inwazyjnego). Użytkownik może teraz po prostu wybrać nazwę (przykładową): 2 stycznia 2012 albo 2 stycznia 2012 r.

Więc czy to my "zniknęliśmy mianownik" czy to może klasyczny przypadek pojawienia się "funkcji, a nie błędu"..

Czy ktoś mądrzejszy może zasugerować rozwiązanie?
http://erack.org/blog/archives/2-LibreO ... names.html

Btw. czy jest zapotrzebowanie na nazwy w mianowniku w Calcu?

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: pt sty 06, 2012 8:18 pm
autor: Arghil
Zgodnie z opisem:
Rules for use of nominative / genitive / partitive case month names in number formatter when encountering MMM or MMMM

(1) MMM or MMMM immediately preceded or followed by a literal character other than space ⇒ nominative month name (noun), for Excel and backwards compatibility such as Finnish MMMM"ta"
no day of month (D or DD) present in format code ⇒ nominative name
(2) day of month (D or DD) after MMM or MMMM ⇒ genitive name
no genitive names defined ⇒ nominative names
(3) day of month (D or DD) before MMM or MMMM ⇒ partitive name
no partitive names defined ⇒ genitive names
no genitive names defined ⇒ nominative names
wzorzec:

Kod: Zaznacz cały

<FormatCode>D MMMM YYYY</FormatCode>
podpada pod sytuację (3) - po części MMM(M) jest spacja. Przy takiej zasadzie działania dla naszego języka niestety nie uda się utrzymać obu wersji.
quest-88 pisze:Raknor, nie przesadzaj z tym "zamieszaniem", bo jest całkiem nieźle, a poza tym sam się przyczyniłeś do obecnego stanu. :>
[...]
Btw. czy jest zapotrzebowanie na nazwy w mianowniku w Calcu?
Np. zgodność z Excelem, czy też różnice w istniejącym dokumencie wydrukowanym za pomocą wersji 3.4 i starszym a wersją 3.5
Ma to znaczenie jak ktoś tworzy sobie faktury w Calcu. OK, lepiej do tego zastosować dedykowany program lub zrobić PDF.
W sumie najbezpieczniej to będzie wydrukować, następnie zeskanować do "bitmapy". Gwarancja, że się po czasie nic nie rozjedzie
i da się odczytać ;)

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: ndz maja 05, 2013 8:29 pm
autor: Raknor
W związku z tym, że w pozostałych plikach xml dodano wpisy:

Kod: Zaznacz cały

    <DateAcceptancePattern>D.M.</DateAcceptancePattern>
    <DateAcceptancePattern>D/M/</DateAcceptancePattern>
Ze względu na nową funkcjonalność LO (wzorce dat).

Postanowiłem i w naszym pliku xml dodać te wpisy i dodatkowo mam pewne sugestie (patrz załącznik).

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: ndz maja 05, 2013 8:43 pm
autor: Minio
Wprowadzenie kodu „D. MMMM YYYY” nie uważam za dobry pomysł.
W języku polskim mamy taką dość uznaniową regułę, że kropkę stawia się po liczebnikach porządkowych, chyba że z kontekstu jednoznacznie wynika, że chodzi o liczebnik porządkowy. Ten kontekst to przede wszystkim właśnie daty, klasy, piętra. Dlatego dopuszczalny i preferowany jest zapis „3 stycznia” — bo wiadomo, że chodzi o trzeciego stycznia, a nie trzeci styczeń (z kolei? Dziwny to musiałby być rok).

Do pozostałych zmian nie mam zdania. Może i są dobre, w końcu my nie stosujemy tej notacji „od końca”.

Re: Kody nazw miesięcy w dopełniaczu w LibO 3.5

: ndz maja 05, 2013 9:05 pm
autor: Raknor
W wersji 3.6.4 i 4.0 przestała działać odmiana Styczeń <> stycznia poprzez dodanie "r." do formatu.
Więc, teraz próbuje stworzyć nasz odpowiednik na podstawie rosyjskich formatów, tam odmiana działa Январь (Styczeń) <> января (stycznia).

Co prawda przydała by się jakaś dokumentacja, która by tłumaczyła co do czego jest. Np. zapis:

Kod: Zaznacz cały

  <LC_INDEX>
    <IndexKey phonetic="false" default="true" unoid="alphanumeric">A Ą B C Ć D E Ę F-L Ł M N Ń O Ó P-S Ś T-Z Ź Ż</IndexKey>
    <UnicodeScript>0</UnicodeScript>
    <UnicodeScript>1</UnicodeScript>
    <UnicodeScript>2</UnicodeScript>
    <FollowPageWord>s.</FollowPageWord>
    <FollowPageWord>ss.</FollowPageWord>
  </LC_INDEX>
Dlaczego jest 0, dlaczego 1, dlaczego 2, dlaczego s. dlaczego ss.