*/ public static function supported(): array { return array( self::BOSNIAN => __( 'Bosnian', 'leanmerce-commerce-assistant' ), self::CROATIAN => __( 'Croatian', 'leanmerce-commerce-assistant' ), self::SERBIAN => __( 'Serbian', 'leanmerce-commerce-assistant' ), self::ENGLISH => __( 'English', 'leanmerce-commerce-assistant' ), ); } /** @return array */ public static function supported_codes(): array { return array( self::BOSNIAN, self::CROATIAN, self::SERBIAN, self::ENGLISH ); } public static function label( string $code, string $display_language = self::BOSNIAN ): string { unset( $display_language ); $labels = array( self::BOSNIAN => 'Bosanski', self::CROATIAN => 'Hrvatski', self::SERBIAN => 'Srpski', self::ENGLISH => 'English', ); return $labels[ $code ] ?? $code; } public static function normalize_locale( string $locale, string $fallback = self::BOSNIAN ): string { $language = strtolower( substr( str_replace( '-', '_', $locale ), 0, 2 ) ); return isset( self::supported()[ $language ] ) ? $language : $fallback; } public static function is_bih_language( string $language ): bool { return in_array( $language, array( self::BOSNIAN, self::CROATIAN, self::SERBIAN ), true ); } private function __construct() {} }