Nazwa miesiąca w dopełniaczu

Użytkowanie edytora dokumentów
Us_nip
Posty: 3
Rejestracja: ndz lis 13, 2011 10:02 pm

Nazwa miesiąca w dopełniaczu

Post autor: Us_nip »

W jaki sposób wstawić w dacie nazwę miesiąca w dopełniaczu (prawidłowa pisownia to np.: 13 kwietnia, a nie 13 kwiecień).
Poprzez: WSTAW-POLA-INNE-DATA niestety nie idzie.
Może jakaś propozycja?
Nie chce zmieniać openoffice.org na inny pakiet biurowy, w którym to działa (np.: openoffice.ux.pl).
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

Problem wisiał przez parę lat na liście ToDo i nie doczekał się rozwiązania, gdyż wymagało wypracowania consensu w sprawie uogólnienia/ujednolicenia formatów reprezentacji dat. Zaś przedstawiciele niefleksyjnych języków nie byli tym zainteresowani.

Rozwiązanie UX jest skuteczne, ale nie jest ogólne z programistycznego punktu widzenia. Jest ono nie do zaakceptowania w bazie kodu, w której język interfejsu jest ściśle oddzielony od algorytmów.

Da się to rozwiązać za pomocą makr; w przypadku stałej daty prosto, a w przypadku bieżącej trochę naokoło.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Us_nip
Posty: 3
Rejestracja: ndz lis 13, 2011 10:02 pm

Re: Nazwa miesiąca w dopełniaczu

Post autor: Us_nip »

Niestety makra dla mnie to czarna magia. Chodzi o zmienną datę (żeby wstawiało miesiąc i rok równy temu, który jest w zegarze systemowym). Może ktoś się zlituje i opracuje rozwiązanie przy wykorzystaniu wspomnianego makra? (o ile to nie zajmie dużo czasu :? ).
Raknor
Posty: 509
Rejestracja: pt lut 19, 2010 3:32 pm
Lokalizacja: Warszawa
Kontakt:

Re: Nazwa miesiąca w dopełniaczu

Post autor: Raknor »

Problem tkwi w przygotowaniu paczki językowej do tłumaczenia. Otóż na początku w wersji angielskiej i polskiej była zgodność (Styczeń-Grudzień i Stycznia-Grudnia), ktoś wpadł na pomysł by stosować zapis rzymski (I-XII) i skrótowy (Sty-Gru). W pomocy zgodnie z wersją angielską pod kodem MMM powinien być zapis (Sty-Gru), a jest rzymski (I-XII). Natomiast brak jest kodu na zapis (Sty-Gru). Zresztą, jak dobrze pamiętam wyłapałem w angielskiej wersji tylko cztery miesiące zapisane w formie skrótowej.
Reasumując jest pewna niekonsekwencja w paczce przeznaczonej do tłumaczenia i w kodzie programu.
LibreOffice 5.1.6 (64bit)
Kubuntu 16.04 (64bit)
Wszelkie uwagi lub chęć udziału przy polonizacji LibreOffice proszę kierować na adres: pol_lo at pro.wp.pl
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

Makro mam. W Pythonie. Kod w postaci nadającej się do użytku zamieszczam w załączniku.

Zastosowałem pomysł, by odwzorować typowe specyfikatory formatów daty obowiązujące w OOo na odpowiadające im specyfikatory obowiązujące w Pythonie (moduł locale). Wszystkie standardowe specyfikacje są więc w pełni lokalizowalne.

Ale nazw miesięcy w dopełniaczach i tak tam nie ma. Dopełniacz uzyskamy za pomocą niestandardowej specyfikacji 'MMMMM'.
Tę specyfikację też da się łatwo lokalizować -- w załączniku jest język polski i rosyjski.

Na wstępie ustawienie języka jest ściągane ze środowiska Ooo. Formularz dialogowy pozwala ustalić bieżący język i format daty.

