Localize.php
1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
namespace ACP;
use AC\Registrable;
class Localize implements Registrable {
const TEXTDOMAIN = 'codepress-admin-columns';
/**
* @var string
*/
private $plugin_dir;
public function __construct( $plugin_dir ) {
$this->plugin_dir = $plugin_dir;
}
public function register() {
add_action( 'init', [ $this, 'localize' ] );
}
public function localize() {
// prevent the loading of existing translations within the 'wp-content/languages' folder.
unload_textdomain( self::TEXTDOMAIN );
$local = $this->get_local();
$this->load_textdomain( $this->plugin_dir . 'admin-columns/languages', $local );
$this->load_textdomain( $this->plugin_dir . 'languages', $local );
}
/**
* @return string
*/
private function get_local() {
$local = function_exists( 'determine_locale' )
? determine_locale()
: get_user_locale();
return (string) apply_filters( 'plugin_locale', $local, self::TEXTDOMAIN );
}
/**
* Do no use `load_plugin_textdomain()` because it could prevent
* pro languages from loading when core translation files are found.
*
* @param string $language_dir
* @param string $local
*/
private function load_textdomain( $language_dir, $local ) {
$mofile = sprintf(
'%s/%s-%s.mo',
$language_dir,
self::TEXTDOMAIN,
$local
);
load_textdomain( self::TEXTDOMAIN, $mofile );
}
}