Changeset 3338467
- Timestamp:
- 08/03/2025 02:23:46 PM (8 months ago)
- Location:
- just-translate
- Files:
-
- 298 added
- 7 edited
-
tags/0.0.7 (added)
-
tags/0.0.7/admin (added)
-
tags/0.0.7/admin/base.php (added)
-
tags/0.0.7/admin/css (added)
-
tags/0.0.7/admin/css/translations.css (added)
-
tags/0.0.7/admin/index.php (added)
-
tags/0.0.7/admin/js (added)
-
tags/0.0.7/admin/js/translations.js (added)
-
tags/0.0.7/admin/settings.php (added)
-
tags/0.0.7/admin/translations.php (added)
-
tags/0.0.7/asset (added)
-
tags/0.0.7/asset/flags (added)
-
tags/0.0.7/asset/flags/ad.webp (added)
-
tags/0.0.7/asset/flags/ae.webp (added)
-
tags/0.0.7/asset/flags/af.webp (added)
-
tags/0.0.7/asset/flags/ag.webp (added)
-
tags/0.0.7/asset/flags/ai.webp (added)
-
tags/0.0.7/asset/flags/al.webp (added)
-
tags/0.0.7/asset/flags/am.webp (added)
-
tags/0.0.7/asset/flags/ao.webp (added)
-
tags/0.0.7/asset/flags/aq.webp (added)
-
tags/0.0.7/asset/flags/ar.webp (added)
-
tags/0.0.7/asset/flags/as.webp (added)
-
tags/0.0.7/asset/flags/at.webp (added)
-
tags/0.0.7/asset/flags/au.webp (added)
-
tags/0.0.7/asset/flags/aw.webp (added)
-
tags/0.0.7/asset/flags/ax.webp (added)
-
tags/0.0.7/asset/flags/az.webp (added)
-
tags/0.0.7/asset/flags/ba.webp (added)
-
tags/0.0.7/asset/flags/bb.webp (added)
-
tags/0.0.7/asset/flags/bd.webp (added)
-
tags/0.0.7/asset/flags/be.webp (added)
-
tags/0.0.7/asset/flags/bf.webp (added)
-
tags/0.0.7/asset/flags/bg.webp (added)
-
tags/0.0.7/asset/flags/bh.webp (added)
-
tags/0.0.7/asset/flags/bi.webp (added)
-
tags/0.0.7/asset/flags/bj.webp (added)
-
tags/0.0.7/asset/flags/bl.webp (added)
-
tags/0.0.7/asset/flags/bm.webp (added)
-
tags/0.0.7/asset/flags/bn.webp (added)
-
tags/0.0.7/asset/flags/bo.webp (added)
-
tags/0.0.7/asset/flags/bq.webp (added)
-
tags/0.0.7/asset/flags/br.webp (added)
-
tags/0.0.7/asset/flags/bs.webp (added)
-
tags/0.0.7/asset/flags/bt.webp (added)
-
tags/0.0.7/asset/flags/bv.webp (added)
-
tags/0.0.7/asset/flags/bw.webp (added)
-
tags/0.0.7/asset/flags/by.webp (added)
-
tags/0.0.7/asset/flags/bz.webp (added)
-
tags/0.0.7/asset/flags/ca.webp (added)
-
tags/0.0.7/asset/flags/cc.webp (added)
-
tags/0.0.7/asset/flags/cd.webp (added)
-
tags/0.0.7/asset/flags/cf.webp (added)
-
tags/0.0.7/asset/flags/cg.webp (added)
-
tags/0.0.7/asset/flags/ch.webp (added)
-
tags/0.0.7/asset/flags/ci.webp (added)
-
tags/0.0.7/asset/flags/ck.webp (added)
-
tags/0.0.7/asset/flags/cl.webp (added)
-
tags/0.0.7/asset/flags/cm.webp (added)
-
tags/0.0.7/asset/flags/cn.webp (added)
-
tags/0.0.7/asset/flags/co.webp (added)
-
tags/0.0.7/asset/flags/cr.webp (added)
-
tags/0.0.7/asset/flags/cu.webp (added)
-
tags/0.0.7/asset/flags/cv.webp (added)
-
tags/0.0.7/asset/flags/cw.webp (added)
-
tags/0.0.7/asset/flags/cx.webp (added)
-
tags/0.0.7/asset/flags/cy.webp (added)
-
tags/0.0.7/asset/flags/cz.webp (added)
-
tags/0.0.7/asset/flags/de.webp (added)
-
tags/0.0.7/asset/flags/dj.webp (added)
-
tags/0.0.7/asset/flags/dk.webp (added)
-
tags/0.0.7/asset/flags/dm.webp (added)
-
tags/0.0.7/asset/flags/do.webp (added)
-
tags/0.0.7/asset/flags/dz.webp (added)
-
tags/0.0.7/asset/flags/ec.webp (added)
-
tags/0.0.7/asset/flags/ee.webp (added)
-
tags/0.0.7/asset/flags/eg.webp (added)
-
tags/0.0.7/asset/flags/eh.webp (added)
-
tags/0.0.7/asset/flags/er.webp (added)
-
tags/0.0.7/asset/flags/es.webp (added)
-
tags/0.0.7/asset/flags/et.webp (added)
-
tags/0.0.7/asset/flags/fi.webp (added)
-
tags/0.0.7/asset/flags/fj.webp (added)
-
tags/0.0.7/asset/flags/fk.webp (added)
-
tags/0.0.7/asset/flags/fm.webp (added)
-
tags/0.0.7/asset/flags/fo.webp (added)
-
tags/0.0.7/asset/flags/fr.webp (added)
-
tags/0.0.7/asset/flags/ga.webp (added)
-
tags/0.0.7/asset/flags/gb-eng.webp (added)
-
tags/0.0.7/asset/flags/gb-nir.webp (added)
-
tags/0.0.7/asset/flags/gb-sct.webp (added)
-
tags/0.0.7/asset/flags/gb-wls.webp (added)
-
tags/0.0.7/asset/flags/gb.webp (added)
-
tags/0.0.7/asset/flags/gd.webp (added)
-
tags/0.0.7/asset/flags/ge.webp (added)
-
tags/0.0.7/asset/flags/gf.webp (added)
-
tags/0.0.7/asset/flags/gg.webp (added)
-
tags/0.0.7/asset/flags/gh.webp (added)
-
tags/0.0.7/asset/flags/gi.webp (added)
-
tags/0.0.7/asset/flags/gl.webp (added)
-
tags/0.0.7/asset/flags/gm.webp (added)
-
tags/0.0.7/asset/flags/gn.webp (added)
-
tags/0.0.7/asset/flags/gp.webp (added)
-
tags/0.0.7/asset/flags/gq.webp (added)
-
tags/0.0.7/asset/flags/gr.webp (added)
-
tags/0.0.7/asset/flags/gs.webp (added)
-
tags/0.0.7/asset/flags/gt.webp (added)
-
tags/0.0.7/asset/flags/gu.webp (added)
-
tags/0.0.7/asset/flags/gw.webp (added)
-
tags/0.0.7/asset/flags/gy.webp (added)
-
tags/0.0.7/asset/flags/hk.webp (added)
-
tags/0.0.7/asset/flags/hm.webp (added)
-
tags/0.0.7/asset/flags/hn.webp (added)
-
tags/0.0.7/asset/flags/hr.webp (added)
-
tags/0.0.7/asset/flags/ht.webp (added)
-
tags/0.0.7/asset/flags/hu.webp (added)
-
tags/0.0.7/asset/flags/id.webp (added)
-
tags/0.0.7/asset/flags/ie.webp (added)
-
tags/0.0.7/asset/flags/il.webp (added)
-
tags/0.0.7/asset/flags/im.webp (added)
-
tags/0.0.7/asset/flags/in.webp (added)
-
tags/0.0.7/asset/flags/io.webp (added)
-
tags/0.0.7/asset/flags/iq.webp (added)
-
tags/0.0.7/asset/flags/ir.webp (added)
-
tags/0.0.7/asset/flags/is.webp (added)
-
tags/0.0.7/asset/flags/it.webp (added)
-
tags/0.0.7/asset/flags/je.webp (added)
-
tags/0.0.7/asset/flags/jm.webp (added)
-
tags/0.0.7/asset/flags/jo.webp (added)
-
tags/0.0.7/asset/flags/jp.webp (added)
-
tags/0.0.7/asset/flags/ke.webp (added)
-
tags/0.0.7/asset/flags/kg.webp (added)
-
tags/0.0.7/asset/flags/kh.webp (added)
-
tags/0.0.7/asset/flags/ki.webp (added)
-
tags/0.0.7/asset/flags/km.webp (added)
-
tags/0.0.7/asset/flags/kn.webp (added)
-
tags/0.0.7/asset/flags/kp.webp (added)
-
tags/0.0.7/asset/flags/kr.webp (added)
-
tags/0.0.7/asset/flags/kw.webp (added)
-
tags/0.0.7/asset/flags/ky.webp (added)
-
tags/0.0.7/asset/flags/kz.webp (added)
-
tags/0.0.7/asset/flags/la.webp (added)
-
tags/0.0.7/asset/flags/lb.webp (added)
-
tags/0.0.7/asset/flags/lc.webp (added)
-
tags/0.0.7/asset/flags/li.webp (added)
-
tags/0.0.7/asset/flags/lk.webp (added)
-
tags/0.0.7/asset/flags/lr.webp (added)
-
tags/0.0.7/asset/flags/ls.webp (added)
-
tags/0.0.7/asset/flags/lt.webp (added)
-
tags/0.0.7/asset/flags/lu.webp (added)
-
tags/0.0.7/asset/flags/lv.webp (added)
-
tags/0.0.7/asset/flags/ly.webp (added)
-
tags/0.0.7/asset/flags/ma.webp (added)
-
tags/0.0.7/asset/flags/mc.webp (added)
-
tags/0.0.7/asset/flags/md.webp (added)
-
tags/0.0.7/asset/flags/me.webp (added)
-
tags/0.0.7/asset/flags/mf.webp (added)
-
tags/0.0.7/asset/flags/mg.webp (added)
-
tags/0.0.7/asset/flags/mh.webp (added)
-
tags/0.0.7/asset/flags/mk.webp (added)
-
tags/0.0.7/asset/flags/ml.webp (added)
-
tags/0.0.7/asset/flags/mm.webp (added)
-
tags/0.0.7/asset/flags/mn.webp (added)
-
tags/0.0.7/asset/flags/mo.webp (added)
-
tags/0.0.7/asset/flags/mp.webp (added)
-
tags/0.0.7/asset/flags/mq.webp (added)
-
tags/0.0.7/asset/flags/mr.webp (added)
-
tags/0.0.7/asset/flags/ms.webp (added)
-
tags/0.0.7/asset/flags/mt.webp (added)
-
tags/0.0.7/asset/flags/mu.webp (added)
-
tags/0.0.7/asset/flags/mv.webp (added)
-
tags/0.0.7/asset/flags/mw.webp (added)
-
tags/0.0.7/asset/flags/mx.webp (added)
-
tags/0.0.7/asset/flags/my.webp (added)
-
tags/0.0.7/asset/flags/mz.webp (added)
-
tags/0.0.7/asset/flags/na.webp (added)
-
tags/0.0.7/asset/flags/nc.webp (added)
-
tags/0.0.7/asset/flags/ne.webp (added)
-
tags/0.0.7/asset/flags/nf.webp (added)
-
tags/0.0.7/asset/flags/ng.webp (added)
-
tags/0.0.7/asset/flags/ni.webp (added)
-
tags/0.0.7/asset/flags/nl.webp (added)
-
tags/0.0.7/asset/flags/no.webp (added)
-
tags/0.0.7/asset/flags/np.webp (added)
-
tags/0.0.7/asset/flags/nr.webp (added)
-
tags/0.0.7/asset/flags/nu.webp (added)
-
tags/0.0.7/asset/flags/nz.webp (added)
-
tags/0.0.7/asset/flags/om.webp (added)
-
tags/0.0.7/asset/flags/pa.webp (added)
-
tags/0.0.7/asset/flags/pe.webp (added)
-
tags/0.0.7/asset/flags/pf.webp (added)
-
tags/0.0.7/asset/flags/pg.webp (added)
-
tags/0.0.7/asset/flags/ph.webp (added)
-
tags/0.0.7/asset/flags/pk.webp (added)
-
tags/0.0.7/asset/flags/pl.webp (added)
-
tags/0.0.7/asset/flags/pm.webp (added)
-
tags/0.0.7/asset/flags/pn.webp (added)
-
tags/0.0.7/asset/flags/pr.webp (added)
-
tags/0.0.7/asset/flags/ps.webp (added)
-
tags/0.0.7/asset/flags/pt.webp (added)
-
tags/0.0.7/asset/flags/pw.webp (added)
-
tags/0.0.7/asset/flags/py.webp (added)
-
tags/0.0.7/asset/flags/qa.webp (added)
-
tags/0.0.7/asset/flags/re.webp (added)
-
tags/0.0.7/asset/flags/ro.webp (added)
-
tags/0.0.7/asset/flags/rs.webp (added)
-
tags/0.0.7/asset/flags/ru.webp (added)
-
tags/0.0.7/asset/flags/rw.webp (added)
-
tags/0.0.7/asset/flags/sa.webp (added)
-
tags/0.0.7/asset/flags/sb.webp (added)
-
tags/0.0.7/asset/flags/sc.webp (added)
-
tags/0.0.7/asset/flags/sd.webp (added)
-
tags/0.0.7/asset/flags/se.webp (added)
-
tags/0.0.7/asset/flags/sg.webp (added)
-
tags/0.0.7/asset/flags/sh.webp (added)
-
tags/0.0.7/asset/flags/si.webp (added)
-
tags/0.0.7/asset/flags/sj.webp (added)
-
tags/0.0.7/asset/flags/sk.webp (added)
-
tags/0.0.7/asset/flags/sl.webp (added)
-
tags/0.0.7/asset/flags/sm.webp (added)
-
tags/0.0.7/asset/flags/sn.webp (added)
-
tags/0.0.7/asset/flags/so.webp (added)
-
tags/0.0.7/asset/flags/sr.webp (added)
-
tags/0.0.7/asset/flags/ss.webp (added)
-
tags/0.0.7/asset/flags/st.webp (added)
-
tags/0.0.7/asset/flags/sv.webp (added)
-
tags/0.0.7/asset/flags/sx.webp (added)
-
tags/0.0.7/asset/flags/sy.webp (added)
-
tags/0.0.7/asset/flags/sz.webp (added)
-
tags/0.0.7/asset/flags/tc.webp (added)
-
tags/0.0.7/asset/flags/td.webp (added)
-
tags/0.0.7/asset/flags/tf.webp (added)
-
tags/0.0.7/asset/flags/tg.webp (added)
-
tags/0.0.7/asset/flags/th.webp (added)
-
tags/0.0.7/asset/flags/tj.webp (added)
-
tags/0.0.7/asset/flags/tk.webp (added)
-
tags/0.0.7/asset/flags/tl.webp (added)
-
tags/0.0.7/asset/flags/tm.webp (added)
-
tags/0.0.7/asset/flags/tn.webp (added)
-
tags/0.0.7/asset/flags/to.webp (added)
-
tags/0.0.7/asset/flags/tr.webp (added)
-
tags/0.0.7/asset/flags/tt.webp (added)
-
tags/0.0.7/asset/flags/tv.webp (added)
-
tags/0.0.7/asset/flags/tw.webp (added)
-
tags/0.0.7/asset/flags/tz.webp (added)
-
tags/0.0.7/asset/flags/ua.webp (added)
-
tags/0.0.7/asset/flags/ug.webp (added)
-
tags/0.0.7/asset/flags/um.webp (added)
-
tags/0.0.7/asset/flags/us.webp (added)
-
tags/0.0.7/asset/flags/uy.webp (added)
-
tags/0.0.7/asset/flags/uz.webp (added)
-
tags/0.0.7/asset/flags/va.webp (added)
-
tags/0.0.7/asset/flags/vc.webp (added)
-
tags/0.0.7/asset/flags/ve.webp (added)
-
tags/0.0.7/asset/flags/vg.webp (added)
-
tags/0.0.7/asset/flags/vi.webp (added)
-
tags/0.0.7/asset/flags/vn.webp (added)
-
tags/0.0.7/asset/flags/vu.webp (added)
-
tags/0.0.7/asset/flags/wf.webp (added)
-
tags/0.0.7/asset/flags/ws.webp (added)
-
tags/0.0.7/asset/flags/xk.webp (added)
-
tags/0.0.7/asset/flags/ye.webp (added)
-
tags/0.0.7/asset/flags/yt.webp (added)
-
tags/0.0.7/asset/flags/za.webp (added)
-
tags/0.0.7/asset/flags/zm.webp (added)
-
tags/0.0.7/asset/flags/zw.webp (added)
-
tags/0.0.7/asset/flags/zz.webp (added)
-
tags/0.0.7/asset/json (added)
-
tags/0.0.7/asset/json/lang-default.json (added)
-
tags/0.0.7/classes (added)
-
tags/0.0.7/classes/jt-locale.php (added)
-
tags/0.0.7/classes/jt-path.php (added)
-
tags/0.0.7/classes/jt-string.php (added)
-
tags/0.0.7/frontend (added)
-
tags/0.0.7/frontend/css (added)
-
tags/0.0.7/frontend/css/language-switcher.css (added)
-
tags/0.0.7/frontend/index.php (added)
-
tags/0.0.7/helper (added)
-
tags/0.0.7/helper/jt-util.php (added)
-
tags/0.0.7/inc (added)
-
tags/0.0.7/inc/autoloader.php (added)
-
tags/0.0.7/inc/base.php (added)
-
tags/0.0.7/inc/functions.php (added)
-
tags/0.0.7/inc/index.php (added)
-
tags/0.0.7/inc/plugin.php (added)
-
tags/0.0.7/index.php (added)
-
tags/0.0.7/just-translate.php (added)
-
tags/0.0.7/modules (added)
-
tags/0.0.7/modules/index.php (added)
-
tags/0.0.7/modules/jt-cache.php (added)
-
tags/0.0.7/modules/jt-query.php (added)
-
tags/0.0.7/modules/jt-settings.php (added)
-
tags/0.0.7/modules/jt-table.php (added)
-
tags/0.0.7/modules/jt-translator.php (added)
-
tags/0.0.7/modules/jt.php (added)
-
tags/0.0.7/readme.txt (added)
-
tags/0.0.7/uninstall.php (added)
-
trunk/admin/translations.php (modified) (2 diffs)
-
trunk/helper/jt-util.php (modified) (1 diff)
-
trunk/just-translate.php (modified) (2 diffs)
-
trunk/modules/jt-cache.php (added)
-
trunk/modules/jt-query.php (modified) (3 diffs)
-
trunk/modules/jt-translator.php (modified) (4 diffs)
-
trunk/modules/jt.php (modified) (4 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
just-translate/trunk/admin/translations.php
r3336773 r3338467 1 1 <?php 2 2 3 use WPJT\Modules\JT_Cache; 3 4 use WPJT\Modules\JT_Query; 4 5 … … 29 30 30 31 JT_Query::clear_html_cache(); 32 JT_Cache::clear_translated(); 31 33 } 32 34 -
just-translate/trunk/helper/jt-util.php
r3337063 r3338467 244 244 // phpcs:disable WordPress.PHP.DevelopmentFunctions.error_log_print_r -- used only on development mode 245 245 if(!defined('WPJT_DEV_MODE')) define('WPJT_DEV_MODE', false); 246 if(!WPJT_DEV_MODE) return; 247 246 if(!WPJT_DEV_MODE) return; 248 247 echo '<pre>'; 249 248 print_r($var); 250 249 echo '</pre>'; 251 252 250 if($exit) die(); 253 251 // phpcs:enable WordPress.PHP.DevelopmentFunctions.error_log_print_r 254 252 } 253 254 public static function get_device_type() { 255 $ua = isset( $_SERVER['HTTP_USER_AGENT'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : ''; 256 if (preg_match('/ipad|tablet|(android(?!.*mobile))|kindle|silk|playbook|nexus 7|nexus 10|xoom/', $ua)) { 257 return 'tablet'; 258 } 259 if (preg_match('/mobile|iphone|ipod|android.*mobile|blackberry|iemobile|opera mini|windows phone/', $ua)) { 260 return 'mobile'; 261 } 262 return 'desktop'; 263 } 255 264 } -
just-translate/trunk/just-translate.php
r3337063 r3338467 3 3 * Plugin Name: Just Translate 4 4 * Description: Automatically captures and translates text strings using a custom translation panel with multi-language support. 5 * Version: 0.0. 65 * Version: 0.0.7 6 6 * Requires at least: 6.5 7 7 * Requires PHP: 8.1 … … 17 17 if (!defined('ABSPATH')) exit; 18 18 19 define( 'WPJT_VERSION', '0.0. 6' );19 define( 'WPJT_VERSION', '0.0.7' ); 20 20 define( 'WPJT_PLUGIN_FILE', __FILE__ ); 21 21 define( 'WPJT_PATH', plugin_dir_path( WPJT_PLUGIN_FILE ) ); 22 22 define( 'WPJT_URL', plugin_dir_url( WPJT_PLUGIN_FILE ) ); 23 24 define( 'WPJT_CACHE_DIR', WP_CONTENT_DIR . '/cache/wpjt/' ); 25 23 26 24 27 // include -
just-translate/trunk/modules/jt-query.php
r3336773 r3338467 130 130 } 131 131 132 public static function get_html_cache_key(string $uri, string $source_locale_code, string $target_locale_code): ?string { 133 $uri_key = md5($uri); 134 135 $cache_key = "{$uri_key}|{$source_locale_code}|{$target_locale_code}"; 136 $html_key = wp_cache_get($cache_key, 'wpjt_html_key'); 137 if($html_key === false) { 138 global $wpdb; 139 $html_key = $wpdb->get_var($wpdb->prepare( 140 "SELECT html_key FROM %i 141 WHERE uri_key = %s AND source_lang_code = %s AND target_lang_code = %s" 142 , [$wpdb->prefix . JT_Table::HTML_CACHE_TABLE, $uri_key, $source_locale_code, $target_locale_code] 143 )); 144 145 if($html_key){ 146 wp_cache_set($cache_key, $html_key, 'wpjt_html_key'); 147 } 148 } 149 150 return $html_key; 151 } 132 152 133 153 /** … … 156 176 157 177 public static function clear_html_cache(){ 158 global $wpdb; 178 // phpcs:disable WordPress.DB.DirectDatabaseQuery.NoCaching -- no caching needed 179 global $wpdb; 180 181 // $result = $wpdb->query($wpdb->prepare( 182 // "TRUNCATE TABLE %i", 183 // [$wpdb->prefix . JT_Table::HTML_CACHE_TABLE] 184 // )); 185 159 186 $result = $wpdb->query($wpdb->prepare( 160 " TRUNCATE TABLE %i",187 "DELETE FROM %i WHERE source_lang_code!=target_lang_code", 161 188 [$wpdb->prefix . JT_Table::HTML_CACHE_TABLE] 162 )); 189 )); 163 190 return $result; 191 // phpcs:enable WordPress.DB.DirectDatabaseQuery.NoCaching 164 192 } 165 193 … … 472 500 $slug_id = $wpdb->get_var($wpdb->prepare( 473 501 "SELECT id FROM %i 474 WHERE lang_code = %s AND slug= %s",475 [$wpdb->prefix . JT_Table::SLUG_SOURCE_TABLE, $s ource_locale_code, $slug]502 WHERE slug = %s AND lang_code = %s", 503 [$wpdb->prefix . JT_Table::SLUG_SOURCE_TABLE, $slug, $source_locale_code] 476 504 )); 477 505 -
just-translate/trunk/modules/jt-translator.php
r3337063 r3338467 2 2 namespace WPJT\Modules; 3 3 4 use WPJT\Classes\JT_Locale; 4 5 use WPJT\Classes\JT_Path; 5 6 use WPJT\Classes\JT_String; … … 259 260 260 261 $parsed = wp_parse_url($url); 261 262 262 $path = isset($parsed['path']) ? $parsed['path'] : '' ; 263 264 if(self::should_skip_path($path)) return $url; 265 263 266 $path = JT_Path::get_instance($path)->value($locale_code); 264 267 265 $query = isset($parsed['query']) ? $parsed['query'] : '';268 $query = isset($parsed['query']) ? '?' . $parsed['query'] : ''; 266 269 267 270 return home_url($path). $query ; … … 292 295 '/wp-includes/', 293 296 '/wp-json/' 294 ]; 297 ]; 298 295 299 foreach($skip_prefixes as $skip_prefix) { 296 if( substr($path, 0, strlen($skip_prefix)) === $skip_prefix ) {300 if( substr($path, 0, strlen($skip_prefix)) === $skip_prefix ) { 297 301 return apply_filters('wpjt_should_skip_path', true, $path); 298 302 } … … 301 305 return apply_filters('wpjt_should_skip_path', false, $path);; 302 306 } 307 308 public static function html_translate_http_header(){ 309 $active_code = JT_Locale::get_active_code(); 310 311 $headers = headers_list(); 312 $header_links = []; 313 314 // Kumpulkan semua link yang ada 315 foreach ($headers as $header) { 316 if (stripos($header, 'Link:') === 0) { 317 $links = explode(', ', substr($header, 6)); 318 foreach ($links as $link) { 319 $header_links[] = $link; 320 } 321 } 322 } 323 324 if (empty($header_links)) { 325 return false; 326 } 327 328 header_remove('Link'); 329 foreach ($header_links as $link) { 330 $parts = explode('; ', $link); 331 $uri = trim($parts[0], '<>'); 332 $translated_url = self::translate_url($uri, $active_code); 333 header('Link: ' . '<' . $translated_url . '>; ' . implode('; ', array_slice($parts, 1)), false); 334 } 335 336 return true; 337 } 303 338 } -
just-translate/trunk/modules/jt.php
r3337063 r3338467 19 19 $parsed = wp_parse_url( WPJT_SITE_URL ); 20 20 $path = isset($parsed['path']) ? $parsed['path'] : ''; 21 $query = isset($parsed['query']) ? $parsed['query'] : '';21 $query = isset($parsed['query']) ? '?' . $parsed['query'] : ''; 22 22 23 23 /** jika pathnya kosong, ini adalah home di source */ … … 47 47 } 48 48 49 $source_path = $o_path->value(JT_Locale::get_source_code()); 50 $source_uri = $source_path . $query; 51 49 52 /** set REQUEST_URI dan PATH_INFO sesuai dengan source path agar dikenali oleh WP request */ 50 $source_path = $o_path->value(JT_Locale::get_source_code()); 51 $_SERVER['REQUEST_URI'] = $source_path . $query; 53 $_SERVER['REQUEST_URI'] = $source_uri; 52 54 $_SERVER['PATH_INFO'] = $source_path; 53 55 56 add_filter('redirect_canonical', function($redirect_url) use($o_path) { 57 if ( !strpos( $redirect_url, site_url() ) === 0 ) return $redirect_url; 58 59 if($o_path->is_source) return $redirect_url; 60 61 $parsed = wp_parse_url( $redirect_url ); 62 $path = isset($parsed['path']) ? $parsed['path'] : ''; 63 $query = isset($parsed['query']) ? '?' . $parsed['query'] : ''; 64 65 $rpath = JT_Path::get_instance($path); 66 if($rpath->is_translated($o_path->locale_code)){ 67 return home_url($rpath->value($o_path->locale_code) . $query); 68 } 69 70 return $redirect_url; 71 }); 72 54 73 self::$loaded=true; 55 74 … … 70 89 */ 71 90 public static function cb_init_action(): void{ 91 $uri = isset($_SERVER['REQUEST_URI']) ? sanitize_url( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; 92 72 93 wp_register_style('wpjt_translations', WPJT_URL . '/admin/css/translations.css', [], '0.0.1'); 73 94 wp_register_style('wpjt_language_switcher', WPJT_URL . '/frontend/css/language-switcher.css', [], '0.0.1'); … … 86 107 // nanti mungkin perlu kondisi tambahan 87 108 ob_start(function($output){ 88 $active_code = JT_Locale::get_active_code(); 89 header('Content-Language: ' . $active_code); 90 91 // return JT_Translator::translate_html($output, $active_code); 92 93 if(JT_Locale::get_source_code() != $active_code){ 94 $uri = isset($_SERVER['REQUEST_URI']) ? sanitize_url( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; 95 $html_key = sha1($output); 96 $translated_html = JT_Query::get_html_cache($uri, JT_Locale::get_source_code(), $active_code, $html_key); 97 98 if($translated_html){ 99 return $translated_html ; 100 } else { 101 $translated_html = JT_Translator::translate_html($output, $active_code); 102 JT_Query::set_html_cache($uri, JT_Locale::get_source_code(), $active_code, $translated_html, $html_key); 103 } 104 } else { 109 $active_code = JT_Locale::get_active_code(); 110 $uri = isset($_SERVER['REQUEST_URI']) ? sanitize_url( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : ''; 111 $html_key = sha1($output); 112 $translated_html = JT_Cache::get_html_cache($uri, $active_code, $html_key); 113 114 /** translate header, saat ini baru translate Link */ 115 if(!$translated_html){ 116 header('Content-Language: ' . $active_code); 105 117 $translated_html = JT_Translator::translate_html($output, $active_code); 118 JT_Cache::set_html_cache($uri, $active_code, $translated_html, $html_key); 106 119 } 107 120 121 JT_Translator::html_translate_http_header(); 108 122 return $translated_html; 109 }); 123 }); 110 124 } 111 125 -
just-translate/trunk/readme.txt
r3337063 r3338467 6 6 Tested up to: 6.8 7 7 Requires PHP: 8.1 8 Stable tag: 0.0. 68 Stable tag: 0.0.7 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 111 111 112 112 == Changelog == 113 = 0.0.7 = 114 * Change cache storage from database to files 115 * Add ability to translate http header links 116 113 117 = 0.0.6 = 114 118 * Fix internal link recognition when no scheme or host is specified 119 * Code refactoring 120 121 = 0.0.5 = 122 * improve perfomance (cache the translated html) 115 123 * Code refactoring 116 124 … … 132 140 == Upgrade Notice == 133 141 134 = 0.0. 6=135 * Fix internal link recognition when no scheme or host is specified136 * Code refactoring142 = 0.0.7 = 143 * Change cache storage from database to files 144 * Add ability to translate http header links
Note: See TracChangeset
for help on using the changeset viewer.