W ciągu najbliższych dni dopiszę dokumentację i kilka funkcji pomocniczych (wpis w menu, skrót klawiatury). Spróbuję opakować je w dodatek oxt, ale nie obiecuję, bo się na tym nie znam.
Załączniki
datestring.zip
(4.47 KiB) Pobrany 305 razy
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
imagetm
Posty: 8
Rejestracja: wt maja 10, 2011 10:08 am

Re: Nazwa miesiąca w dopełniaczu

Post autor: imagetm »

Jan_J pisze:Makro mam. W Pythonie. Kod...
Wspaniale! Czegoś takiego szukałem, od paru miesięcy wstrzymuję się z przesiadką na OOO w wersji 3.3 i pozostaję na starszej z ux.pl właśnie dlatego, że Calc z tej wersji najnowszej nie obsługuje odmiany nazw miesiąca (zamiast: grudnia, daje: grudzień), więc takie „makro” wydaje się doskonałym rozwiązaniem tylko, że... (i teraz pewnie admin wywali mój wpis z pouczeniem bym sobie wygoglował, albo dobrze poszukał na forum :roll: ) ...ja nie wiem jak tego użyć! Jak wczytać plik „datestring.py” do danego arkusza, żeby ze „styczeń” robił mi „stycznia” :(
Jan_J pisze:Spróbuję opakować je w dodatek oxt, ale nie obiecuję, bo się na tym nie znam.
Wcale nie chcę naciskać ;) , ale jak tam idą prace nad tym dodatkiem, bo z plikami *.oxt to wiem co robić.
OpenOffice 3.1 na Windows Vista
imagetm
Posty: 8
Rejestracja: wt maja 10, 2011 10:08 am

Re: Nazwa miesiąca w dopełniaczu

Post autor: imagetm »

Dobra, sorry instrukcja jest tu:
http://user.services.openoffice.org/pl/ ... f=27&t=913
zadziałało, ale wyskoczył błąd:
Wystąpił błąd modułu Scripting Framework podczas
wykonywania w języku Python skryptu
vnd.sun.star.script:datestring.py$insertDate?
language=Python&location=user.
Wiadomość: <class 'locale.Error'>: unsupported locale
setting
C:\Program Files (x86)\OpenOffice.ux.pl
3\Basis\program\python-core-2.6.1\lib\locale.py:494 in
function setlocaleO [return _setlocale(category, locale)]
C:\Users\imagetm\AppData\Roaming\OpenOffice.ux.pl\3\u
ser\Scripts\python\datestring.py:86 in function
DateFormatterO [lang = locale.setlocale(locale.LC_ALL,
getLocaleSettingsO)]
C:\Users\imagetm\AppData\Roaming\OpenOffice.ux.pl\3\u
ser\Scripts\python\datestring.py:43 in function
<module>0 [class DateFormatter(object):]
C:\Program Files (x86)\OpenOffice.ux.pl
3\Basis\program\pythonscript.py:397 in function
getModuleByUrlO [exec code in entry.module._dict_]
C:\Program Files (x86)\OpenOffice.ux.pl
3\Basis\program\pythonscript.py:898 in function
getScriptO [mod = self.provCtx.getModuleByUrl( fileUri)]
Potem, mogę sobie kliknąć "OK"
OpenOffice 3.1 na Windows Vista
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

Wiadomość: <class 'locale.Error'>: unsupported locale
setting
Tak. Błąd związany z nazwą obsługiwanego języka.
Wstępne wersje testowałem na wersji 3.3 (z Pythonem 2.6) pobranej z serwerów OpenOffice.org na (rpm-owym) Linuksie i na Windows XP. Potem dołożyłem systemową obsługę języków, ale to testowałem już tylko na Linuksach. Powinienem był pamiętać, że Windows ma inne nazwy dla języków i krajów, a także inne domyślne kodowania, podczas gdy w OpenOffice API obsługa locale jest zgodna POSIX-em.

W załączniku poprawka, która nie usuwa co prawda wszystkich błędów, ale pozwala wstawić datę po polsku za pomocą insertDate() i insertDateDialog() niezależnie od systemu.

