Retrieve translation fot item/page/app/lang
This commit is contained in:
parent
ccf08623c5
commit
fd541348d9
@ -199,12 +199,26 @@ CREATE OR REPLACE PACKAGE app AS
|
||||
-- Get user language
|
||||
--
|
||||
FUNCTION get_user_lang
|
||||
RETURN users.lang_id%TYPE;
|
||||
RETURN users.lang_id%TYPE
|
||||
RESULT_CACHE;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Translate page item
|
||||
--
|
||||
FUNCTION get_translation (
|
||||
in_name translations.name%TYPE,
|
||||
in_page_id translations.page_id%TYPE := NULL,
|
||||
in_app_id translations.app_id%TYPE := NULL,
|
||||
in_lang users.lang_id%TYPE := NULL
|
||||
)
|
||||
RETURN translations.value_en%TYPE;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Auth function to check if users account is active
|
||||
--
|
||||
FUNCTION is_active_user (
|
||||
in_user_id users.user_id%TYPE := NULL
|
||||
|
||||
@ -232,6 +232,7 @@ CREATE OR REPLACE PACKAGE BODY app AS
|
||||
|
||||
FUNCTION get_user_lang
|
||||
RETURN users.lang_id%TYPE
|
||||
RESULT_CACHE
|
||||
AS
|
||||
out_lang users.lang_id%TYPE;
|
||||
BEGIN
|
||||
@ -247,6 +248,39 @@ CREATE OR REPLACE PACKAGE BODY app AS
|
||||
|
||||
|
||||
|
||||
FUNCTION get_translation (
|
||||
in_name translations.name%TYPE,
|
||||
in_page_id translations.page_id%TYPE := NULL,
|
||||
in_app_id translations.app_id%TYPE := NULL,
|
||||
in_lang users.lang_id%TYPE := NULL
|
||||
)
|
||||
RETURN translations.value_en%TYPE
|
||||
AS
|
||||
out_value translations.value_en%TYPE;
|
||||
BEGIN
|
||||
SELECT
|
||||
CASE COALESCE(in_lang, app.get_user_lang(), 'EN')
|
||||
WHEN 'CZ' THEN MIN(t.value_cz) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC)
|
||||
WHEN 'SK' THEN MIN(t.value_sk) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC)
|
||||
WHEN 'PL' THEN MIN(t.value_pl) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC)
|
||||
WHEN 'HU' THEN MIN(t.value_hu) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC)
|
||||
ELSE MIN(t.value_en) KEEP (DENSE_RANK FIRST ORDER BY t.page_id DESC) END
|
||||
INTO out_value
|
||||
FROM translations t
|
||||
WHERE t.app_id = COALESCE(in_app_id, app.get_app_id())
|
||||
AND t.page_id IN (0, COALESCE(in_page_id, app.get_page_id()))
|
||||
AND t.name = in_name;
|
||||
--
|
||||
RETURN out_value;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
-- app.log_warning() ?
|
||||
-- create translation ?
|
||||
RETURN NULL;
|
||||
END;
|
||||
|
||||
|
||||
|
||||
FUNCTION is_active_user (
|
||||
in_user_id users.user_id%TYPE := NULL
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user