Wprowdzenie
System Comarch ERP Enterprise wspiera zarządzanie tekstami i danymi zależnymi od języka. Wielojęzyczność jest realizowana poprzez atrybuty Business Objects (obiekty biznesowe), które można lokalizować.
Liczba języków, w których można lokalizować teksty, zależy od ustawień bazy danych, w której przechowywany jest obiekt biznesowy. Żaden obiekt w bazie danych nie może zawierać tłumaczenia dla języka, który nie jest ustawiony jako aktywny język w bazie danych.
Podstawowe definicje związane z tym obszarem dostępne są tutaj.
Grupa docelowa
- Administratorzy systemu
- Programiści
Języki wiodące i dodatkowe
Dla bazy danych można zdefiniować dokładnie jeden język wiodący (język podstawowy) i dowolną liczbę języków dodatkowych. Dostęp do odczytu i zapisu obiektów w języku wiodącym jest znacznie bardziej wydajny niż dostęp do obiektów w języku dodatkowym. Dlatego jako język wiodący należy zawsze wybierać język, który jest najczęściej używany w danej bazie danych.
Różne bazy danych OLTP mogą mieć również różne języki wiodące i dodatkowe.
Aktywne języki bazy danych repozytorium skutkują liczbą dostępnych języków wyświetlania interfejsu. Aktywne języki bazy danych OLTP skutkują liczbą dostępnych języków zawartości dla danych biznesowych.
Stan docelowy i rzeczywisty
Języki bazy danych są definiowane w aplikacji Panel System. Definicja ta jest zapisywana w bazie konfiguracyjnej, a także w samej bazie danych.
Specyfikacje w bazie konfiguracyjnej reprezentują stan docelowy, podczas gdy specyfikacje w używanej bazie danych reprezentują stan rzeczywisty. Zmiany specyfikacji w bazie konfiguracyjnej mogą spowodować, że docelowy i rzeczywisty stan bazy danych nie będą już identyczne.
Tabele tłumaczeń
Tabela tłumaczeń jest tworzona dla każdego obiektu biznesowego i każdego atrybutu, który można przetłumaczyć, gdy tabele są generowane. Odpowiednia tabela tłumaczeń zawiera wszystkie tłumaczenia atrybutu. Gdy instancja jest zapisywana w języku dodatkowym, tłumaczenia są przechowywane w odpowiedniej tabeli tłumaczeń.
Jeśli wstawiana jest nowa instancja obiektu biznesowego, rekordy są aktualizowane dla wszystkich zdefiniowanych języków (wiodących i dodatkowych). Jeśli nie wszystkie języki są utrzymywane, dla nich jako wartość domyślna pobrana zostanie z języka głównego lub pierwszego języka dodatkowego.
Tłumaczenie dla wiodącego języka jest również automatycznie dostarczane z wartością domyślną, jeśli nie została ona określona. Tekst atrybutu jest zapisywany w tabeli tłumaczeń w języku określonym podczas zapisywania.
Podczas otwierania obiektu biznesowego za pośrednictwem persistence service obiekt jest pobierany w języku, który został jawnie określony lub w aktywnym języku domyślnym (język wyświetlania, język zawartości, język konfiguracji), który jest ustawiony w sesji dla bazy danych. Jeśli dane dla tego języka nie są dostępne, obiekt jest ładowany w języku głównym.
Tworząc rekordy danych we wszystkich językach dodatkowych, wszystkie rekordy danych obiektu biznesowego są znajdowane podczas wykonywania INNER JOIN. Ponadto tekst jest zawsze wyświetlany niezależnie od ustawionego języka.
Zmiany w językach i reorganizacja
Narzędzie rgzdbt (reorganizacja tabel bazy danych) tworzy brakujące wpisy dla języków dodatkowych dla istniejących instancji. Istniejące wpisy nie są nadpisywane. Ponadto wpisy, które nie są już używane, są usuwane, dzięki czemu tabela tłumaczeń zawiera tylko aktualne dane.
Uruchomienie narzędzia jest konieczne tylko w przypadku zmiany ustawień języków dodatkowych, np. w przypadku dodania języka dodatkowego.
Jeśli dodany zostanie nowy język dodatkowy do bazy danych repozytorium, należy zaimportować aktualizację języka lub zreorganizować tabele NLS za pomocą rgzdbt.
Podczas kopiowania bazy danych za pomocą narzędzia cpydbt przenoszone są tylko języki, które są również wprowadzone do nowej bazy danych. Jeśli w nowej bazie danych zdefiniowane są dodatkowe języki, nie są tworzone żadne nowe rekordy danych dla tych języków. W tym celu należy użyć narzędzia rgzdbt.
Wyszukiwania OQL, wyszukiwania i widoki
Podczas wykonywania wyszukiwania OQL typów obiektów deweloperskich, wyszukiwania i uzyskiwania dostępu do widoków, persistence service wykorzystuje INNER JOIN, aby połączyć dane z tabel tłumaczeń z danymi z innych tabel. Podczas wyszukiwania atrybutów w języku wiodącym zawsze znajdowane są wszystkie rekordy danych. W przypadku wyszukiwania atrybutów, które można przetłumaczyć, znajdowane są tylko rekordy danych, dla których dostępne jest tłumaczenie.
Jeśli instancja w języku nie ma tłumaczenia, jest niewidoczna dla wyszukiwania w odpowiednim języku. W celu prawidłowego działania wyszukiwań i widoków konieczne jest zatem utworzenie odpowiednich rekordów danych w tabelach tłumaczeń poprzez reorganizację.
Dostosowywanie i ustawienia użytkownika
Jeśli podczas uzyskiwania dostępu do persistence service nie określono języka, używany jest domyślny język odpowiedniej bazy danych. Jest to:
- język konfiguracji dla bazy konfiguracyjnej
- język wyświetlania dla bazy danych repozytorium
- język zawartości dla bazy danych OLTP
Ustawienia dla tych języków są wprowadzane w aplikacji Konfiguracja i można je dostosować w aplikacji Ustawienia użytkownika.