RETURNS VARCHAR(64) DETERMINISTIC
BEGIN
DECLARE ret VARCHAR(64);
+ DECLARE v_id INTEGER;
SET ret = '';
- SELECT lval INTO ret FROM i18n
+ SELECT id, lval INTO v_id, ret FROM i18n
WHERE ltype=in_ltype AND lkey=in_lkey and inlang=in_inlang LIMIT 1;
- RETURN ret;
+
+ IF v_id > 0 THEN
+ RETURN ret;
+ END IF;
+
+ -- we do not have it - return the english.
- END $$
-DELIMITER ;
+ SELECT id, lval INTO v_id, ret FROM i18n
+ WHERE ltype=in_ltype AND lkey=in_lkey and inlang='en' LIMIT 1;
-DROP FUNCTION IF EXISTS i18n_translate_with_title;
-DELIMITER $$
-CREATE FUNCTION i18n_translate(in_ltype varchar(1) , in_lkey varchar(8), in_inlang varchar(8), in_lval VARCHAR(64))
- RETURNS VARCHAR(64) DETERMINISTIC
- BEGIN
- DECLARE ret VARCHAR(64);
- SET ret = '';
- SELECT lval INTO ret FROM i18n
- WHERE
- ltype=in_ltype
- AND
- lkey=in_lkey
- AND
- inlang=in_inlang
- AND
- lval LIKE '%in_val%'
- LIMIT 1;
- RETURN ret;
+ IF v_id > 0 THEN
+ RETURN ret;
+ END IF;
+
+
+ RETURN '??';
END $$
DELIMITER ;