@ info dot. uruchamiania skryptów Pythonowych -- faktycznie, przydałby się krótki przewodnik przyklejony do forum.
Załączniki
datestring.zip
(5.3 KiB) Pobrany 243 razy
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Awatar użytkownika
quest-88
Posty: 1105
Rejestracja: ndz maja 24, 2009 8:12 pm
Lokalizacja: Zabrze
Kontakt:

Re: Nazwa miesiąca w dopełniaczu

Post autor: quest-88 »

Czy to nie zostało rozwiązane w LibreOffice 3.5?
Use of possessive genitive case and/or partitive month names if provided by a locale’s locale data (e.g., Russian, Polish, Finnish, Lithuanian, and others).
If a day of month (D or DD) is present in a number formatter’s date format code, the month name for MMM or MMMM is displayed in possessive genitive case or partitive case.
Else if no day of month is present, the month name is displayed as noun / nominative case.
See blog for more details. (Eike Rathke)
http://wiki.documentfoundation.org/Rele ... calization
Standardowa diagnostyka rozwiązuje 90% problemów typu "wcześniej działało, ale już nie działa".
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
imagetm
Posty: 8
Rejestracja: wt maja 10, 2011 10:08 am

Re: Nazwa miesiąca w dopełniaczu

Post autor: imagetm »

Faktycznie, działa! Dzięki Ci Jan_J, jestem doprawdy zszokowany tak szybką reakcją. :shock: Muszę tylko popracować nad „zautomatyzowaniem” procesu wykonywania makro, bo klikanie za każdym razem na Narzędzia/Makra->Wykonaj makro... potem wybór tego makra, jest... dość męczące.
Jakieś wskazówki? :P Ale dobra, nie przesadzajmy dam sobie radę!

Jednak pewien problem pozostał: otóż makro zmienia wartości komórki z liczbowych na tekstowe. Ja wykorzystuję arkusz do liczenia terminów (dodaje je, odejmuje, liczę odsetki itp.). Na końcu kopiuję to razem z kwotami i wklejam do edytora tekstu, w którym poprawianie ręczne mianownika na dopełniacz jest, delikatnie mówiąc żmudne... Zmiana wartości komórki na wartości tekstowe „rozwala” jednak całą formułę, co czyni niemożliwym dokonanie wyliczeń (#ARG!).

W tej sytuacji pozostaje mi nadzieja, że LibreOffice 3.5 rzeczywiście ten problem rozwiązuje (czy ktoś będzie tak uprzejmy i to potwierdzi, czy trzeba będzie to ściągnąć i samemu sprawdzić :P , ok. jestem leniem, żona mówi mi to samo) lub czekać na zlitowanie ze strony UX.pl, bo oni do tej pory to robili, ale ostatnio chyba o tym zapomnieli.
Pozdrawiam!
OpenOffice 3.1 na Windows Vista
Awatar użytkownika
quest-88
Posty: 1105
Rejestracja: ndz maja 24, 2009 8:12 pm
Lokalizacja: Zabrze
Kontakt:

Re: Nazwa miesiąca w dopełniaczu

Post autor: quest-88 »

Niby jest w 3.5, ale włączyć tego nie potrafię. Czekaj albo sam się trudź. :)
Standardowa diagnostyka rozwiązuje 90% problemów typu "wcześniej działało, ale już nie działa".
Przepis na LibreOffice
Uzyskałeś pomoc? Poinformuj innych o sprawdzonym rozwiązaniu i podziękuj. Dodaj [SOLVED] w tytule.
imagetm
Posty: 8
Rejestracja: wt maja 10, 2011 10:08 am

Re: Nazwa miesiąca w dopełniaczu

Post autor: imagetm »

No dobra, ściągnąłem, zainstalowałem, sprawdziłem: dalej miesiące w mianowniku...
Więc zacząłem się trudzić... i nic!
Potem dopiero, niestety trochę czasu zmarnotrawiłem, kliknąłem na linka:
http://erack.org/blog/archives/2-LibreO ... names.html
i o ile dobrze przetłumaczyłem sobie tekst:
Currently for the following locales genitive and/or partitive case month names were contributed:

