Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Języki w aplikacji
adbacz
post 14.01.2017, 18:24:21
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Piszę aplikację w której potrzebuję mieć języki, osobno dla treści edytowanej przez użytkowników, i osobno dla panelu administracyjnego. Będą nim zarządzać osoby z różnych krajów a i sama strona będzie zawierała treści w różnych językach. Wiem jak rozwiązać języki w treściach w bazie danych, i języki UI w plikach językowych. Problemem dla mnie jest rozgraniczenie w aplikacji tych dwóch wartości.

1. Jak nazwać obydwa języki? UILanguage i ContentLanguage? Może ktoś już kiedyś coś wymyślił, tylko ja tego nie znalazłem w G?
2. Znalazłem jakiś artykuł w którym ktoś pisał o language i locale. Czym to się różni? Czy to jest rozwiązanie mojego problemu?
3. Jak to rozwiązać w postaci kodu? Obydwie te rzeczy powinny mieć swoje własne klasy? Może jedną, jako Language|Localisation a w niej dopiero rozgraniczenie pomiędzy te dwa typy?

Języki UI i języki treści będą oczywiście inne. Języki treści będą dodawana dynamicznie przez panel administracyjny, ale pliki językowe UI będą dodawane tylko przez developerów, więc będą to dwie osobne listy języków.
Go to the top of the page
+Quote Post
kpt_lucek
post 14.01.2017, 19:17:26
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


W Symfony masz coś takiego, co nazywa się DOMAIN. W praktyce komponent http://symfony.com/doc/current/translation.html


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
adbacz
post 15.01.2017, 18:49:57
Post #3





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Dziękuję za odpowiedź, ale to troszkę mija się z moim problemem. Jak już wspominałem, wiem jak rozwiązać tłumaczenia w plikach językowych.
Go to the top of the page
+Quote Post
phpion
post 15.01.2017, 20:42:32
Post #4





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie bardzo wiem po co to rozgraniczać. Wersja językowa to wersja językowa, nieważne czy dla użytkowników czy administratorów. Dotyczy to zarówno treści definiowanych w panelu (baza danych) jak i zwykłych statycznych komunikatów (pliki lub też baza danych). Skoro administratorzy bedą mieć prezentowane treści w zależności od swojego języka to czym to sie różni od zwykłych użytkowników? Administrator to taki sam użytkownik tylko ze z większymi uprawnieniami. Opisz może bliżej problem bo w sumie nie do końca wiadomo o co chodzi.
Go to the top of the page
+Quote Post
adbacz
post 15.01.2017, 21:52:16
Post #5





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Załóżmy taką sytuację (nie rozgraniczamy tych języków):

Mamy panią Kasię z sekretariatu, która ma za zadanie uzupełnić stronę podanymi danymi (artykuły, kontakt i parę innych zakładek) z podanych plików DOC. Pani Kasia się loguje, wrzuca język Niemiecki i dostaje jebca, bo cały Panel jej zmienił język. A ona chciała tylko wrzucić artykuł o firmie w języku niemieckim, a tak na prawdę ma Panel w języku niemieckim i ma zagwozdkę, czy ona coś popsuła, jak teraz to cofnąć. Musi zmieniać z powrotem na polski, wejść w odpowiednie miejsce w Panelu, zmienić ponownie język na niemiecki i wrzucić treść. A co jeśli zapomni wrzucić tytułu, i pokaże jej się komunikat o błędzie w języku niemieckim, bo akurat edytowała język niemiecki?

Mam nadzieje, że to rozwieje wątpliwości zmiany języka, osobno dla treści i osobno dla UI.

Ten post edytował adbacz 15.01.2017, 21:54:39
Go to the top of the page
+Quote Post
Pyton_000
post 15.01.2017, 21:56:53
Post #6





Grupa: Zarejestrowani
Postów: 7 927
Pomógł: 1389
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Ale jaki masz problem bo nie bardzo rozumiem?

Język dla treści definiujesz przy treści, a język dla UI w tabeli z tłumaczeniami dla UI
Go to the top of the page
+Quote Post
phpion
post 16.01.2017, 06:54:20
Post #7





