Link.FYI

Pastebin

Create New My Pastes

Code (PHP) pasted on 2020-06-20, 01:25 Raw Source

  1. <?php
  2. /**
  3.  * @package YAML_Translation
  4.  * @version 0.0.1
  5.  */
  6. /*
  7. Plugin Name: YAML Translation
  8. Plugin URI: https://github.com/Tar-Minyatur
  9. Description: In development...
  10. Author: Till Helge Helwig
  11. Version: 0.0.1
  12. Author URI: https://twitter.com/TillHelge
  13. */
  14.  
  15. class YAMLTranslationCache {
  16.  
  17.         /** @var YAMLTranslationCache **/
  18.         private static $instance = null;
  19.  
  20.         private $cache = [
  21.                 'Let\'s have some fun' => 'Lass uns etwas Spaß haben'
  22.         ];
  23.  
  24.         private function __construct() {
  25.         }
  26.  
  27.         public static function getInstance() {
  28.                 if (is_null(self::$instance)) {
  29.                         self::$instance = new YAMLTranslationCache();
  30.                 }
  31.                 return self::$instance;
  32.         }
  33.  
  34.         public function get($key, $default = null) {
  35.                 return array_key_exists($key, $this->cache) ? $this->cache[$key] : $default;
  36.         }
  37.  
  38. }
  39.  
  40. class YAMLTranslator {
  41.  
  42.         /** @var YAMLTranslationCache **/
  43.         private $cache;
  44.  
  45.         public function __construct() {
  46.                 $this->cache = YAMLTranslationCache::getInstance();
  47.         }
  48.  
  49.         public static function register() {
  50.                 $translator = new YAMLTranslator();
  51.                 add_filter('gettext', function ($translation, $text, $domain = 'default') use ($translator) {
  52.                         if ($domain == 'yaml') {
  53.                                 return $translator->translate($text);
  54.                         } else {
  55.                                 return $translation;
  56.                         }
  57.                 }, 20, 3);
  58.         }
  59.  
  60.         public function translate($input) {
  61.                 $locale = get_locale();
  62.                 echo "<pre>Translating to {$locale}: $input</pre>";
  63.                 return $this->cache->get($input, $input);
  64.         }
  65.  
  66. }
  67.  
  68. YAMLTranslator::register();
  69.