[an-ES] Aragonese, Spain
[ast-ES] Asturian, Spain
[be-BY] Belarusian, Belarus
[fi-FI] Finnish, Finland
[gd-GB] Gaelic (Scottish), United Kingdom
[la-VA] Latin, State of the Vatican City
[lt-LT] Lithuanian, Lithuania
[ru-RU] Russian, Russia

As you can see, that's only a few locales and not all that should be covered. So if you're working on localization of LibreOffice and your language uses month name cases, please contribute the locale data additions as lined out above. Best send a patch of your locale's .xml data file as attachment to the developer mailing list and I'll pick it up. If uncertain how to do that just ask and we'll help
to nici z tego na razie w polskiej lokalizacji, ale jest nadzieja. Wystarczy, że ktoś kto się na tym zna stworzy jakiś pliczek *.xml z polskimi miesiącami i podeśle go temu panu, co to jest autorem tej strony z liknu powyżej.
W nadziei pozdrawiam!
OpenOffice 3.1 na Windows Vista
Us_nip
Posty: 3
Rejestracja: ndz lis 13, 2011 10:02 pm

Re: Nazwa miesiąca w dopełniaczu

Post autor: Us_nip »

Dołączam się do prośby ;)
OpenOffice 3.3 na Windows XP
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

@ LO 3.5: nie może działać, bo w xml-owych danych i18n brak dopełniaczy po polsku. Trzeba to zrobić.

W załączeniu kolejna ulepszona wersja mojej zabawki. Wciąż nie są rozwiązane problemy z kodowaniami pod Windows (tym niemniej po polsku powinno być OK). Trudno mi to sprawdzić, bo aktualnie nie mam maszyny z Windows pod ręką.
Załączniki
datestring.zip
(5.61 KiB) Pobrany 259 razy
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Raknor
Posty: 509
Rejestracja: pt lut 19, 2010 3:32 pm
Lokalizacja: Warszawa
Kontakt:

Re: Nazwa miesiąca w dopełniaczu

Post autor: Raknor »

Jan_J pisze:@ LO 3.5: nie może działać, bo w xml-owych danych i18n brak dopełniaczy po polsku. Trzeba to zrobić.
A właśnie, że są nazwy w dopełniaczach -> http://cgit.freedesktop.org/libreoffice ... /pl_PL.xml
Błędny jest kod, którym chce się wywołać nazwę miesiąca w dopełniaczu (jest identyczny z kodem miesiąca w mianowniku).

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</FormatCode>
Oraz w tym miejscu mam zdublowany kod, który mógłby realizować coś innego:

Kod: Zaznacz cały

<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>
LibreOffice 5.1.6 (64bit)
Kubuntu 16.04 (64bit)
Wszelkie uwagi lub chęć udziału przy polonizacji LibreOffice proszę kierować na adres: pol_lo at pro.wp.pl
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

Oczywiście masz rację.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
imagetm
Posty: 8
Rejestracja: wt maja 10, 2011 10:08 am

Re: Nazwa miesiąca w dopełniaczu

Post autor: imagetm »

Witam!
Tematu nie ma. Ukazały się: OpenOffice.ux.pl 3.4 i LibreOffice 3.5, gdzie wszystko działa jak należy, makro nie potrzebne, ale bardzo dziękuję!
Pozdrowienie dla wszystkich piszących po polskiemu!
OpenOffice 3.1 na Windows Vista
mowas
Posty: 2
Rejestracja: pt mar 16, 2012 12:11 pm

Re: Nazwa miesiąca w dopełniaczu

Post autor: mowas »

