{"id":9271,"date":"2024-08-26T13:37:31","date_gmt":"2024-08-26T11:37:31","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/?post_type=ht_kb&#038;p=9271"},"modified":"2025-04-11T08:44:02","modified_gmt":"2025-04-11T06:44:02","slug":"wielojezycznosc","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/","title":{"rendered":"Wieloj\u0119zyczno\u015b\u0107"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Prze\u0142\u0105cznik Spisu Tre\u015bci\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Wprowdzenie\" >Wprowdzenie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Grupa_docelowa\" >Grupa docelowa<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Jezyki_wiodace_i_dodatkowe\" >J\u0119zyki wiod\u0105ce i dodatkowe<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Stan_docelowy_i_rzeczywisty\" >Stan docelowy i rzeczywisty<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Tabele_tlumaczen\" >Tabele t\u0142umacze\u0144<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Zmiany_w_jezykach_i_reorganizacja\" >Zmiany w j\u0119zykach i reorganizacja<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Wyszukiwania_OQL_wyszukiwania_i_widoki\" >Wyszukiwania OQL, wyszukiwania i widoki<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wielojezycznosc\/#Dostosowywanie_i_ustawienia_uzytkownika\" >Dostosowywanie i ustawienia u\u017cytkownika<\/a><\/li><\/ul><\/nav><\/div>\n<h3 id=\"wprowdzenie\" ><span class=\"ez-toc-section\" id=\"Wprowdzenie\"><\/span>Wprowdzenie<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>System Comarch ERP Enterprise wspiera zarz\u0105dzanie tekstami i danymi zale\u017cnymi od j\u0119zyka. Wieloj\u0119zyczno\u015b\u0107 jest realizowana poprzez atrybuty Business Objects (obiekty biznesowe), kt\u00f3re mo\u017cna lokalizowa\u0107.<\/p>\n<p>Liczba j\u0119zyk\u00f3w, w kt\u00f3rych mo\u017cna lokalizowa\u0107 teksty, zale\u017cy od ustawie\u0144 bazy danych, w kt\u00f3rej przechowywany jest obiekt biznesowy. \u017baden obiekt w bazie danych nie mo\u017ce zawiera\u0107 t\u0142umaczenia dla j\u0119zyka, kt\u00f3ry nie jest ustawiony jako aktywny j\u0119zyk w bazie danych.<\/p>\n<p>Podstawowe definicje zwi\u0105zane z tym obszarem dost\u0119pne s\u0105 <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/definicje-rozwoj-oprogramowania\/\"><em>tutaj<\/em><\/a>.<\/p>\n<h3 id=\"grupa-docelowa\" ><span class=\"ez-toc-section\" id=\"Grupa_docelowa\"><\/span>Grupa docelowa<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Administratorzy systemu<\/li>\n<li>Programi\u015bci<\/li>\n<\/ul>\n<h3 id=\"jezyki-wiodace-i-dodatkowe\" ><span class=\"ez-toc-section\" id=\"Jezyki_wiodace_i_dodatkowe\"><\/span>J\u0119zyki wiod\u0105ce i dodatkowe<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Dla bazy danych mo\u017cna zdefiniowa\u0107 dok\u0142adnie jeden j\u0119zyk wiod\u0105cy (j\u0119zyk podstawowy) i dowoln\u0105 liczb\u0119 j\u0119zyk\u00f3w dodatkowych. Dost\u0119p do odczytu i zapisu obiekt\u00f3w w j\u0119zyku wiod\u0105cym jest znacznie bardziej wydajny ni\u017c dost\u0119p do obiekt\u00f3w w j\u0119zyku dodatkowym. Dlatego jako j\u0119zyk wiod\u0105cy nale\u017cy zawsze wybiera\u0107 j\u0119zyk, kt\u00f3ry jest najcz\u0119\u015bciej u\u017cywany w danej bazie danych.<\/p>\n<p>R\u00f3\u017cne bazy danych OLTP mog\u0105 mie\u0107 r\u00f3wnie\u017c r\u00f3\u017cne j\u0119zyki wiod\u0105ce i dodatkowe.<\/p>\n<p>Aktywne j\u0119zyki bazy danych repozytorium skutkuj\u0105 liczb\u0105 dost\u0119pnych j\u0119zyk\u00f3w wy\u015bwietlania interfejsu. Aktywne j\u0119zyki bazy danych OLTP skutkuj\u0105 liczb\u0105 dost\u0119pnych j\u0119zyk\u00f3w zawarto\u015bci dla danych biznesowych.<\/p>\n<h3 id=\"stan-docelowy-i-rzeczywisty\" ><span class=\"ez-toc-section\" id=\"Stan_docelowy_i_rzeczywisty\"><\/span>Stan docelowy i rzeczywisty<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>J\u0119zyki bazy danych s\u0105 definiowane w aplikacji<em> Panel System.<\/em> Definicja ta jest zapisywana w bazie konfiguracyjnej, a tak\u017ce w samej bazie danych.<\/p>\n<p>Specyfikacje w bazie konfiguracyjnej reprezentuj\u0105 stan docelowy, podczas gdy specyfikacje w u\u017cywanej bazie danych reprezentuj\u0105 stan rzeczywisty. Zmiany specyfikacji w bazie konfiguracyjnej mog\u0105 spowodowa\u0107, \u017ce docelowy i rzeczywisty stan bazy danych nie b\u0119d\u0105 ju\u017c identyczne.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Je\u015bli wprowadzony zostanie nowy j\u0119zyk dodatkowy, dla kt\u00f3rego dane nie s\u0105 jeszcze dost\u0119pne w bazie danych, docelowy i rzeczywisty stan bazy danych nie jest identyczny. Po uruchomieniu serwera aplikacji Semiramis (SAS) sprawdzane s\u0105 wszystkie pod\u0142\u0105czone bazy danych, aby sprawdzi\u0107, czy stan docelowy i rzeczywisty s\u0105 zgodne. Je\u015bli stany te nie s\u0105 zgodne, wy\u015bwietlany jest komunikat o b\u0142\u0119dzie.<\/div><\/section>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Uruchomiony SAS zawsze dzia\u0142a z aktywnymi ustawieniami danej bazy danych, a nie z ustawieniami bazy konfiguracyjnej. Je\u015bli do bazy danych wprowadzane s\u0105 nowe dane, nale\u017cy upewni\u0107 si\u0119, \u017ce dost\u0119pne s\u0105 tylko aktywne j\u0119zyki.<\/div><\/section>\n<h3 id=\"tabele-tlumaczen\" ><span class=\"ez-toc-section\" id=\"Tabele_tlumaczen\"><\/span>Tabele t\u0142umacze\u0144<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Tabela t\u0142umacze\u0144 jest tworzona dla ka\u017cdego obiektu biznesowego i ka\u017cdego atrybutu, kt\u00f3ry mo\u017cna przet\u0142umaczy\u0107, gdy tabele s\u0105 generowane. Odpowiednia tabela t\u0142umacze\u0144 zawiera wszystkie t\u0142umaczenia atrybutu. Gdy instancja jest zapisywana w j\u0119zyku dodatkowym, t\u0142umaczenia s\u0105 przechowywane w odpowiedniej tabeli t\u0142umacze\u0144.<\/p>\n<p>Je\u015bli wstawiana jest nowa instancja obiektu biznesowego, rekordy s\u0105 aktualizowane dla wszystkich zdefiniowanych j\u0119zyk\u00f3w (wiod\u0105cych i dodatkowych). Je\u015bli nie wszystkie j\u0119zyki s\u0105 utrzymywane, dla nich jako warto\u015b\u0107 domy\u015blna pobrana zostanie z j\u0119zyka g\u0142\u00f3wnego lub pierwszego j\u0119zyka dodatkowego.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Ustawiono j\u0119zyk niemiecki (de) jako j\u0119zyk g\u0142\u00f3wny. J\u0119zyki dodatkowe angielski (en) i w\u0142oski (it) s\u0105 okre\u015blone w tabeli t\u0142umacze\u0144. Je\u015bli teraz zapisano by instancj\u0119 obiektu z atrybutem t\u0142umaczenia w j\u0119zyku niemieckim, tekst ten pojawi si\u0119 r\u00f3wnie\u017c we wszystkich j\u0119zykach dodatkowych.<\/div><\/section>\n<p>T\u0142umaczenie dla wiod\u0105cego j\u0119zyka jest r\u00f3wnie\u017c automatycznie dostarczane z warto\u015bci\u0105 domy\u015bln\u0105, je\u015bli nie zosta\u0142a ona okre\u015blona. Tekst atrybutu jest zapisywany w tabeli t\u0142umacze\u0144 w j\u0119zyku okre\u015blonym podczas zapisywania.<\/p>\n<p>Podczas otwierania obiektu biznesowego za po\u015brednictwem persistence service obiekt jest pobierany w j\u0119zyku, kt\u00f3ry zosta\u0142 jawnie okre\u015blony lub w aktywnym j\u0119zyku domy\u015blnym (j\u0119zyk wy\u015bwietlania, j\u0119zyk zawarto\u015bci, j\u0119zyk konfiguracji), kt\u00f3ry jest ustawiony w sesji dla bazy danych. Je\u015bli dane dla tego j\u0119zyka nie s\u0105 dost\u0119pne, obiekt jest \u0142adowany w j\u0119zyku g\u0142\u00f3wnym.<\/p>\n<p><span style=\"color: #000000;\">Tworz\u0105c rekordy danych we wszystkich j\u0119zykach dodatkowych, wszystkie rekordy danych obiektu biznesowego s\u0105 znajdowane podczas wykonywania INNER JOIN. Ponadto tekst jest zawsze wy\u015bwietlany niezale\u017cnie od ustawionego j\u0119zyka.<\/span><\/p>\n<h3 id=\"zmiany-w-jezykach-i-reorganizacja\" ><span class=\"ez-toc-section\" id=\"Zmiany_w_jezykach_i_reorganizacja\"><\/span>Zmiany w j\u0119zykach i reorganizacja<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Narz\u0119dzie <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/reorganizacja-tabel-baz-danych-rgzdbt\/\"><em>rgzdbt<\/em> <\/a>(reorganizacja tabel bazy danych) tworzy brakuj\u0105ce wpisy dla j\u0119zyk\u00f3w dodatkowych dla istniej\u0105cych instancji. Istniej\u0105ce wpisy nie s\u0105 nadpisywane. Ponadto wpisy, kt\u00f3re nie s\u0105 ju\u017c u\u017cywane, s\u0105 usuwane, dzi\u0119ki czemu tabela t\u0142umacze\u0144 zawiera tylko aktualne dane.<\/p>\n<p>Uruchomienie narz\u0119dzia jest konieczne tylko w przypadku zmiany ustawie\u0144 j\u0119zyk\u00f3w dodatkowych, np. w przypadku dodania j\u0119zyka dodatkowego.<\/p>\n<p>Je\u015bli dodany zostanie nowy j\u0119zyk dodatkowy do bazy danych repozytorium, nale\u017cy zaimportowa\u0107 aktualizacj\u0119 j\u0119zyka lub zreorganizowa\u0107 tabele NLS za pomoc\u0105 <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/reorganizacja-tabel-baz-danych-rgzdbt\/\"><em>rgzdbt<\/em><\/a>.<\/p>\n<p>Podczas kopiowania bazy danych za pomoc\u0105 narz\u0119dzia <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/kopiowanie-tabel-baz-danych-cpydbt\/\"><em>cpydbt<\/em> <\/a>przenoszone s\u0105 tylko j\u0119zyki, kt\u00f3re s\u0105 r\u00f3wnie\u017c wprowadzone do nowej bazy danych. Je\u015bli w nowej bazie danych zdefiniowane s\u0105 dodatkowe j\u0119zyki, nie s\u0105 tworzone \u017cadne nowe rekordy danych dla tych j\u0119zyk\u00f3w. W tym celu nale\u017cy u\u017cy\u0107 narz\u0119dzia <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/reorganizacja-tabel-baz-danych-rgzdbt\/\"><em>rgzdbt<\/em><\/a>.<\/p>\n<h3 id=\"wyszukiwania-oql-wyszukiwania-i-widoki\" ><span class=\"ez-toc-section\" id=\"Wyszukiwania_OQL_wyszukiwania_i_widoki\"><\/span>Wyszukiwania OQL, wyszukiwania i widoki<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Podczas wykonywania wyszukiwania OQL typ\u00f3w obiekt\u00f3w deweloperskich, wyszukiwania i uzyskiwania dost\u0119pu do widok\u00f3w, persistence service wykorzystuje INNER JOIN, aby po\u0142\u0105czy\u0107 dane z tabel t\u0142umacze\u0144 z danymi z innych tabel. Podczas wyszukiwania atrybut\u00f3w w j\u0119zyku wiod\u0105cym zawsze znajdowane s\u0105 wszystkie rekordy danych. W przypadku wyszukiwania atrybut\u00f3w, kt\u00f3re mo\u017cna przet\u0142umaczy\u0107, znajdowane s\u0105 tylko rekordy danych, dla kt\u00f3rych dost\u0119pne jest t\u0142umaczenie.<\/p>\n<p>Je\u015bli instancja w j\u0119zyku nie ma t\u0142umaczenia, jest niewidoczna dla wyszukiwania w odpowiednim j\u0119zyku. W celu prawid\u0142owego dzia\u0142ania wyszukiwa\u0144 i widok\u00f3w konieczne jest zatem utworzenie odpowiednich rekord\u00f3w danych w tabelach t\u0142umacze\u0144 poprzez reorganizacj\u0119.<\/p>\n<h3 id=\"dostosowywanie-i-ustawienia-uzytkownika\" ><span class=\"ez-toc-section\" id=\"Dostosowywanie_i_ustawienia_uzytkownika\"><\/span>Dostosowywanie i ustawienia u\u017cytkownika<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Je\u015bli podczas uzyskiwania dost\u0119pu do persistence service nie okre\u015blono j\u0119zyka, u\u017cywany jest domy\u015blny j\u0119zyk odpowiedniej bazy danych. Jest to:<\/p>\n<ul>\n<li><strong>j\u0119zyk konfiguracji<\/strong> dla bazy konfiguracyjnej<\/li>\n<li><strong>j\u0119zyk wy\u015bwietlania<\/strong> dla bazy danych repozytorium<\/li>\n<li><strong>j\u0119zyk zawarto\u015bci<\/strong> dla bazy danych OLTP<\/li>\n<\/ul>\n<p>Ustawienia dla tych j\u0119zyk\u00f3w s\u0105 wprowadzane w aplikacji <em>Konfiguracja<\/em> i mo\u017cna je dostosowa\u0107 w aplikacji <em>Ustawienia u\u017cytkownika<\/em>.<\/p>\n","protected":false},"author":27,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-9271","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-persistence-service"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/comments?post=9271"}],"version-history":[{"count":5,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9271\/revisions"}],"predecessor-version":[{"id":28280,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/9271\/revisions\/28280"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/media?parent=9271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}