PluginProbe
Translate and Go multilingual – Automatic AI translation – wpLingua / 1.0.4
Translate and Go multilingual – Automatic AI translation – wpLingua v1.0.4
2.16.7 2.16.6 2.16.5 2.16.4 2.16.3 2.16.2 2.16.1 2.16.0 2.15.2 2.15.1 2.15.0 2.14.3 2.14.2 2.14.1 2.14.0 2.13.1 2.13.0 2.12.3 2.12.2 2.12.1 trunk 1.0.3 1.0.4 1.0.5 1.1.0 All 112 releases
wplingua / inc / admin / option-page-settings.php

option-page-settings.php in Translate and Go multilingual – Automatic AI translation – wpLingua 1.0.4, at inc/admin/option-page-settings.php

346 lines 11.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // If this file is called directly, abort.
4 if ( ! defined( 'WPINC' ) ) {
5 die;
6 }
7
8
9 /**
10 * Print HTML Option page : wpLingua Settings
11 *
12 * @return void
13 */
14 function wplng_option_page_settings() {
15
16 delete_transient( 'wplng_api_key_data' );
17
18 if ( empty( wplng_get_api_data() ) || is_multisite() ) {
19 wplng_option_page_register();
20 return;
21 }
22
23 wplng_settings_part_first_use();
24
25 ?>
26 <div class="wrap">
27
28 <h1 class="wp-heading-inline"><span class="dashicons dashicons-translation"></span> <?php esc_html_e( 'wpLingua - Translation solution for multilingual website', 'wplingua' ); ?></h1>
29
30 <hr class="wp-header-end">
31
32 <form method="post" action="options.php">
33 <?php
34 settings_fields( 'wplng_settings' );
35 do_settings_sections( 'wplng_settings' );
36 ?>
37
38 <table class="form-table wplng-form-table">
39 <tr>
40 <th scope="row"><?php esc_html_e( 'Website language', 'wplingua' ); ?></th>
41 <td>
42 <?php wplng_settings_part_language_website(); ?>
43 </td>
44 </tr>
45 <tr>
46 <th scope="row"><?php esc_html_e( 'Translated languages', 'wplingua' ); ?></th>
47 <td>
48 <?php wplng_settings_part_languages_target(); ?>
49 </td>
50 </tr>
51 <tr>
52 <th scope="row"><?php esc_html_e( 'API features', 'wplingua' ); ?></th>
53 <td>
54 <fieldset>
55 <?php wplng_settings_part_features(); ?>
56 </fieldset>
57 </td>
58 </tr>
59 <tr>
60 <th scope="row"><?php _e( 'API Key', 'wplingua' ); ?></th>
61 <td>
62 <?php wplng_settings_part_api_key(); ?>
63 </td>
64 </tr>
65 </table>
66
67 <?php submit_button(); ?>
68
69 </form>
70 </div>
71 <?php
72 }
73
74
75 /**
76 * Print HTML subsection of Option page : wpLingua Settings - First use
77 *
78 * @return void
79 */
80 function wplng_settings_part_first_use() {
81
82 if ( ! empty( get_option( 'wplng_website_language' ) )
83 || 'all' === wplng_get_api_language_website()
84 ) {
85 return;
86 }
87
88 update_option( 'wplng_website_language', wplng_get_api_language_website() );
89
90 $data = wplng_get_api_data();
91
92 if ( empty( $data['languages_target'][0] ) ) {
93 return;
94 }
95
96 // Set option for target language
97 $language_target = wplng_get_language_by_id( $data['languages_target'][0] );
98 if ( ! empty( $language_target ) ) {
99 update_option(
100 'wplng_target_languages',
101 wp_json_encode(
102 array( $language_target )
103 )
104 );
105 } else {
106 return;
107 }
108
109 // Get URL for first registered language of front page
110 $url_front_page_translated = wplng_url_translate(
111 get_site_url(),
112 $language_target['id']
113 );
114
115 ?>
116 <div class="wplng-notice notice notice-info" id="wplng-notice-first-loading-loading">
117 <iframe src="<?php echo esc_url( $url_front_page_translated ); ?>" frameborder="0" id="wplng-first-load-iframe" style="display: none;"></iframe>
118 <h2><span class="dashicons dashicons-update wplng-spin"></span> <?php esc_html_e( 'Your site is being translated and will be ready soon.', 'wplingua' ); ?></h2>
119 </div>
120
121 <div class="wplng-notice notice notice-success" id="wplng-notice-first-loading-loaded" style="display: none;">
122 <h2>🎉 <?php esc_html_e( 'Your website is now multilingual ! You can start visiting the translated version.', 'wplingua' ); ?></h2>
123 <p>
124 <a href="<?php echo esc_url( $url_front_page_translated ); ?>" target="_blank" class="button button-primary">
125 <?php esc_html_e( 'Visit your multilingual website', 'wplingua' ); ?>
126 </a>
127 </p>
128 </div>
129 <?php
130 }
131
132
133 /**
134 * Print HTML subsection of Option page : wpLingua Settings - Website language
135 *
136 * @return void
137 */
138 function wplng_settings_part_language_website() {
139
140 $api_language_website = wplng_get_api_language_website();
141
142 if ( 'all' !== $api_language_website ) {
143 echo '<fieldset style="display: none;">';
144 } else {
145 echo '<fieldset>';
146 }
147
148 echo '<label for="wplng_website_language" class="wplng-fe-50">';
149 echo '<strong>';
150 esc_html_e( 'Original website language: ', 'wplingua' );
151 echo ' </strong>';
152 echo '</label>';
153
154 echo '<select id="wplng_website_language" name="wplng_website_language" class="wplng-fe-50">';
155 $website_language_saved = true;
156 if ( empty( wplng_get_language_website_id() ) ) {
157 $website_language_saved = false;
158 } else {
159
160 $website_language_id = wplng_get_language_website_id();
161 $website_language = wplng_get_language_by_id( $website_language_id );
162
163 if ( ! empty( $website_language['id'] )
164 && ! empty( $website_language['name'] )
165 ) {
166 echo '<option value="' . esc_attr( $website_language['id'] ) . '">';
167 echo esc_html( $website_language['name'] );
168 echo '</option>';
169 } else {
170 $website_language_saved = false;
171 }
172 }
173
174 if ( ! $website_language_saved ) {
175 echo '<option value="">';
176 esc_html_e( 'Please choose an option', 'wplingua' );
177 echo '</option>';
178 }
179
180 echo '</select>';
181 echo '<hr>';
182 echo '</fieldset>';
183
184 if ( 'all' !== $api_language_website ) {
185 echo '<p>';
186 echo '<strong>';
187 esc_html_e( 'Original website language, defined by API key:', 'wplingua' );
188 echo ' </strong>';
189 echo ' </p>';
190 }
191 ?>
192
193 <div id="wplng-flags-radio-original-website-custom"><?php _e( 'Custom', 'wplingua' ); ?></div>
194
195 <div id="wplng-website-language-box">
196
197 <div class="wplng-website-language-displayed">
198 <div id="wplng-website-language" class="wplng-website-language-left">
199 <img src="<?php echo esc_url( wplng_get_language_website_flag() ); ?>" id="wplng-website-flag">
200 <?php echo esc_html( $website_language['name'] ); ?>
201 </div>
202 <div class="wplng-target-language-right">
203 <a href="javascript:void(0);" id="wplng-website-lang-update-flag"><?php esc_html_e( 'Edit flag', 'wplingua' ); ?></a>
204 </div>
205 </div>
206
207 <div id="wplng-flag-website-container">
208 <p>
209 <strong><?php esc_html_e( 'Flag:', 'wplingua' ); ?></strong>
210 <span id="wplng-flags-radio-original-website"></span>
211 </p>
212
213 <div id="wplng-website-flag-container">
214 <strong><?php esc_html_e( 'Custom flag URL: ', 'wplingua' ); ?></strong>
215 <input type="url" name="wplng_website_flag" id="wplng_website_flag" value="<?php echo esc_url( wplng_get_language_website_flag() ); ?>"/>
216 </div>
217 </div>
218
219 </div>
220 <?php
221 }
222
223
224 /**
225 * Print HTML subsection of Option page : wpLingua Settings - Languages target
226 *
227 * @return void
228 */
229 function wplng_settings_part_languages_target() {
230
231 $languages_target = wplng_get_languages_target_simplified();
232 $languages_target_ids = array();
233
234 foreach ( $languages_target as $language_target ) {
235 if ( ! empty( $language_target['id'] ) ) {
236 $languages_target_ids[] = $language_target['id'];
237 }
238 }
239
240 $languages_target = wplng_get_languages_by_ids( $languages_target_ids );
241
242 ?>
243 <fieldset id="fieldset-add-target-language">
244 <label for="wplng_add_new_target_language" class="wplng-fe-50">
245 <strong><?php esc_html_e( 'Add new target Language: ', 'wplingua' ); ?></strong>
246 </label>
247
248 <select id="wplng_add_new_target_language" name="wplng_add_new_target_language"></select>
249
250 <a class="button button-primary wplng-icon-button" id="wplng-target-lang-add" title="<?php esc_html_e( 'Add language', 'wplingua' ); ?>" href="javascript:void(0);">
251 <span class="dashicons dashicons-insert"></span>
252 </a>
253
254 <hr>
255 </fieldset>
256
257 <div id="wplng-target-language-template">
258 <div class="wplng-target-language">
259
260 <div class="wplng-target-language-displayed">
261 <div class="wplng-target-language-left">
262 [FLAG][NAME]
263 </div>
264
265 <div class="wplng-target-language-right">
266 <a href="javascript:void(0);" class="wplng-target-lang-update-flag" wplng-target-lang="[LANG]"><?php esc_html_e( 'Edit flag', 'wplingua' ); ?></a>
267 <a href="javascript:void(0);" class="wplng-target-lang-remove" wplng-target-lang="[LANG]"><?php esc_html_e( 'Remove', 'wplingua' ); ?></a>
268 </div>
269 </div>
270
271 <div class="wplng-flag-target-container" wplng-target-lang="[LANG]">
272 <p>
273 <strong><?php esc_html_e( 'Flag: ', 'wplingua' ); ?></strong>
274 <span class="wplng-subflags-radio-target-website">[FLAGS_OPTIONS]</span>
275 </p>
276 <div class="wplng-subflag-target-custom" wplng-target-lang="[LANG]">
277 <strong><?php esc_html_e( 'Custom flag URL: ', 'wplingua' ); ?></strong>
278 [INPUT]
279 </div>
280 </div>
281 </div>
282 </div>
283
284 <div id="wplng-target-languages-container">
285 <p><strong><?php esc_html_e( 'Target languages enabled: ', 'wplingua' ); ?></strong></p>
286 <div id="wplng-target-languages-list"></div>
287 <textarea name="wplng_target_languages" id="wplng_target_languages"><?php echo esc_textarea( wp_json_encode( $languages_target, true ) ); ?></textarea>
288 </div>
289 <?php
290 }
291
292
293 /**
294 * Print HTML subsection of Option page : wpLingua Settings - Feature
295 *
296 * @return void
297 */
298 function wplng_settings_part_features() {
299
300 $api_features = wplng_get_api_feature();
301
302 ?>
303 <p><strong><?php esc_html_e( 'API translation features:', 'wplingua' ); ?></strong></p>
304 <hr>
305
306 <p><?php esc_html_e( 'The options below require extended access to the wpLingua API to be functional on your website.', 'wplingua' ); ?></p>
307
308 <hr>
309
310 <fieldset>
311 <label for="wplng_translate_search">
312 <input type="checkbox" id="wplng_translate_search" name="wplng_translate_search" value="1" <?php checked( 1, get_option( 'wplng_translate_search' ) && in_array( 'search', $api_features ), true ); ?> <?php disabled( false, in_array( 'search', $api_features ), true ); ?>/> <?php esc_html_e( 'API feature: Search from translated languages', 'wplingua' ); ?>
313 </label>
314 </fieldset>
315
316 <fieldset>
317 <label for="wplng_translate_woocommerce">
318 <input type="checkbox" id="wplng_translate_woocommerce" name="wplng_translate_woocommerce" value="1" <?php checked( 1, get_option( 'wplng_translate_woocommerce' ) && in_array( 'woocommerce', $api_features ), true ); ?> <?php disabled( false, in_array( 'woocommerce', $api_features ), true ); ?>/> <?php esc_html_e( 'API feature: Allow WooCommerce shop translation', 'wplingua' ); ?>
319 </label>
320 </fieldset>
321
322 <?php
323 }
324
325
326 /**
327 * Print HTML subsection of Option page : wpLingua Settings - API Key
328 *
329 * @return void
330 */
331 function wplng_settings_part_api_key() {
332 ?>
333 <fieldset>
334 <p><label for="wplng_api_key"><strong><?php esc_html_e( 'Website API key:', 'wplingua' ); ?></strong></label></p>
335
336 <input type="text" id="wplng-api-key-fake" value="●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●" disabled></input>
337
338 <input type="text" name="wplng_api_key" id="wplng_api_key" value="<?php echo esc_attr( wplng_get_api_key() ); ?>" style="display: none;"></input>
339
340 <a class="button button-primary wplng-icon-button" id="wplng-api-key-show" href="javascript:void(0);" title="<?php esc_html_e( 'Show API key', 'wplingua' ); ?>"><span class="dashicons dashicons-visibility"></span></a>
341
342 <a class="button button-primary wplng-icon-button" id="wplng-api-key-hide" href="javascript:void(0);" title="<?php esc_html_e( 'Hide API key', 'wplingua' ); ?>" style="display: none;"><span class="dashicons dashicons-hidden"></span></a>
343 </fieldset>
344 <?php
345 }
346