Witam.
Jestem nowy na forum, lecz starym użytkownikiem OO.
Powyższe dyskusje dotyczyły tego, że ktoś ma zapis np: 10 marzec 2012 a chciałby mieć 10 marca 2012...
i tak się stało, teraz wszystkie miesiące są w tej odmianie...
lecz
Ja używam tylko nazwy miesięcy i lat w tabelach zbiorczych i zawsze miałem (do wersji 3.3)
styczeń 2012, luty 212, marzec 212 - to chyba logiczne,
natomiast teraz jest :
stycznia 2012, lutego 2012, marca 2012 !! :-) , to trochę porażka, jak to zmienić aby było poprawnie ?
PS.
Zawsze miałem tekst w stylu:
"raport za miesiąc marzec 212" i w tabeli był nagłówek "Marzec 2012"
teraz jest:
"raport za miesiąc marca 212" i w tabeli jest nagłówek "Marca 2012" :crazy:
Jak to zmienić bo nazwy miesięcy powinny być w rzeczowniku liczby pojedynczej, w kalendarzu na ścianie też mam napis MARZEC 2012 a nie MARCA 2012 :lol:
Ludzie pomóżcie bo takich raportów nie mogę wysłać klientowi bo będzie siara !
OpenOffice.ux.pl 3.4.3 - Windows 7
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

Jaka wersja pakietu?
w stopce piszesz OpenOffice 3.4 -- takiego jeszcze nie ma.
Jest albo OpenOffice 3.3, albo LibreOffice 3.4, 3.5, albo wersja Ux.pl, albo rozmaite bety.

W OO 3.3 daty są po staremu: w mianowniku. W Ux zdaje się od dawna były tak, jak tego wymaga polszczyzna. W Libre pospieszyli się, i kod MMMM znaczy czasem marzec, czasem marca, zależnie od kontekstu. Nie ma to jak niedopracowana specyfikacja. Mam nadzieję, że ulegnie poprawie.

Pozostają formaty niestandardowe. Albo bym użył dwóch formatów daty obok siebie: <data DD ><data MMMM YYYY>, albo zamiast spacji w formacie DD MMMM YYYY wstawić coś co wygląda jak odstęp, ale oszuka odnośnie kontekstu. Z eksperymentów widzę, że wstawienie nie-białego znaku bezpośrednio po MMMM zmienia dopełniacz na mianownik. Nie udało mi się wstawić tam spacji niełamliwej, ale udało się z ZWJ.

Tak więc, format daty opisany przez MMMM<ZWJ> YYYY robi to co chcesz.
ZWJ nie ma na liście Wstaw/Symbol w OpenOffice. Posłuż się systemową tabelą znaków (ZWJ = U+200D).

Swoją drogą, format MMMM YYYY u mnie (LO 3.5.0 rc3 aka 3.5.1, rpm) daje nazwę miesiąca w mianowniku.

Zamieszanie ze zmianą znanych i jasnych, choć niepoprawnych reguł formatowania na inne, czasami tylko poprawne i nie do końca jasne, chyba się jeszcze nie skończyło. Tak że moja propozycja ma charakter doraźny.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
mowas
Posty: 2
Rejestracja: pt mar 16, 2012 12:11 pm

Re: Nazwa miesiąca w dopełniaczu

Post autor: mowas »

Mówię o nowym wydaniu (ux.pl) Data edycji: 25.01.2012 r. OppenOffice.ux.pl w wersji 3.4.3 lecz na ich stronie
widnieje numer wydania 3.4.4 ale po zainstalowaniu i tak jest 3.4.3 nie wiem czemu.
Próbowałem na wszystkie sposoby i wstawienie MMMM daje tylko dopełniacz :( innych wariantów nie znalazłem.
OpenOffice.ux.pl 3.4.3 - Windows 7
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Nazwa miesiąca w dopełniaczu

Post autor: Jan_J »

Radzę spróbować wprowadzić niestandardowy format "MMMM<ZWJ> YYYY" gdzie <ZWJ> znaczy zero-width joiner -- niewidoczny znak o zerowej szerokości. W przypadku Libre sprawia, że dopełniacz zmienia się na mianownik; tylko że tam takie wygibasy nie są potrzebne. W wersji Ux nie wiem czy ten sposób zadziała, oni zawsze mieli swój wynalazek na format daty, i widocznie coś im się zepsuło.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