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
|
-- Get user language
|
||||||
--
|
--
|
||||||
FUNCTION get_user_lang
|
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 (
|
FUNCTION is_active_user (
|
||||||
in_user_id users.user_id%TYPE := NULL
|
in_user_id users.user_id%TYPE := NULL
|
||||||
|
|||||||
@ -232,6 +232,7 @@ CREATE OR REPLACE PACKAGE BODY app AS
|
|||||||
|
|
||||||
FUNCTION get_user_lang
|
FUNCTION get_user_lang
|
||||||
RETURN users.lang_id%TYPE
|
RETURN users.lang_id%TYPE
|
||||||
|
RESULT_CACHE
|
||||||
AS
|
AS
|
||||||
out_lang users.lang_id%TYPE;
|
out_lang users.lang_id%TYPE;
|
||||||
BEGIN
|
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 (
|
FUNCTION is_active_user (
|
||||||
in_user_id users.user_id%TYPE := NULL
|
in_user_id users.user_id%TYPE := NULL
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user