| @@ -202,8 +202,20 @@ | ||
| 202 | 202 | } else { |
| 203 | 203 | $args_clear['texts_unknow'] = $args['texts_unknow']; |
| 204 | 204 | } |
| 205 | 205 | |
| 206 | + /** | |
| 207 | + * Ckeck "save_translations" | |
| 208 | + */ | |
| 209 | + | |
| 210 | + $args_clear['save_translations'] = true; | |
| 211 | + | |
| 212 | + if ( isset( $args['save_translations'] ) | |
| 213 | + && is_bool( $args['save_translations'] ) | |
| 214 | + ) { | |
| 215 | + $args_clear['save_translations'] = $args['save_translations']; | |
| 216 | + } | |
| 217 | + | |
| 206 | 218 | $args = $args_clear; |
| 207 | 219 | } |
| 208 | 220 | |
| 209 | 221 | |
| @@ -252,16 +264,10 @@ | ||
| 252 | 264 | /** |
| 253 | 265 | * Get all translations for all languages |
| 254 | 266 | */ |
| 255 | 267 | |
| 256 | - $translations_all_languages = get_option( 'wplng_cached_translations' ); | |
| 268 | + $translations_all_languages = wplng_get_translations(); | |
| 257 | 269 | |
| 258 | - if ( empty( $translations_all_languages ) | |
| 259 | - || ! is_array( $translations_all_languages ) | |
| 260 | - ) { | |
| 261 | - $translations_all_languages = wplng_get_translations_from_query(); | |
| 262 | - } | |
| 263 | - | |
| 264 | 270 | /** |
| 265 | 271 | * Get unknow texts & Separate page translations |
| 266 | 272 | */ |
| 267 | 273 | |
| @@ -266,13 +272,13 @@ | ||
| 266 | 272 | */ |
| 267 | 273 | |
| 268 | 274 | $texts_unknow = array(); |
| 269 | 275 | $translations_in_page = array(); |
| 276 | + $detection = wplng_api_feature_is_allow( 'detection' ); | |
| 270 | 277 | |
| 271 | 278 | foreach ( $texts as $text ) { |
| 272 | 279 | |
| 273 | - $is_in = false; | |
| 274 | - $detection = wplng_api_feature_is_allow( 'detection' ); | |
| 280 | + $is_in = false; | |
| 275 | 281 | |
| 276 | 282 | $array_index = (string) mb_substr( $text, 0, 1 ); |
| 277 | 283 | $array_index .= (string) strlen( $text ); |
| 278 | 284 | |
| @@ -278,10 +284,8 @@ | ||
| 278 | 284 | |
| 279 | 285 | if ( ! empty( $translations_all_languages[ $array_index ] ) ) { |
| 280 | 286 | foreach ( $translations_all_languages[ $array_index ] as $translation ) { |
| 281 | 287 | |
| 282 | - // $source = $translation['source']; | |
| 283 | - | |
| 284 | 288 | if ( $text === $translation['source'] |
| 285 | 289 | && isset( $translation['translations'][ $args['language_target'] ] ) |
| 286 | 290 | && is_string( $translation['translations'][ $args['language_target'] ] ) |
| 287 | 291 | && isset( $translation['review'] ) |
| @@ -347,10 +351,15 @@ | ||
| 347 | 351 | /** |
| 348 | 352 | * Check if the current page is overloaded |
| 349 | 353 | */ |
| 350 | 354 | |
| 351 | - $args['overloaded'] = wplng_get_api_overloaded() && ! empty( $args['count_texts_unknow'] ); | |
| 355 | + $api_data = wplng_get_api_data(); | |
| 352 | 356 | |
| 357 | + $args['overloaded'] = ( | |
| 358 | + wplng_get_api_overloaded() | |
| 359 | + && ! empty( $args['count_texts_unknow'] ) | |
| 360 | + ) || ! empty( $api_data['expired'] ); | |
| 361 | + | |
| 353 | 362 | /** |
| 354 | 363 | * Define $max_translations |
| 355 | 364 | */ |
| 356 | 365 | |
| @@ -368,9 +377,9 @@ | ||
| 368 | 377 | |
| 369 | 378 | } elseif ( $args['load'] === 'enabled' |
| 370 | 379 | && $args['count_texts_unknow'] > 10 |
| 371 | 380 | && ! $args['overloaded'] |
| 372 | - && wplng_api_feature_is_allow( 'detection' ) | |
| 381 | + && $detection | |
| 373 | 382 | && current_user_can( 'edit_posts' ) |
| 374 | 383 | ) { |
| 375 | 384 | |
| 376 | 385 | /** |
| @@ -418,12 +427,14 @@ | ||
| 418 | 427 | ); |
| 419 | 428 | } |
| 420 | 429 | } |
| 421 | 430 | |
| 422 | - $translations_new = wplng_save_translations( | |
| 423 | - $translations_new, | |
| 424 | - $args['language_target'] | |
| 425 | - ); | |
| 431 | + if ( $args['save_translations'] === true ) { | |
| 432 | + $translations_new = wplng_save_translations( | |
| 433 | + $translations_new, | |
| 434 | + $args['language_target'] | |
| 435 | + ); | |
| 436 | + } | |
| 426 | 437 | |
| 427 | 438 | /** |
| 428 | 439 | * Merge know and new translations |
| 429 | 440 | */ |