Server IP : 104.21.38.3 / Your IP : 162.158.189.18 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/ruby/3.0.0/rdoc/i18n/ |
Upload File : |
# frozen_string_literal: true ## # A message container for a locale. # # This object provides the following two features: # # * Loads translated messages from .po file. # * Translates a message into the locale. class RDoc::I18n::Locale @@locales = {} # :nodoc: class << self ## # Returns the locale object for +locale_name+. def [](locale_name) @@locales[locale_name] ||= new(locale_name) end ## # Sets the locale object for +locale_name+. # # Normally, this method is not used. This method is useful for # testing. def []=(locale_name, locale) @@locales[locale_name] = locale end end ## # The name of the locale. It uses IETF language tag format # +[language[_territory][.codeset][@modifier]]+. # # See also {BCP 47 - Tags for Identifying # Languages}[http://tools.ietf.org/rfc/bcp/bcp47.txt]. attr_reader :name ## # Creates a new locale object for +name+ locale. +name+ must # follow IETF language tag format. def initialize(name) @name = name @messages = {} end ## # Loads translation messages from +locale_directory+/+@name+/rdoc.po # or +locale_directory+/+@name+.po. The former has high priority. # # This method requires gettext gem for parsing .po file. If you # don't have gettext gem, this method doesn't load .po file. This # method warns and returns +false+. # # Returns +true+ if succeeded, +false+ otherwise. def load(locale_directory) return false if @name.nil? po_file_candidates = [ File.join(locale_directory, @name, 'rdoc.po'), File.join(locale_directory, "#{@name}.po"), ] po_file = po_file_candidates.find do |po_file_candidate| File.exist?(po_file_candidate) end return false unless po_file begin require 'gettext/po_parser' require 'gettext/mo' rescue LoadError warn('Need gettext gem for i18n feature:') warn(' gem install gettext') return false end po_parser = GetText::POParser.new messages = GetText::MO.new po_parser.report_warning = false po_parser.parse_file(po_file, messages) @messages.merge!(messages) true end ## # Translates the +message+ into locale. If there is no translation # messages for +message+ in locale, +message+ itself is returned. def translate(message) @messages[message] || message end end