PluginProbe
Translation with DeepL API / 1.7.5
Translation with DeepL API v1.7.5
trunk 0.1.20180323 1.0 1.2.5.1 1.5.2.5 1.7.5 2.4.3.12 2.4.3.9 2.4.5
wpdeepl / deepl-configuration.class.php

deepl-configuration.class.php in Translation with DeepL API 1.7.5, at deepl-configuration.class.php

262 lines 13.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class DeepLConfiguration {
4 static function getAPIKey() {
5 return apply_filters( __METHOD__, trim( get_option( 'wpdeepl_api_key' ) ) );
6 }
7 static function getAPIServer() {
8 $choice = get_option( 'wpdeepl_api_server');
9 if( !$choice ) {
10 $choice = 'paid_api';
11 }
12 $possibilities = self::getDeepLAPIServers();
13
14 if( isset( $possibilities[$choice] ) ) {
15 return apply_filters( __METHOD__, $possibilities[$choice]['server'], $choice, $possibilities );
16 }
17 else {
18 return apply_filters( __METHOD__, false, $choice, $possibilities );
19 }
20 }
21
22 static function getDeeplAPIServers() {
23 $array = array(
24 'paid_api' => array(
25 'server' => 'https://api.deepl.com/v2/',
26 'description' => __('Regular paid API Plan (https://api.deepl.com/v2/)', 'wpdeepl')
27 ),
28 'free_plan' => array(
29 'server' => 'https://api-free.deepl.com/v2/',
30 'description' => __('New (2021) free API plan (https://api-free.deepl.com)', 'wpdeepl' )
31 ),
32 );
33 return $array;
34 }
35
36 static function getLogLevel() {
37 return apply_filters( __METHOD__, get_option( 'wpdeepl_log_level') );
38 }
39
40 static function getMetaBoxPostTypes() {
41 return apply_filters( __METHOD__, get_option( 'wpdeepl_metabox_post_types' ) );
42 }
43 static function getMetaBoxDefaultBehaviour() {
44 return apply_filters( __METHOD__, get_option( 'wpdeepl_metabox_behaviour' ) );
45 }
46 static function getDefaultTargetLanguage() {
47 return apply_filters( __METHOD__, get_option( 'wpdeepl_default_language' ) );
48 }
49
50 static function getDisplayedLanguages() {
51 $value = get_option( 'wpdeepl_displayed_languages') ;
52 return apply_filters( __METHOD__, $value );
53 }
54 static function getMetaBoxContext() {
55 return apply_filters( __METHOD__, get_option( 'wpdeepl_metabox_context' ) );
56 }
57 static function getMetaBoxPriority() {
58 return apply_filters( __METHOD__, get_option( 'wpdeepl_metabox_priority' ) );
59 }
60
61 static function usingMultilingualPlugins() {
62 return false;
63 }
64
65
66
67
68
69 /**
70 * 0 = activated
71 * 1 = activated and setup
72 */
73 static function isPluginInstalled() {
74
75
76 return get_option( 'wpdeepl_plugin_installed' );
77 }
78
79 static function execWorks() {
80 if( exec( 'echo EXEC' ) == 'EXEC' ){
81 return true;
82 }
83 return false;
84 }
85
86 static function validateLang( $language_string, $output = 'assource' ) {
87 // output source will return 2 characters
88 // output source will return AA(-AA)
89
90 $language_string = filter_var( $language_string, FILTER_SANITIZE_STRING );
91 $language_string = str_replace( '-', '_', $language_string );
92
93 $all_languages = DeepLConfiguration::DefaultsAllLanguages();
94 $locale = get_locale();
95
96 $language = false;
97 if( isset( $all_languages[$language_string] ) ) {
98 $language = $all_languages[$language_string];
99 }
100 else {
101 foreach( $all_languages as $locale => $try_language ) {
102 if( $try_language['allcaps'] == strtoupper( $language_string ) ) {
103 $language = $try_language;
104 break;
105 }
106 if( $try_language['isocode'] == strtoupper( $language_string ) ) {
107 $language = $try_language;
108 break;
109 }
110 }
111 }
112
113 if( !$language ) {
114 return false;
115 }
116
117 $language['label'] = $language['labels'][$locale];
118
119 if( $output == 'assource' ) {
120 return $language['assource'];
121 }
122 elseif( $output == 'astarget' ) {
123 return $language['astarget'];
124 }
125 elseif( $output == 'isocode' ) {
126 return $language['isocode'];
127 }
128 elseif( $output == 'full' ) {
129 return $language;
130 }
131 elseif( $output == 'label' ) {
132
133 return $language['label'];
134 }
135 else {
136 return $language['isocode'];
137 }
138 }
139 static function DefaultsMetaboxBehaviours() {
140 $array = array(
141 'replace' => __( 'Replace content', 'wpdeepl' ),
142 'append' => __( 'Append to content', 'wpdeepl' )
143 );
144 return apply_filters( __METHOD__ , $array );
145 }
146
147 static function getFormalityLevel() {
148 return apply_filters( __METHOD__, get_option( 'wpdeepl_default_formality' ) );
149 }
150
151 static function DefaultsISOCodes() {
152 $locale = get_locale();
153 $all_languages = DeepLConfiguration::DefaultsAllLanguages();
154 $languages = array();
155 foreach( $all_languages as $isocode => $labels ) {
156 $languages[$isocode] = isset( $labels['labels']) && isset( $labels['labels'][$locale] ) ? $labels['labels'][$locale] : false;
157 }
158 return apply_filters( __METHOD__ , $languages );
159 }
160
161 static function DefaultsAllLanguages() {
162 $languages = array();
163
164 $csv_labels = 'locale,allcaps,isocode,assource,astarget,bg_BG,cs_CZ,da_DA,de_DE,el_GR,en_US,en_GB,es_ES,et_EE,fi_FI,fr_FR,hu_HU,it_IT,ja_JP,lt_LT,lv_LV,nl_NL,pl_PL,pt_PT,pt_BR,ro_RO,ru_RU,sk_SK,sl_SI,sv_SE,zh_CN
165 bg_BG,BG_BG,BG,BG,BG,Български,Bulharský,Bulgarsk,Bulgarisch,Βο�
166 λγαρική,Bulgarian,Bulgarian,Búlgaro,Bulgaaria,Bulgarian,Bulgare,Bolgár,Bulgaro,ブルガリア語,Bulgarų,Bulgāru,Bulgaars,Bułgarski,Búlgaro,Búlgaro,Bulgară,Болгарский,Bulharský,Bolgarski,Bulgariska,保加利亚人
167 cs_CZ,CS_CZ,CS,CS,CS,Чешки,Čeština,Tjekkisk,Tschechisch,Τσεχική,Czech,Czech,Checo,Tšehhi,Tšekki,Tchèque,Cseh,Ceco,チェコ語,čekų kalba,Čehu,Tsjechisch,czeski,Checo,Tcheco,Cehă,чешский,Český,Češčina,Tjeckiska,捷�
168
169 da_DA,DA_DA,DA,DA,DA,Датски,Dánština,dansk,Dänisch,Δανικά,Danish,Danish,Danés,Taani,tanska,Danois,dán,Danese,デンマーク語,Danų kalba,Dāņu,Deens,duński,Dinamarquês,Dinamarquês,Daneză,датский,Dánsky,danski,Danska,丹麦语
170 de_DE,DE_DE,DE,DE,DE,Немски,Němčina,tysk,Deutsch,Γερμανικά,German,German,Alemán,Saksa,saksa,Allemand,német,Tedesco,ドイツ語,Vokiečių kalba,Vācu,Duits,Niemiecki,Alemão,Alemão,Germană,немецкий язык,Nemčina,nemščina,Tyska,德国
171 el_GR,EL_GR,EL,EL,EL,Гръцки,Řečtina,Græsk,Griechisch,Ελληνικά,Greek,Greek,Griego,Kreeka,kreikka,Grec,görög,Greco,ギリシャ語,Graikų kalba,grieķu,Grieks,grecki,Grego,Grego,Greacă,греческий,Gréčtina,grščina,Grekiska,希�
172 �语
173 en_US,EN_US,EN,EN,EN-US,Английски,Angličtina,engelsk,Englisch,Αγγλικά,English,English,Inglés,inglise,Englanti,Anglais,angol,Inglese,英語,Anglų,Angļu,Engels,angielski,Inglês,Inglês,Engleză,английский язык,Angličtina,angleščina,Engelska,英文
174 en_GB,EN_GB,EN,EN,EN-GB,Английски,Angličtina,engelsk,Englisch,Αγγλικά,English,English,Inglés,inglise,Englanti,Anglais,angol,Inglese,英語,Anglų,Angļu,Engels,angielski,Inglês,Inglês,Engleză,английский язык,Angličtina,angleščina,Engelska,英文
175 es_ES,ES_ES,ES,ES,ES,Испански,Španělština,spansk,Spanisch,Ισπανικά,Spanish,Spanish,Español,Hispaania,Espanja,Espagnol,Spanyol,Spagnolo,スペイン語,Ispanų kalba,Spāņu,Spaans,hiszpański,Espanhol,Espanhol,Spaniolă,испанский,Španielčina,Španščina,Spanska,西班牙语
176 et_EE,ET_EE,ET,ET,ET,Естонски,Estonština,Estisk,Estnisch,Εσθονικά,Estonian,Estonian,Estonio,Eesti keel,Viro,Estonien,Észt,Estone,エストニア語,Estų kalba,Igauņu,Ests,estoński,Estónio,Estoniano,Estoniană,эстонский,Estónčina,Estonščina,Estniska,爱沙尼亚语
177 fi_FI,FI_FI,FI,FI,FI,Финландски,Finština,finsk,Finnisch,Φινλανδικά,Finnish,Finnish,Finlandés,Soome,suomi,Finnois,finn,Finlandese,フィンランド語,Suomių kalba,Somu,Fins,fiński,Finlandês,Finlandês,Finlandeză,финский,Fínsky,finščina,Finska,芬�
178
179 fr_FR,FR_FR,FR,FR,FR,Френски,Francouzština,Fransk,Französisch,Γαλλικά,French,French,Francés,prantsuse,ranska,Français,francia,Francese,フランス語,Prancūzų,Franču,Frans,Francuski,Francês,Francês,Franceză,французский,Francúzština,Francoski,Franska,法国人
180 hu_HU,HU_HU,HU,HU,HU,Унгарски,Maďarština,Ungarsk,Ungarisch,Ο�
181 γγρικά,Hungarian,Hungarian,Húngaro,Ungari,unkari,Hongrois,Magyar,Ungherese,ハンガリー語,vengrų,Ungāru,Hongaars,Węgierski,Húngaro,Húngaro,Maghiară,венгерский,Maďarčina,madžarski,Ungerska,匈牙利语
182 it_IT,IT_IT,IT,IT,IT,Италиански,italština,Italiensk,Italienisch,Ιταλικά,Italian,Italian,Italiano,Itaalia,italia,Italien,olasz,Italiano,イタリア語,italų kalba,Itāļu,Italiaans,włoski,Italiano,Italiano,Italiană,итальянский,taliansky,italijanščina,Italienska,意大利
183 ja_JP,JA_JP,JA,JA,JA,Японски,japonština,japansk,Japanisch,Ιαπωνικά,Japanese,Japanese,Japonés,jaapani,japani,Japonais,japán,Giapponese,日本語,japonų,japāņu,Japans,japoński,Japonês,Japonês,Japoneză,Японский,Japončina,japonščina,Japanska,日文
184 lt_LT,LT_LT,LT,LT,LT,Литовски,Litevština,Litauisk,Litauisch,Λιθο�
185 ανικά,Lithuanian,Lithuanian,Lituano,Leedu,liettuan kieli,Lituanien,litván,Lituano,リトアニア語,Lietuvių,Lietuviešu,Litouws,Litewski,Lituano,Lituano,lituaniană,литовский,Litovčina,litovščina,Litauiska,立陶宛语
186 lv_LV,LV_LV,LV,LV,LV,Латвийски,lotyština,lettisk,Lettisch,Λετονία,Latvian,Latvian,Letón,Läti,Latvian,Letton,lett,Lettone,ラトビア語,Latvių,Latviešu,Lets,łotewski,Letão,Letão,Letonă,латышский язык,lotyština,latvijski,Lettiska,拉脱维亚人
187 nl_NL,NL_NL,NL,NL,NL,Нидерландски,nizozemština,hollandsk,Niederländisch,Ολλανδικά,Dutch,Dutch,Holandés,Hollandi,Hollanti,Néerlandais,holland,Olandese,オランダ語,Olandų,Holandiešu,Nederlands,niderlandzki,Holandês,Holandês,olandeză,голландский,Holandský,nizozemščina,Nederländska,荷�
188 �语
189 pl_PL,PL_PL,PL,PL,PL,Полски,Polština,polsk,Polnisch,Πολωνικά,Polish,Polish,Polaco,Poola,Puola,Polonais,Lengyel,Polacco,ポーランド語,Lenkų kalba,Poļu,Pools,Polski,Polaco,Polonês,Poloneză,польский,Poľština,poljščina,Polska,波�
190 �语
191 pt_PT,PT_PT,PT,PT,PT-PT,Португалски,Portugalština,portugisisk,Portugiesisch,Πορτογαλικά,Portuguese,Portuguese,Portugués,Portugali,Portugali,Portugais,Portugál,Portoghese,ポルトガル語,Portugalų,Portugāļu,Portugees,portugalski,Português,Português,Portugheză,Португальский,Portugalčina,portugalščina,Portugisiska,葡萄牙语
192 pt_BR,PT_BR,PT,PT,PT-BR,Португалски,Portugalština,portugisisk,Portugiesisch,Πορτογαλικά,Portuguese,Portuguese,Portugués,Portugali,Portugali,Portugais,Portugál,Portoghese,ポルトガル語,Portugalų,Portugāļu,Portugees,portugalski,Português,Português,Portugheză,Португальский,Portugalčina,portugalščina,Portugisiska,葡萄牙语
193 ro_RO,RO_RO,RO,RO,RO,Румънски,Rumunština,rumænsk,Rumänisch,Ρο�
194 μανικά,Romanian,Romanian,Rumano,Rumeenia,Romanian,Roumain,Román,Rumeno,ルーマニア語,Rumunų,Rumāņu,Roemeens,rumuński,Romeno,Romeno,Română,румынский язык,Rumunčina,romunščina,Rumänska,罗马尼亚语
195 ru_RU,RU_RU,RU,RU,RU,Руски,ruština,russisk,Russisch,Ρωσικά,Russian,Russian,Ruso,Vene,Venäjä,Russe,orosz,Russo,ロシア語,rusų,Krievu,Russisch,rosyjski,Russo,Russo,Rusă,русский,Ruský,ruščina,Ryska,俄语
196 sk_SK,SK_SK,SK,SK,SK,Словашки,Slovenština,Slovakisk,Slowakisch,Σλοβάκικα,Slovak,Slovak,Eslovaco,slovaki keel,slovakki,Slovaque,szlovák,Slovacco,スロバキア語,Slovakų,slovāku,Slowaaks,słowacki,Eslovaco,Eslovaco,Slovacă,словацкий,Slovensky,slovaščina,Slovakiska,斯洛伐�
197
198 sl_SI,SL_SI,SL,SL,SL,Словенски,slovinština,slovensk,Slowenisch,Σλοβένικα,Slovenian,Slovenian,Esloveno,Sloveenia,Slovenian,Slovène,szlovén,Sloveno,スロベニア語,slovėnų,slovēņu,Sloveens,słoweński,Esloveno,Esloveno,Slovenă,словенский,slovinčina,slovenski,Slovenska,斯洛文尼亚语
199 sv_SE,SV_SE,SV,SV,SV,Шведски,švédština,svensk,Schwedisch,Σο�
200 ηδικά,Swedish,Swedish,Sueco,Rootsi,Ruotsi,Suédois,Svéd,Svedese,スウェーデン語,švedų,zviedru,Zweeds,szwedzki,Sueco,Sueco,Suedeză,шведский язык,švédsky,švedski,Svenska,瑞�
201 �语
202 zh_CN,ZH_CN,ZH,ZH,ZH,Китайски,Čínština,Kinesisk,Chinesisch,Κινέζικα,Chinese,Chinese,Chino,Hiina,Kiina,Chinois,Kínai,Cinese,中国語,Kinų kalba,Ķīniešu,Chinees,chiński,Chinês,Chinês,Chineză,китайский язык,Čínština,kitajščina,Kinesiska,中文';
203 $csv_labels = explode( "\n", $csv_labels );
204 $headers = explode(',', array_shift( $csv_labels ) );
205 foreach( $csv_labels as $ligne ) {
206 $labels = explode(',', $ligne );
207 $labels = array_combine( $headers, $labels );
208
209 $locale = $labels['locale'];
210 unset( $labels['locale'] );
211
212 $extra_country = false;
213 if( strlen( $labels['astarget'] ) > 2 ) {
214 $extra_country = substr( $labels['astarget'], 3, 2 );
215 }
216
217 $languages[$locale] = array();
218 foreach( array('allcaps', 'assource', 'astarget', 'isocode' ) as $key ) {
219 $languages[$locale][$key] = $labels[$key];
220 unset( $labels[$key] );
221 }
222
223
224 if( $extra_country ) {
225 foreach( $labels as $code => $label ) {
226 $labels[$code] = $label . ' (' . $extra_country . ')';
227 }
228 }
229 $languages[$locale]['labels'] = $labels;
230 }
231
232 return apply_filters( __METHOD__, $languages );
233
234 // used for.. something else
235 $test = __('Translate to %s', 'wpdeepl' );
236 $test = __('Translated %d posts.', 'wpdeepl');
237 $test = __('Bulk translate', 'wpdeepl');
238 $test = __('Content types', 'wpdeepl');
239 $test = __( 'Translate contents', 'wpdeepl' );
240 $test = __( 'Select which kind of content you want to be able to translate', 'wpdeepl' );
241 $test = __( 'Target languages for bulk actions', 'wpdeepl' );
242 $test = __( 'Show these target languages in bulk menu', 'wpdeepl' );
243 }
244
245 // might serve somewhere
246 static function getContentTypes() {
247 return apply_filters( __METHOD__, get_option('wpdeepl_contents_to_translate') );
248 }
249 static function getTargetLocales() {
250 return apply_filters( __METHOD__, get_option( 'wpdeepl_target_locales') );
251 }
252
253 static function usingPolylang() {
254 return function_exists( 'pll_the_languages' );
255 }
256
257 static function getBulkTargetLanguages() {
258 return apply_filters( __METHOD__, get_option( 'wpdeepl_bulk_target_locales' ) );
259 }
260 }
261
262