Skip to content

Commit

Permalink
fix for #160 and #161
Browse files Browse the repository at this point in the history
added url pattern defaults
  • Loading branch information
Matthew Jackowski committed May 27, 2016
1 parent 7094077 commit 8f2c6c9
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 18 deletions.
8 changes: 3 additions & 5 deletions includes/admin/transifex-live-integration-admin.php
Original file line number Diff line number Diff line change
Expand Up @@ -161,11 +161,9 @@ static function options_page() {
$url_options_subdirectory = ob_get_clean();


$site_url = site_url();
$site_url_subdirectory_example = $site_url . '/%lang%';
$site_url_array = explode( '/', $site_url );
$site_url_array[2] = '%lang%.' . $site_url_array[2];
$site_url_subdomain_example = implode( '/', $site_url_array );
//TODO deprecated Mjj 20160527 $site_url = site_url();
$site_url_subdirectory_example = $settings['subdirectory_pattern'];
$site_url_subdomain_example = $settings['subdomain_pattern'];


ob_start();
Expand Down
46 changes: 40 additions & 6 deletions includes/lib/transifex-live-integration-javascript.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,22 @@ class Transifex_Live_Integration_Javascript {
* @var array
*/
private $language_map;
private $url_options;
private $subdomain_pattern;

/**
* Public constructor, sets local settings
* @param array $settings Associative array of plugin settings.
*/
public function __construct( $settings, $live_settings ) {
Plugin_Debug::logTrace();
$this->live_settings = $live_settings; // set defaults
$this->live_settings = $live_settings; // set defaults
$this->live_settings['api_key'] = $settings['api_key']; // add api key
$this->lang = false;
$this->source_language = $settings['source_language'];
$this->language_map = $settings['language_map'];
$this->url_options = $settings['url_options'];
$this->subdomain_pattern = $settings['subdomain_pattern'];
}

/**
Expand Down Expand Up @@ -98,18 +102,48 @@ function wp_head_hook() {
Plugin_Debug::logTrace();
$lang = $this->lang;
$live_settings = $this->live_settings;
if ( $lang ) {
$detectlang = <<<DETECTLANG
$snippet = '';

$live_settings_string = '';
if ( $this->url_options == 2 ) {
$case_map = '';
$subdomain_pattern = $this->subdomain_pattern;
$source_language = $this->source_language;
$language_map = json_decode( $this->language_map, true )[0];
$escaped_subdomain_pattern = str_replace('/','\/',$subdomain_pattern);
foreach ($language_map as $key => $value) {
$case_map .= "case '$value': return '$key'; break; ";
}

$snippet .= <<<SUBDOMAIN
<script type="text/javascript">
function subdomain_detect_lang() {
var s = window.location.protocol+'\/\/'+window.location.host;
var r = /$escaped_subdomain_pattern/i;
var m = r.exec(s);
if (m===null){return '$source_language';}
var a = m[1];
switch(a) { $case_map default: return '$source_language'; break;} return a;}
</script>
SUBDOMAIN;
$detectlang = "subdomain_detect_lang";
} else {
if ( $lang ) {
$detectlang = <<<DETECTLANG
function() { return "$lang";}
DETECTLANG;
} else {
$live_settings_string = json_encode( $live_settings );
}
}
if ( !($live_settings_string ) ) {
$live_settings = array_merge( $live_settings, ['detectlang' => '%function%' ] );
$live_settings_json = json_encode( $live_settings );
$live_settings_string = str_replace( '"%function%"', $detectlang, $live_settings_json );
} else {
$live_settings_string = json_encode( $live_settings );
}

$snippet = <<<SNIPPET
$snippet .= <<<SNIPPET
<script type="text/javascript">window.liveSettings=$live_settings_string;</script>
<script type="text/javascript" src="//cdn.transifex.com/live.js"></script>\n
SNIPPET;
Expand Down
16 changes: 15 additions & 1 deletion includes/transifex-live-integration-defaults.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,19 @@ static function transifex_settings() {
];
}

static function calc_default_subdomain () {
$site_url = site_url();
$site_url_array = explode( '/', $site_url );
$site_url_array[2] = '%lang%.' . $site_url_array[2];
$site_url_subdomain_example = implode( '/', $site_url_array );
return $site_url_subdomain_example;
}

static function calc_default_subdirectory() {
$site_url = site_url();
return $site_url . '/%lang%';
}

/**
* Static function for settings defaults
* @return array Returns the settings array
Expand Down Expand Up @@ -97,7 +110,8 @@ static function settings() {
'languages' => '',
'hreflang' => false,
'url_options' => 1,
'subdomain_pattern' => '',
'subdomain_pattern' => $this->calc_default_subdomain(),
'subdirectory_pattern' => $this->calc_default_subdirectory(),
'static_frontpage_support' => false,
'enable_prerender' => 0,
'prerender_url' => '',
Expand Down
8 changes: 7 additions & 1 deletion javascript/transifex-live-integration-settings-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,24 @@ function transifex_live_integration_map_update(tl) {
} else {
var t = transifex_languages;
}
var h = [];
//var h = [];
var local_lm = [];
var local_hreflm = [];
var arr = {};
var arrr= {};
// loop through transifex languages
jQuery.each(
t, function (i, s) {
var l = jQuery('#transifex-integration-live-' + s).val();
var h = jQuery('#transifex-integration-live-hreflang-' + s).val();
arrr[s] = h;
arr[s] = l;
}
);
local_lm.push(arr);
local_hreflm.push(arrr);
jQuery('#transifex_live_settings_language_map').val(JSON.stringify(local_lm));
jQuery('#transifex_live_settings_hreflang_map').val(JSON.stringify(local_hreflm));
return true;
}

Expand Down
5 changes: 4 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,7 @@ Added additional Prerender options for caching
A few minor fixes. Revised admin UI

= 1.3.4 =
Minor patch release, cleared up some minor warning issues
Minor patch release, cleared up some minor warning issues

= 1.3.5 =
Fix to allow custom hreflang code and enhanced subdomain language detection
5 changes: 4 additions & 1 deletion readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Contributors: txmatthew, ThemeBoy, brooksx
Tags: transifex, translate, translations, localize, localise, localization, localisation, multilingual, t9n, l10n, i18n, language, switcher, live, translation, translator
Requires at least: 3.5.2
Tested up to: 4.5.2
Stable tag: 1.3.4
Stable tag: 1.3.5
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Expand Down Expand Up @@ -127,3 +127,6 @@ A few minor fixes. Revised admin UI

= 1.3.4 =
Minor patch release, cleared up some minor warning issues

= 1.3.5 =
Fix to allow custom hreflang code and enhanced subdomain language detection
6 changes: 3 additions & 3 deletions transifex-live-integration.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
*
* @link http://docs.transifex.com/developer/integrations/wordpress
* @package TransifexLiveIntegration
* @version 1.3.4
* @version 1.3.5
*
* @wordpress-plugin
* Plugin Name: Transifex Live Translation Plugin
* Plugin URI: http://docs.transifex.com/developer/integrations/wordpress
* Description: Translate your WordPress website or blog without the usual complex setups.
* Version: 1.3.4
* Version: 1.3.5
* License: GNU General Public License
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: transifex-live-integration
Expand Down Expand Up @@ -75,7 +75,7 @@
}

define( 'LANG_PARAM', 'lang' );
$version = '1.3.4';
$version = '1.3.5';

require_once( dirname( __FILE__ ) . '/transifex-live-integration-main.php' );
Transifex_Live_Integration::do_plugin( is_admin(), $version );

0 comments on commit 8f2c6c9

Please sign in to comment.