Grupa: Moderatorzy
Postów: 6 065
Pomógł: 859
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Juz widzę w czym problem: uzależniasz język wprowadzanej przez administratora treści od języka panelu. Ja zawsze robiłem to niezależne tj. w zasadzie obsługiwałem tylko język panelu. Wprowadzanie treści robiłem w ten sposób, ze dla listy zdefiniowanych języków tworzyłem pola formularza. Przykładowo jeśli mam do wprowadzenia tytuł i treść, a system obsługuje 3 języki to łącznie wyświetlam 6 pół - po 2 dla każdego języka. Języki grupuje w zakładki (np. JQuery UI) wyświetlając w tabach flagi obrazujące język. Domyślny język zawsze miał ustawioną walidacje na wymagalność, dla pozostałych pola były opcjonalne.
Go to the top of the page
+Quote Post
adbacz
post 16.01.2017, 13:07:21
Post #8





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 16.01.2017, 06:54:20 ) *
uzależniasz język wprowadzanej przez administratora treści od języka panelu.


Ale napisałem na początku, że chcę to zrobić niezależne.

Potrzebuję tyko pomysłu na to, jak to spiąć w kodzie, samo zarządzanie językami, przechowywanie listy języków.
Napisałem już, że mam ogarnięte pliki językowe i przechowywanie w bazie danych.
Go to the top of the page
+Quote Post
Puszy
post 16.01.2017, 15:03:28
Post #9





Grupa: Zarejestrowani
Postów: 278
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Cytat(adbacz @ 16.01.2017, 13:07:21 ) *
Ale napisałem na początku, że chcę to zrobić niezależne.

Potrzebuję tyko pomysłu na to, jak to spiąć w kodzie, samo zarządzanie językami, przechowywanie listy języków.
Napisałem już, że mam ogarnięte pliki językowe i przechowywanie w bazie danych.


Phpion podał Ci rozwiązanie, wyświetlasz n pól formularza przy n języków lub robisz <select> z formularzu który zmienia język danych pól.

Poniżej rozwiązanie które stosuję.



Ten post edytował Puszy 16.01.2017, 15:06:17
Go to the top of the page
+Quote Post
adbacz
post 16.01.2017, 16:01:22
Post #10





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Może ja źle tłumaczę. Chodzi mi o kod PHP, rdzenia systemu. Pomysł na wdrożenie tego w OOP. Nie o kod HTML i widoki dla użytkownika :/

PS. Wszystko jest zawarte w 3 pytaniach na początku tematu, nie wiem już jak to inaczej opisać.

Ten post edytował adbacz 16.01.2017, 16:02:10
Go to the top of the page
+Quote Post
Puszy
post 17.01.2017, 12:05:51
Post #11





Grupa: Zarejestrowani
Postów: 278
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Cytat(adbacz @ 16.01.2017, 16:01:22 ) *
Może ja źle tłumaczę. Chodzi mi o kod PHP, rdzenia systemu. Pomysł na wdrożenie tego w OOP. Nie o kod HTML i widoki dla użytkownika :/

PS. Wszystko jest zawarte w 3 pytaniach na początku tematu, nie wiem już jak to inaczej opisać.


No to ja nie rozumiem. Jeżeli obecnie korzystasz z i18n no to problem interfejsu masz z głowy. A dane które wprowadza użytkownik udźwignij w ten sposób który Ci pokazałem od strony kodu to jest zwykły formularz z tym że pola generowane są dynamicznie foreachem po aktywnych językach. Odpowiednie ustawienia pól formularza, walidacja pól językowych, flush do bazy i ot tyle.
Go to the top of the page
+Quote Post
adbacz
post 17.01.2017, 16:13:06
Post #12





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

Ostrzeżenie: (0%)
-----


Przepraszam, ale czy:
Cytat
A dane które wprowadza użytkownik udźwignij w ten sposób który Ci pokazałem od strony kodu to jest zwykły formularz

to jest to samo co:
Cytat
Chodzi mi o kod PHP, rdzenia systemu. Pomysł na wdrożenie tego w OOP. Nie o kod HTML i widoki dla użytkownika

?

Poddaje się...
Go to the top of the page
+Quote Post
Puszy
post 17.01.2017, 16:52:04
Post #13





Grupa: Zarejestrowani
Postów: 278
Pomógł: 42
Dołączył: 10.10.2011

Ostrzeżenie: (0%)
-----


Cytat(adbacz @ 17.01.2017, 16:13:06 ) *
Przepraszam, ale czy:

to jest to samo co:

?

Poddaje się...


Jeżeli dla Ciebie obsługa formularzy to HTML to ja się poddaję.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.05.2020 - 05:46