晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
| DIR:/opt/alt/ruby26/lib64/ruby/2.6.0/rdoc/i18n/ |
| Current File : //opt/alt/ruby26/lib64/ruby/2.6.0/rdoc/i18n/locale.rb |
# 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
|