diff --git a/lib/generators/language_extension/language_extension_generator.rb b/lib/generators/language_extension/language_extension_generator.rb index 8abf38827..69156e9aa 100644 --- a/lib/generators/language_extension/language_extension_generator.rb +++ b/lib/generators/language_extension/language_extension_generator.rb @@ -5,8 +5,8 @@ class LanguageExtensionGenerator < Rails::Generator::NamedBase def initialize(runtime_args, runtime_options = {}) super - @extension_file_name = "i18n_#{file_name}_extension" - @extension_path = "vendor/extensions/i18n_#{file_name}" + @extension_file_name = "#{file_name}_language_pack_extension" + @extension_path = "vendor/extensions/#{file_name}_language_pack" @localization_name = localization_name end @@ -17,39 +17,15 @@ def manifest m.template 'README', "#{extension_path}/README" m.template 'extension.rb', "#{extension_path}/#{extension_file_name}.rb" - m.template 'tasks.rake', "#{extension_path}/lib/tasks/#{extension_file_name}_tasks.rake" + # m.template 'tasks.rake', "#{extension_path}/lib/tasks/#{extension_file_name}_tasks.rake" m.template 'lang.yml', "#{extension_path}/config/locales/#{localization_name}.yml" m.template 'available_tags.yml', "#{extension_path}/config/locales/#{localization_name}_available_tags.yml" - - if options[:with_test_unit] - m.directory "#{extension_path}/test/fixtures" - m.directory "#{extension_path}/test/functional" - m.directory "#{extension_path}/test/unit" - - m.template 'Rakefile', "#{extension_path}/Rakefile" - m.template 'test_helper.rb', "#{extension_path}/test/test_helper.rb" - m.template 'functional_test.rb', "#{extension_path}/test/functional/#{extension_file_name}_test.rb" - else - m.directory "#{extension_path}/spec/controllers" - m.directory "#{extension_path}/spec/models" - m.directory "#{extension_path}/spec/views" - m.directory "#{extension_path}/spec/helpers" - m.directory "#{extension_path}/features/support" - m.directory "#{extension_path}/features/step_definitions/admin" - - m.template 'RSpecRakefile', "#{extension_path}/Rakefile" - m.template 'spec_helper.rb', "#{extension_path}/spec/spec_helper.rb" - m.file 'spec.opts', "#{extension_path}/spec/spec.opts" - m.file 'cucumber.yml', "#{extension_path}/cucumber.yml" - m.template 'cucumber_env.rb', "#{extension_path}/features/support/env.rb" - m.template 'cucumber_paths.rb', "#{extension_path}/features/support/paths.rb" - end end end def class_name - 'I18n' + super.to_name.gsub(' ', '') + 'Extension' + super.to_name.gsub(' ', '') + 'LanguagePackExtension' end def extension_name @@ -57,10 +33,10 @@ def extension_name end def add_options!(opt) - opt.separator '' - opt.separator 'Options:' - opt.on("--with-test-unit", - "Use Test::Unit for this extension instead of RSpec") { |v| options[:with_test_unit] = v } + # opt.separator '' + # opt.separator 'Options:' + # opt.on("--with-test-unit", + # "Use Test::Unit for this extension instead of RSpec") { |v| options[:with_test_unit] = v } end def localization_name diff --git a/lib/tasks/translate.rake b/lib/tasks/translate.rake index efb0102f8..c3edde336 100644 --- a/lib/tasks/translate.rake +++ b/lib/tasks/translate.rake @@ -9,7 +9,7 @@ namespace :radiant do language_root = "#{RADIANT_ROOT}/config/locales" words = TranslationSupport.get_translation_keys(language_root) locale_paths.each do |path| - if path == language_root || path.match('i18n_') + if path == language_root || path.match('language_pack') Dir["#{path}/*.yml"].each do |filename| next if filename.match('_available_tags') basename = File.basename(filename, '.yml') @@ -43,16 +43,13 @@ namespace :radiant do language_root = "#{RADIANT_ROOT}/config/locales" words = TranslationSupport.open_available_tags("#{language_root}/en_available_tags.yml") locale_paths.each do |path| - if path == language_root || path.match('i18n_') + if path == language_root || path.match('language_pack') Dir["#{path}/*.yml"].each do |filename| - puts filename next unless filename.match('_available_tags') basename = File.basename(filename, '_available_tags.yml') puts "Syncing #{basename}" (comments, other) = TranslationSupport.open_available_tags(filename) - words.each { |k,v| other[k] ||= words[k] } # Initializing hash variable as empty if it does not exist - other.delete_if { |k,v| !words[k] } # Remove if not defined in en.yml - TranslationSupport.write_file(filename, basename, comments, other) + puts other end end end diff --git a/lib/translation_support.rb b/lib/translation_support.rb index 71f001336..5d1fde643 100644 --- a/lib/translation_support.rb +++ b/lib/translation_support.rb @@ -35,7 +35,7 @@ def create_hash(data, basename) def open_available_tags(filename) data = YAML::load(File.open("#{filename}")) - data + data.to_s end #Writes to file from translation data hash structure diff --git a/vendor/extensions/dutch_language_pack/README b/vendor/extensions/dutch_language_pack/README new file mode 100644 index 000000000..5fbb6260e --- /dev/null +++ b/vendor/extensions/dutch_language_pack/README @@ -0,0 +1,3 @@ += I18n Nl + +Description goes here \ No newline at end of file diff --git a/vendor/extensions/dutch_language_pack/Rakefile b/vendor/extensions/dutch_language_pack/Rakefile new file mode 100644 index 000000000..61bcdde65 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/Rakefile @@ -0,0 +1,123 @@ +# I think this is the one that should be moved to the extension Rakefile template + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. + +# Determine where the RSpec plugin is by loading the boot +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot" + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot" + end +end + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' + +rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'cucumber' +require 'cucumber/rake/task' + +# Cleanup the RADIANT_ROOT constant so specs will load the environment +Object.send(:remove_const, :RADIANT_ROOT) + +extension_root = File.expand_path(File.dirname(__FILE__)) + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :features => 'spec:integration' + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the Cucumber features" + Cucumber::Rake::Task.new(:integration) do |t| + t.fork = true + t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] + # t.feature_pattern = "#{extension_root}/features/**/*.feature" + t.profile = "default" + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end +end + +desc 'Generate documentation for the nl extension.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'I18nNlExtension' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +# For extensions that are in transition +desc 'Test the nl extension.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +# Load any custom rakefiles for extension +Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f } \ No newline at end of file diff --git a/vendor/extensions/dutch_language_pack/config/locales/nl.yml b/vendor/extensions/dutch_language_pack/config/locales/nl.yml new file mode 100644 index 000000000..3a7f58484 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/config/locales/nl.yml @@ -0,0 +1,182 @@ +--- +nl: + account: 'Account' + activerecord: + errors: + messages: + blank: 'verplicht' # required + invalid: 'ongeldige indeling' #invalid_format + not_a_number: 'moet een getal zijn' # must be number + taken: 'naam reeds in gebruik' # name_in_use + too_long: 'maximum {{count}} tekens' # character_limit + too_short: 'minimum {{count}} tekens' # character_minimum + models: + page: + attributes: + slug: + taken: 'URL pagina (slug) reeds in gebruik' # slug_in_use + user: + attributes: + email: + invalid: 'ongeldig e-mailadres' # invalid_email + login: + taken: 'gebruikersnaam reeds in gebruik' # login already in use + password: + confirmation: 'moet overeen komen' # password_confirmation + add_child: 'Child Toevoegen' + add_part: 'Part Toevoegen' + add_tab: 'Tab Toevoegen' + admin: 'Beheerder' + available_tags: 'Beschikbare Tags' + available_tags_for: 'Beschikbare Tags voor {{name}}' + body: 'Body' + breadcrumb: 'Breadcrumb' + buttons: + create: '{{name}} Aanmaken' + save_and_continue: 'Opslaan en verder bewerken' + save_changes: 'Opslaan' + cancel: 'Annuleren' + change: 'Wijzigen' + close: 'Sluiten' + content: 'Inhoud' + content_type: 'InhoudsType' + creating_status: '{{model}}… aan het maken' + date: + abbr_day_names: [zo, ma, di, wo, do, vr, za] + abbr_month_names: [~, jan, feb, mar, apr, mei, jun, jul, aug, sep, okt, nov, dec] + day_names: [zondag, maandag, dinsdag, woensdag, donderdag, vrijdag, zaterdag] + formats: + default: "%d/%m/%Y" + long: "%e %B %Y" + only_day: "%e" + short: "%e %b" + month_names: [~, januari, februari, maart, april, mei, juni, juli, augustus, september, october, november, december] + order: [ :day, :month, :year ] + delete_layout: 'Layout verwijderen' + delete_pages: '{{pages}} verwijderen' + delete_snippet: 'Snippet verwijderen' + delete_user: 'Gebruiker verwijderen' + description: 'Omschrijving' + design: 'Ontwerp' + designer: 'Ontwerper' + draft: 'Ontwerp' + edit_layout: 'Layout Wijzigen' + edit_page: 'Pagina Wijzigen' + edit_snippet: 'Snippet Wijzigen' + edit_user: 'Gebruiker Wijzigen' + email_address: 'E-mailadres' + extension: 'Module' + extensions: 'Modules' + filter: 'Filter' + hidden: 'Verborgen' + hide: 'Verbergen' + keywords: 'Sleutelwoorden' + language: 'Taal' + layout: 'Layout' + layouts: 'Layouts' + log_out: 'Afmelden' + logged_in_as: 'Aangemeld als' + login: 'Aanmelden' + modify: 'Bewerken' + more: 'Meer' + name: 'Naam' + new_layout: 'Niewe Layout' + new_page: 'Niewe Pagina' + new_password: 'Niew Wachtwoord' + new_snippet: 'Nieuwe Snippet' + new_user: 'Nieuwe Gebruiker' + no_pages: "Geen Pagina's" + notes: 'Notities' + optional: 'Optioneel' + or: 'of' + page: 'Pagina' + page_page: 'Page Part' + page_title: 'Pagina Titel' + page_type: 'Pagina Type' + pages: "Pagina's" + pages_controller: + removed_many: "De pagina's werden verwijderd van de site." + removed_one: "De pagina is verwijderd van de site." + saved: "Je pagina is hieronder opgeslagen." + password: 'Wachtwoord' + password_confirmation: Bevestig Nieuw Wachtwoord' + personal: 'Personlijk' + personal_preferences: 'Persoonlijke Voorkeuren' + please_login: 'Gelieve aan te melden' + powered_by: 'Powered by' + preferences: 'Voorkeuren' + preferences_controller: + error_updating: 'Er is een fout opgetreden bij het opslaan van je voorkeuren.' + updated: 'Je voorkeuren zijn bijgewerkt.' + published: 'Gepubliceerd' + published_at: 'Gepuliceerd op' + reference: 'Referentie' + remember_me: 'Onthoud me' + remove: 'Verwijderen' + remove_layout: 'Layout Verwijderen' + remove_page: 'Pagina Verwijderen' + remove_pages: '{{pages}} Verwijderen' + remove_tab: 'Tab Verwijderen' + remove_user: 'Gebruiker verwijderen' + required: 'Vereist' + resource_controller: + not_found: "{{humanized_model_name}} is niet gevonden." + removed: "{{humanized_model_name}} is verwijderd." + saved: "{{humanized_model_name}} is hieronder opgelsagen." + update_conflict: "{{humanized_model_name}} is bijgewerkt sinds sinds het laden. De wijzigingen kunnen niet opgeslagen worden zonder mogelijk verlies van gegevens." + validation_errors: "Er zijn validatiefouten opgetreden tijdens het verwerken van dit formulier. Kijk het formulier aub na en verbeter eventuele fouten om verder te gaan." + reviewed: 'Nagekeken' + roles: 'Rollen' + saving_changes: 'Aan het bijwerken' + saving_preferences: 'Voorkeuren aan het bijwerken' + scheduled: "Scheduled" + search_tags: 'Tags doorzoeken:' + select: + inherit: '' + none: '' + normal: '' + settings: 'Instellingen' + slug: 'Slug' + snippet: 'Snippet' + snippets: 'Snippets' + status: 'Status' + # Warnings and info text: + testing: Testing + text: + layouts: + remove_warning: 'Ben je zeker dat je de volgende layout definitief wil verwijderen?' + pages: + remove_warning: 'Ben je zeker dat je de volgende pagina definitief wil verwijderen?' + snippets: + remove_warning: 'Ben je zeker dat je de volgende snippet definitief wil verwijderen?' + users: + remove_warning: 'Ben je zeker dat je de volgende gebruiker definitief wil verwijderen?' + this_file_language: "Nederlands" + time: + am: 'am' + formats: + datetime: + formats: + default: "%Y-%m-%dT%H:%M:%S%Z" + default: "%a %d %b %H:%M:%S %Z %Y" + long: "%d %B %Y %H:%M" + only_second: "%S" + short: "%d %b %H:%M" + time: "%H:%M" + timestamp: "%H:%M op %d %B %Y" + pm: 'pm' + timestamp: + at: 'om' + by: 'door' + last_updated: 'Laatst bijgewerkt' + user: 'Gebruiker' + username: 'Gebruikersnaam' + users: 'Gebruikers' + users_controller: + cannot_delete_self: 'Je kan jezelf niet verwijderen.' + version: 'Versie' + view_site: 'Bekijk Site' + website: 'Website' + welcome_controller: + invalid_user: 'Onbekende gebruikersnaam of wachtwoord.' + logged_out: 'Je bent nu afgemeld.' diff --git a/vendor/extensions/dutch_language_pack/config/locales/nl_available_tags.yml b/vendor/extensions/dutch_language_pack/config/locales/nl_available_tags.yml new file mode 100644 index 000000000..9f633e981 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/config/locales/nl_available_tags.yml @@ -0,0 +1,553 @@ +--- +nl: + desc: + author: + Renders the name of the author of the current page. + + breadcrumb: + Renders the @breadcrumb@ attribute of the current page. + + breadcrumbs: + Renders a trail of breadcrumbs to the current page. The separator attribute + specifies the HTML fragment that is inserted between each of the breadcrumbs. By + default it is set to @>@. The boolean nolinks attribute can be specified to render + breadcrumbs in plain text, without any links (useful when generating title tag). + + *Usage:* + +
+ + children-count: + Renders the total number of children. + + children-each-child: + Page attribute tags inside of this tag refer to the current child. This is occasionally + useful if you are inside of another tag (like <r:find>) and need to refer back to the + current child. + + *Usage:* + +

+        ...
+      
+      
+ + children-each-header: + Renders the tag contents only if the contents do not match the previous header. This + is extremely useful for rendering date headers for a list of child pages. + + If you would like to use several header blocks you may use the @name@ attribute to + name the header. When a header is named it will not restart until another header of + the same name is different. + + Using the @restart@ attribute you can cause other named headers to restart when the + present header changes. Simply specify the names of the other headers in a semicolon + separated list. + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + children-each-if_first: + Renders the tag contents only if the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-if_last: + Renders the tag contents only if the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_first: + Renders the tag contents unless the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_last: + Renders the tag contents unless the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each: + Cycles through each of the children. Inside this tag all page attribute tags + are mapped to the current child page. + + *Usage:* + +

+       ...
+      
+      
+ + children-first: + Returns the first child. Inside this tag all page attribute tags are mapped to + the first child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children-last: + Returns the last child. Inside this tag all page attribute tags are mapped to + the last child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children: + Gives access to a page's children. + + *Usage:* + +
...
+ + comment: + Nothing inside a set of comment tags is rendered. + + *Usage:* + +
...
+ + content: + Renders the main content of a page. Use the @part@ attribute to select a specific + page part. By default the @part@ attribute is set to body. Use the @inherit@ + attribute to specify that if a page does not have a content part by that name that + the tag should render the parent's content part. By default @inherit@ is set to + @false@. Use the @contextual@ attribute to force a part inherited from a parent + part to be evaluated in the context of the child page. By default 'contextual' + is set to true. + + *Usage:* + +
+ + cycle: + Renders one of the passed values based on a global cycle counter. Use the @reset@ + attribute to reset the cycle to the beginning. Use the @name@ attribute to track + multiple cycles; the default is @cycle@. + + *Usage:* + +
+ + date: + Renders the date based on the current page (by default when it was published or created). + The format attribute uses the same formating codes used by the Ruby @strftime@ function. By + default it's set to @%A, %B %d, %Y@. The @for@ attribute selects which date to render. Valid + options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the + current date/time, regardless of the page. + + *Usage:* + +
+ + escape_html: + Escapes angle brackets, etc. for rendering in an HTML document. + + *Usage:* + +
...
+ + find: + Inside this tag all page related tags refer to the page found at the @url@ attribute. + @url@s may be relative or absolute paths. + + *Usage:* + +
...
+ + if_ancestor_or_self: + Renders the contained elements if the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page. + + *Usage:* + +
...
+ + if_children: + Renders the contained elements only if the current contextual page has one or + more child pages. The @status@ attribute limits the status of found child pages + to the given status, the default is @"published"@. @status="all"@ includes all + non-virtual pages regardless of status. + + *Usage:* + +
...
+ + if_content: + Renders the containing elements if all of the listed parts exist on a page. + By default the @part@ attribute is set to @body@, but you may list more than one + part by separating them with a comma. Setting the optional @inherit@ to true will + search ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + if_dev: + Renders the containing elements only if Radiant in is development mode. + + *Usage:* + +
...
+ + if_parent: + Renders the contained elements only if the current contextual page has a parent, i.e. + is not the root page. + + *Usage:* + +
...
+ + if_self: + Renders the contained elements if the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page. + + *Usage:* + +
...
+ + if_url: + Renders the containing elements only if the page's url matches the regular expression + given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the + match is case sensitive. By default, @ignore_case@ is set to true. + + *Usage:* + +
...
+ + link: + Renders a link to the page. When used as a single tag it uses the page's title + for the link name. When used as a double tag the part in between both tags will + be used as the link text. The link tag passes all attributes over to the HTML + @a@ tag. This is very useful for passing attributes like the @class@ attribute + or @id@ attribute. If the @anchor@ attribute is passed to the tag it will + append a pound sign (#) followed by the value of the attribute to + the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor. + + *Usage:* + +
+ + or + +
link text here
+ + markdown: + Filters its contents with the Markdown filter. + + *Usage:* + +
** bold text **
+ + produces + +
 bold text 
+ + meta-description: + Emits the page description field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta-keywords: + Emits the page keywords field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta: + The namespace for 'meta' attributes. If used as a singleton tag, both the description + and keywords fields will be output as <meta /> tags unless the attribute 'tag' is set to 'false'. + + *Usage:* + +
 
+       
+         
+         
+       
+      
+ + navigation-if_first: + Renders the containing elements if the element is the first + in the navigation list + + *Usage:* + +
...
+ + navigation-if_last: + Renders the containing elements if the element is the last + in the navigation list + + *Usage:* + +
...
+ + navigation: + Renders a list of links specified in the @urls@ attribute according to three + states: + + * @normal@ specifies the normal state for the link + * @here@ specifies the state of the link when the url matches the current + page's URL + * @selected@ specifies the state of the link when the current page matches + is a child of the specified url + # @if_last@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the last in the navigation elements + # @if_first@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the first in the navigation elements + + The @between@ tag specifies what should be inserted in between each of the links. + + *Usage:* + +

+        
+        
+        
+         | 
+      
+      
+ + page: + Causes the tags referring to a page's attributes to refer to the current page. + + *Usage:* + +
...
+ + parent: + Page attribute tags inside this tag refer to the parent of the current page. + + *Usage:* + +
...
+ + random: + Randomly renders one of the options specified by the @option@ tags. + + *Usage:* + +

+        ...
+        ...
+        ...
+      
+      
+ + rfc1123_date: + Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.) + + *Usage:* + +
+ + slug: + Renders the @slug@ attribute of the current page. + + smarty_pants: + Filters its contents with the SmartyPants filter. + + *Usage:* + +
"A revolutionary quotation."
+ + produces + +
“A revolutionary quotation.”
+ + snippet: + Renders the snippet specified in the @name@ attribute within the context of a page. + + *Usage:* + +
+ + When used as a double tag, the part in between both tags may be used within the + snippet itself, being substituted in place of @@. + + *Usage:* + +
Lorem ipsum dolor...
+ + status: + Prints the page's status as a string. Optional attribute 'downcase' + will cause the status to be all lowercase. + + *Usage:* + +
+ + textile: + Filters its contents with the Textile filter. + + *Usage*: + +

+      * First
+      * Second
+      
+ + produces: + +
    +
  • First
  • +
  • Second
  • +
+ + title: + Renders the @title@ attribute of the current page. + + unless_ancestor_or_self: + Renders the contained elements unless the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page. + + *Usage:* + +
...
+ + unless_children: + Renders the contained elements only if the current contextual page has no children. + The @status@ attribute limits the status of found child pages to the given status, + the default is @"published"@. @status="all"@ includes all non-virtual pages + regardless of status. + + *Usage:* + +
...
+ + unless_content: + The opposite of the @if_content@ tag. It renders the contained elements if all of the + specified parts do not exist. Setting the optional @inherit@ to true will search + ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will not render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + unless_dev: + The opposite of the @if_dev@ tag. + + *Usage:* + +
...
+ + unless_parent: + Renders the contained elements only if the current contextual page has no parent, i.e. + is the root page. + + *Usage:* + +
...
+ + unless_self: + Renders the contained elements unless the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is the current page. + + *Usage:* + +
...
+ + unless_url: + The opposite of the @if_url@ tag. + + *Usage:* + +
...
+ + url: + Renders the @url@ attribute of the current page. + + yield: + Used within a snippet as a placeholder for substitution of child content, when + the snippet is called as a double tag. + + *Usage (within a snippet):* + +

+      
+

before

+ +

after

+
+
+ + If the above snippet was named "yielding", you could call it from any Page, + Layout or Snippet as follows: + +
Content within
+ + Which would output the following: + +

+      
+

before

+ Content within +

after

+
+
+ + When called in the context of a Page or a Layout, @@ outputs nothing. + diff --git a/vendor/extensions/dutch_language_pack/cucumber.yml b/vendor/extensions/dutch_language_pack/cucumber.yml new file mode 100644 index 000000000..7a03ee675 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/cucumber.yml @@ -0,0 +1 @@ +default: --format progress features --tags ~@proposed,~@in_progress \ No newline at end of file diff --git a/vendor/extensions/dutch_language_pack/dutch_language_pack_extension.rb b/vendor/extensions/dutch_language_pack/dutch_language_pack_extension.rb new file mode 100644 index 000000000..6f0a61b4a --- /dev/null +++ b/vendor/extensions/dutch_language_pack/dutch_language_pack_extension.rb @@ -0,0 +1,9 @@ +class DutchLanguagePackExtension < Radiant::Extension + version "1.0" + description "Provides a Dutch translation for the Radiant admin interface" + url "http://yourwebsite.com/nl" + + def activate + + end +end diff --git a/vendor/extensions/dutch_language_pack/features/support/env.rb b/vendor/extensions/dutch_language_pack/features/support/env.rb new file mode 100644 index 000000000..bd858e442 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/features/support/env.rb @@ -0,0 +1,16 @@ +# Sets up the Rails environment for Cucumber +ENV["RAILS_ENV"] = "test" +# Extension root +extension_env = File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment') +require extension_env+'.rb' + +Dir.glob(File.join(RADIANT_ROOT, "features", "**", "*.rb")).each {|step| require step} + +Cucumber::Rails::World.class_eval do + include Dataset + datasets_directory "#{RADIANT_ROOT}/spec/datasets" + Dataset::Resolver.default = Dataset::DirectoryResolver.new("#{RADIANT_ROOT}/spec/datasets", File.dirname(__FILE__) + '/../../spec/datasets', File.dirname(__FILE__) + '/../datasets') + self.datasets_database_dump_path = "#{Rails.root}/tmp/dataset" + + # dataset :nl +end \ No newline at end of file diff --git a/vendor/extensions/dutch_language_pack/features/support/paths.rb b/vendor/extensions/dutch_language_pack/features/support/paths.rb new file mode 100644 index 000000000..9e6762406 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/features/support/paths.rb @@ -0,0 +1,14 @@ +def path_to(page_name) + case page_name + + when /the homepage/i + root_path + + when /login/i + login_path + # Add more page name => path mappings here + + else + raise "Can't find mapping from \"#{page_name}\" to a path." + end +end \ No newline at end of file diff --git a/vendor/extensions/dutch_language_pack/lib/tasks/i18n_nl_extension_tasks.rake b/vendor/extensions/dutch_language_pack/lib/tasks/i18n_nl_extension_tasks.rake new file mode 100644 index 000000000..896c03e6c --- /dev/null +++ b/vendor/extensions/dutch_language_pack/lib/tasks/i18n_nl_extension_tasks.rake @@ -0,0 +1,28 @@ +namespace :radiant do + namespace :extensions do + namespace :nl do + + desc "Runs the migration of the I18n Nl extension" + task :migrate => :environment do + require 'radiant/extension_migrator' + if ENV["VERSION"] + I18nNlExtension.migrator.migrate(ENV["VERSION"].to_i) + else + I18nNlExtension.migrator.migrate + end + end + + desc "Copies public assets of the I18n Nl to the instance public/ directory." + task :update => :environment do + is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) } + puts "Copying assets from I18nNlExtension" + Dir[I18nNlExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file| + path = file.sub(I18nNlExtension.root, '') + directory = File.dirname(path) + mkdir_p RAILS_ROOT + directory, :verbose => false + cp file, RAILS_ROOT + path, :verbose => false + end + end + end + end +end diff --git a/vendor/extensions/dutch_language_pack/spec/spec.opts b/vendor/extensions/dutch_language_pack/spec/spec.opts new file mode 100644 index 000000000..d8c8db5d4 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/spec/spec.opts @@ -0,0 +1,6 @@ +--colour +--format +progress +--loadby +mtime +--reverse diff --git a/vendor/extensions/dutch_language_pack/spec/spec_helper.rb b/vendor/extensions/dutch_language_pack/spec/spec_helper.rb new file mode 100644 index 000000000..0adbf9f02 --- /dev/null +++ b/vendor/extensions/dutch_language_pack/spec/spec_helper.rb @@ -0,0 +1,36 @@ +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require ENV["RADIANT_ENV_FILE"] + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment" + end +end +require "#{RADIANT_ROOT}/spec/spec_helper" + +Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets") + +if File.directory?(File.dirname(__FILE__) + "/matchers") + Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file } +end + +Spec::Runner.configure do |config| + # config.use_transactional_fixtures = true + # config.use_instantiated_fixtures = false + # config.fixture_path = RAILS_ROOT + '/spec/fixtures' + + # You can declare fixtures for each behaviour like this: + # describe "...." do + # fixtures :table_a, :table_b + # + # Alternatively, if you prefer to declare them only once, you can + # do so here, like so ... + # + # config.global_fixtures = :table_a, :table_b + # + # If you declare global fixtures, be aware that they will be declared + # for all of your examples, even those that don't use them. +end \ No newline at end of file diff --git a/vendor/extensions/french_language_pack/README b/vendor/extensions/french_language_pack/README new file mode 100644 index 000000000..ade1607bf --- /dev/null +++ b/vendor/extensions/french_language_pack/README @@ -0,0 +1,3 @@ += I18n Fr + +Description goes here \ No newline at end of file diff --git a/vendor/extensions/french_language_pack/Rakefile b/vendor/extensions/french_language_pack/Rakefile new file mode 100644 index 000000000..cb32dbd37 --- /dev/null +++ b/vendor/extensions/french_language_pack/Rakefile @@ -0,0 +1,123 @@ +# I think this is the one that should be moved to the extension Rakefile template + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. + +# Determine where the RSpec plugin is by loading the boot +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot" + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot" + end +end + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' + +rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'cucumber' +require 'cucumber/rake/task' + +# Cleanup the RADIANT_ROOT constant so specs will load the environment +Object.send(:remove_const, :RADIANT_ROOT) + +extension_root = File.expand_path(File.dirname(__FILE__)) + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :features => 'spec:integration' + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the Cucumber features" + Cucumber::Rake::Task.new(:integration) do |t| + t.fork = true + t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] + # t.feature_pattern = "#{extension_root}/features/**/*.feature" + t.profile = "default" + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end +end + +desc 'Generate documentation for the fr extension.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'I18nFrExtension' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +# For extensions that are in transition +desc 'Test the fr extension.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +# Load any custom rakefiles for extension +Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f } \ No newline at end of file diff --git a/vendor/extensions/french_language_pack/config/locales/fr.yml b/vendor/extensions/french_language_pack/config/locales/fr.yml new file mode 100644 index 000000000..b3400882e --- /dev/null +++ b/vendor/extensions/french_language_pack/config/locales/fr.yml @@ -0,0 +1,182 @@ +--- +fr: + account: 'Account' + activerecord: + errors: + messages: + blank: 'obligatoire' # required + invalid: 'invalid format' #invalid_format + not_a_number: 'doit être un nombre' # must be number + taken: 'nom déjà utilisé' # name_in_use + too_long: '{{count}}-caractères maximum' # character_limit + too_short: '{{count}}-caractères minimum' # character_minimum + models: + page: + attributes: + slug: + taken: "jeton (slug) déjà utilisé pour l'enfant de ce parent" # slug_in_use + user: + attributes: + email: + invalid: 'adresse courriel non valide' # invalid_email + login: + taken: 'identification déjà utilisée' # login already in use + password: + confirmation: 'doit être identique à sa confirmation' # password_confirmation + add_child: 'Add Child' + add_part: 'Add Part' + add_tab: "Ajouter Onglet" + admin: "Administrateur" + available_tags: "Tags disponibles" + available_tags_for: 'Tags disponibles pour {{name}}' + body: "Body" + breadcrumb: 'Breadcrumb' + buttons: + create: "Créer {{name}}" + save_and_continue: "Enregistrer et continuer" + save_changes: "Enregistrer les modifications" + cancel: "Annuler" + change: 'Change' + close: "Fermer" + content: 'Content' + content_type: "Type‑Contenu" + creating_status: 'Creating {{model}}…' + date: + abbr_day_names: [Di, Lu, Ma, Me, Je, Ve, Sa] + abbr_month_names: [~, Jan, Fev, Mar, Avr, Mai, Jun, Jul, Aou, Sep, Oct, Nov, Dec] + day_names: [Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi] + formats: + default: "%d.%m.%Y" + long: "%e. %B %Y" + only_day: "%e" + short: "%e. %b" + month_names: [~, Janvier, Février, Mars, Avril, Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Decembre] + order: [:day, :month, :year] + delete_layout: "Supprimer Layout" + delete_pages: "Supprimer {{pages}}" + delete_snippet: 'Delete Snippet' + delete_user: 'Delete User' + description: 'Description' + design: 'Design' + designer: 'Designer' + draft: "Brouillon" + edit_layout: "Modifier Layout" + edit_page: "Modifier Page" + edit_snippet: "Modifier Snippet" + edit_user: "Modifier Utilisateur" + email_address: 'E-mail Address' + extension: "Extension" + extensions: "Extensions" + filter: "Filtre" + hidden: "Caché" + hide: 'Hide' + keywords: 'Keywords' + language: "Langage" + layout: "Layout" + layouts: "Layouts" + log_out: "Déconnexion" + logged_in_as: 'Logged in as' + login: "Login" + modify: "Modifier" + more: "Plus" + name: "Nom" + new_layout: "Ajouter Layout" + new_page: "Nouvelle Page" + new_password: 'New Password' + new_snippet: "Ajouter Snippet" + new_user: "Ajouter Utilisateur" + no_pages: "Aucune Page" + notes: "Notes" + optional: "En option" + or: "ou" + page: "Page" + page_page: 'Page Part' + page_title: "Titre" + page_type: "Type Page" + pages: "Pages" + pages_controller: + removed_many: "Les pages ont été correctement retirées du site." + removed_one: "La page a été correctement retirée du site." + saved: "Votre page enregistrée ci-dessous." + password: "Mot de passe" + password_confirmation: "Confirmer le Mot de passe" + personal: 'Personal' + personal_preferences: 'Personal Preferences' + please_login: 'SVP Identifiez-vous' + powered_by: 'Powered by' + preferences: "Préférences" + preferences_controller: + error_updating: "Une erreur a été détectée pendant la modification de vos préférences." + updated: "Vos préférences ont été modifiées." + published: "Publié" + published_at: "Publié le" + reference: "Référence" + remember_me: "Conserver mes informations" + remove: 'Remove' + remove_layout: "Retirer Layout" + remove_page: 'Remove Page' + remove_pages: "Retirer {{pages}}" + remove_tab: "Supprimer Onglet" + remove_user: 'Remove user' + required: "Obligatoire" + resource_controller: + not_found: "{{humanized_model_name}} could not be found." + removed: "{{humanized_model_name}} supprimé." + saved: "{{humanized_model_name}} enregistré ci-dessous." + update_conflict: "{{humanized_model_name}} a été modifié depuis son affichage. Toute modification ne pourra être enregistrée sans perte potentielle de donnée." + validation_errors: "Erreurs de validation pendant le traitement de ce formulaire. SVP examinez son contenu et corrigez les erreurs avant de continuer." + reviewed: "Révisé" + roles: "Roles" + saving_changes: Saving Changes + saving_preferences: Saving preferences + scheduled: "Scheduled" + search_tags: 'Search Tags:' + select: + inherit: "" + none: "" + normal: "" + settings: 'Settings' + slug: 'Slug' + snippet: "Snippet" + snippets: "Snippets" + status: "Statut" + # Warnings and info text: + testing: Testing + text: + layouts: + remove_warning: "Confirmez-vous la suppression du layout suivant?" + pages: + remove_warning: "Confirmez-vous la suppression des pages suivantes {{pages}}?" + snippets: + remove_warning: "Confirmez-vous la suppression des fragments réutilisables (snippet) suivants?" + users: + remove_warning: 'Are you sure you want to permanently remove the following user?' + this_file_language: "Français" + time: + am: 'AM' + formats: + datetime: + formats: + default: "%Y-%m-%dT%H:%M:%S%Z" + default: "%a %b %d %H:%M:%S %Z %Y" + long: "%B %d, %Y %H:%M" + only_second: "%S" + short: "%d %b %H:%M" + time: "%H:%M" + timestamp: "%I:%M %p on %B %d, %Y" + pm: 'PM' + timestamp: + at: "à" + by: "par" + last_updated: "Dernière modification" + user: "Utilisateur" + username: "Nom Utilisateur" + users: "Utilisateurs" + users_controller: + cannot_delete_self: "Vous ne pouvez pas vous supprimer vous-même!. " + version: "Version" + view_site: "Afficher le site" + website: "Website" + welcome_controller: + invalid_user: "Nom ou mot de passe invalide." + logged_out: "Vous n'êtes plus identifié(e)'" diff --git a/vendor/extensions/french_language_pack/config/locales/fr_available_tags.yml b/vendor/extensions/french_language_pack/config/locales/fr_available_tags.yml new file mode 100644 index 000000000..eb2435ba8 --- /dev/null +++ b/vendor/extensions/french_language_pack/config/locales/fr_available_tags.yml @@ -0,0 +1,553 @@ +--- +fr: + desc: + author: + Renders the name of the author of the current page. + + breadcrumb: + Renders the @breadcrumb@ attribute of the current page. + + breadcrumbs: + Renders a trail of breadcrumbs to the current page. The separator attribute + specifies the HTML fragment that is inserted between each of the breadcrumbs. By + default it is set to @>@. The boolean nolinks attribute can be specified to render + breadcrumbs in plain text, without any links (useful when generating title tag). + + *Usage:* + +
+ + children-count: + Renders the total number of children. + + children-each-child: + Page attribute tags inside of this tag refer to the current child. This is occasionally + useful if you are inside of another tag (like <r:find>) and need to refer back to the + current child. + + *Usage:* + +

+        ...
+      
+      
+ + children-each-header: + Renders the tag contents only if the contents do not match the previous header. This + is extremely useful for rendering date headers for a list of child pages. + + If you would like to use several header blocks you may use the @name@ attribute to + name the header. When a header is named it will not restart until another header of + the same name is different. + + Using the @restart@ attribute you can cause other named headers to restart when the + present header changes. Simply specify the names of the other headers in a semicolon + separated list. + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + children-each-if_first: + Renders the tag contents only if the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-if_last: + Renders the tag contents only if the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_first: + Renders the tag contents unless the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_last: + Renders the tag contents unless the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each: + Cycles through each of the children. Inside this tag all page attribute tags + are mapped to the current child page. + + *Usage:* + +

+       ...
+      
+      
+ + children-first: + Returns the first child. Inside this tag all page attribute tags are mapped to + the first child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children-last: + Returns the last child. Inside this tag all page attribute tags are mapped to + the last child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children: + Gives access to a page's children. + + *Usage:* + +
...
+ + comment: + Nothing inside a set of comment tags is rendered. + + *Usage:* + +
...
+ + content: + Renders the main content of a page. Use the @part@ attribute to select a specific + page part. By default the @part@ attribute is set to body. Use the @inherit@ + attribute to specify that if a page does not have a content part by that name that + the tag should render the parent's content part. By default @inherit@ is set to + @false@. Use the @contextual@ attribute to force a part inherited from a parent + part to be evaluated in the context of the child page. By default 'contextual' + is set to true. + + *Usage:* + +
+ + cycle: + Renders one of the passed values based on a global cycle counter. Use the @reset@ + attribute to reset the cycle to the beginning. Use the @name@ attribute to track + multiple cycles; the default is @cycle@. + + *Usage:* + +
+ + date: + Renders the date based on the current page (by default when it was published or created). + The format attribute uses the same formating codes used by the Ruby @strftime@ function. By + default it's set to @%A, %B %d, %Y@. The @for@ attribute selects which date to render. Valid + options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the + current date/time, regardless of the page. + + *Usage:* + +
+ + escape_html: + Escapes angle brackets, etc. for rendering in an HTML document. + + *Usage:* + +
...
+ + find: + Inside this tag all page related tags refer to the page found at the @url@ attribute. + @url@s may be relative or absolute paths. + + *Usage:* + +
...
+ + if_ancestor_or_self: + Renders the contained elements if the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page. + + *Usage:* + +
...
+ + if_children: + Renders the contained elements only if the current contextual page has one or + more child pages. The @status@ attribute limits the status of found child pages + to the given status, the default is @"published"@. @status="all"@ includes all + non-virtual pages regardless of status. + + *Usage:* + +
...
+ + if_content: + Renders the containing elements if all of the listed parts exist on a page. + By default the @part@ attribute is set to @body@, but you may list more than one + part by separating them with a comma. Setting the optional @inherit@ to true will + search ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + if_dev: + Renders the containing elements only if Radiant in is development mode. + + *Usage:* + +
...
+ + if_parent: + Renders the contained elements only if the current contextual page has a parent, i.e. + is not the root page. + + *Usage:* + +
...
+ + if_self: + Renders the contained elements if the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page. + + *Usage:* + +
...
+ + if_url: + Renders the containing elements only if the page's url matches the regular expression + given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the + match is case sensitive. By default, @ignore_case@ is set to true. + + *Usage:* + +
...
+ + link: + Renders a link to the page. When used as a single tag it uses the page's title + for the link name. When used as a double tag the part in between both tags will + be used as the link text. The link tag passes all attributes over to the HTML + @a@ tag. This is very useful for passing attributes like the @class@ attribute + or @id@ attribute. If the @anchor@ attribute is passed to the tag it will + append a pound sign (#) followed by the value of the attribute to + the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor. + + *Usage:* + +
+ + or + +
link text here
+ + markdown: + Filters its contents with the Markdown filter. + + *Usage:* + +
** bold text **
+ + produces + +
 bold text 
+ + meta-description: + Emits the page description field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta-keywords: + Emits the page keywords field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta: + The namespace for 'meta' attributes. If used as a singleton tag, both the description + and keywords fields will be output as <meta /> tags unless the attribute 'tag' is set to 'false'. + + *Usage:* + +
 
+       
+         
+         
+       
+      
+ + navigation-if_first: + Renders the containing elements if the element is the first + in the navigation list + + *Usage:* + +
...
+ + navigation-if_last: + Renders the containing elements if the element is the last + in the navigation list + + *Usage:* + +
...
+ + navigation: + Renders a list of links specified in the @urls@ attribute according to three + states: + + * @normal@ specifies the normal state for the link + * @here@ specifies the state of the link when the url matches the current + page's URL + * @selected@ specifies the state of the link when the current page matches + is a child of the specified url + # @if_last@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the last in the navigation elements + # @if_first@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the first in the navigation elements + + The @between@ tag specifies what should be inserted in between each of the links. + + *Usage:* + +

+        
+        
+        
+         | 
+      
+      
+ + page: + Causes the tags referring to a page's attributes to refer to the current page. + + *Usage:* + +
...
+ + parent: + Page attribute tags inside this tag refer to the parent of the current page. + + *Usage:* + +
...
+ + random: + Randomly renders one of the options specified by the @option@ tags. + + *Usage:* + +

+        ...
+        ...
+        ...
+      
+      
+ + rfc1123_date: + Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.) + + *Usage:* + +
+ + slug: + Renders the @slug@ attribute of the current page. + + smarty_pants: + Filters its contents with the SmartyPants filter. + + *Usage:* + +
"A revolutionary quotation."
+ + produces + +
“A revolutionary quotation.”
+ + snippet: + Renders the snippet specified in the @name@ attribute within the context of a page. + + *Usage:* + +
+ + When used as a double tag, the part in between both tags may be used within the + snippet itself, being substituted in place of @@. + + *Usage:* + +
Lorem ipsum dolor...
+ + status: + Prints the page's status as a string. Optional attribute 'downcase' + will cause the status to be all lowercase. + + *Usage:* + +
+ + textile: + Filters its contents with the Textile filter. + + *Usage*: + +

+      * First
+      * Second
+      
+ + produces: + +
    +
  • First
  • +
  • Second
  • +
+ + title: + Renders the @title@ attribute of the current page. + + unless_ancestor_or_self: + Renders the contained elements unless the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page. + + *Usage:* + +
...
+ + unless_children: + Renders the contained elements only if the current contextual page has no children. + The @status@ attribute limits the status of found child pages to the given status, + the default is @"published"@. @status="all"@ includes all non-virtual pages + regardless of status. + + *Usage:* + +
...
+ + unless_content: + The opposite of the @if_content@ tag. It renders the contained elements if all of the + specified parts do not exist. Setting the optional @inherit@ to true will search + ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will not render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + unless_dev: + The opposite of the @if_dev@ tag. + + *Usage:* + +
...
+ + unless_parent: + Renders the contained elements only if the current contextual page has no parent, i.e. + is the root page. + + *Usage:* + +
...
+ + unless_self: + Renders the contained elements unless the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is the current page. + + *Usage:* + +
...
+ + unless_url: + The opposite of the @if_url@ tag. + + *Usage:* + +
...
+ + url: + Renders the @url@ attribute of the current page. + + yield: + Used within a snippet as a placeholder for substitution of child content, when + the snippet is called as a double tag. + + *Usage (within a snippet):* + +

+      
+

before

+ +

after

+
+
+ + If the above snippet was named "yielding", you could call it from any Page, + Layout or Snippet as follows: + +
Content within
+ + Which would output the following: + +

+      
+

before

+ Content within +

after

+
+
+ + When called in the context of a Page or a Layout, @@ outputs nothing. + diff --git a/vendor/extensions/french_language_pack/cucumber.yml b/vendor/extensions/french_language_pack/cucumber.yml new file mode 100644 index 000000000..7a03ee675 --- /dev/null +++ b/vendor/extensions/french_language_pack/cucumber.yml @@ -0,0 +1 @@ +default: --format progress features --tags ~@proposed,~@in_progress \ No newline at end of file diff --git a/vendor/extensions/french_language_pack/features/support/env.rb b/vendor/extensions/french_language_pack/features/support/env.rb new file mode 100644 index 000000000..c0a4ad278 --- /dev/null +++ b/vendor/extensions/french_language_pack/features/support/env.rb @@ -0,0 +1,16 @@ +# Sets up the Rails environment for Cucumber +ENV["RAILS_ENV"] = "test" +# Extension root +extension_env = File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment') +require extension_env+'.rb' + +Dir.glob(File.join(RADIANT_ROOT, "features", "**", "*.rb")).each {|step| require step} + +Cucumber::Rails::World.class_eval do + include Dataset + datasets_directory "#{RADIANT_ROOT}/spec/datasets" + Dataset::Resolver.default = Dataset::DirectoryResolver.new("#{RADIANT_ROOT}/spec/datasets", File.dirname(__FILE__) + '/../../spec/datasets', File.dirname(__FILE__) + '/../datasets') + self.datasets_database_dump_path = "#{Rails.root}/tmp/dataset" + + # dataset :fr +end \ No newline at end of file diff --git a/vendor/extensions/french_language_pack/features/support/paths.rb b/vendor/extensions/french_language_pack/features/support/paths.rb new file mode 100644 index 000000000..9e6762406 --- /dev/null +++ b/vendor/extensions/french_language_pack/features/support/paths.rb @@ -0,0 +1,14 @@ +def path_to(page_name) + case page_name + + when /the homepage/i + root_path + + when /login/i + login_path + # Add more page name => path mappings here + + else + raise "Can't find mapping from \"#{page_name}\" to a path." + end +end \ No newline at end of file diff --git a/vendor/extensions/french_language_pack/french_language_pack_extension.rb b/vendor/extensions/french_language_pack/french_language_pack_extension.rb new file mode 100644 index 000000000..861e073e7 --- /dev/null +++ b/vendor/extensions/french_language_pack/french_language_pack_extension.rb @@ -0,0 +1,9 @@ +class FrenchLanguagePackExtension < Radiant::Extension + version "1.0" + description "Provides a French translation for the Radiant admin interface" + url "http://yourwebsite.com/fr" + + def activate + + end +end diff --git a/vendor/extensions/french_language_pack/lib/tasks/i18n_fr_extension_tasks.rake b/vendor/extensions/french_language_pack/lib/tasks/i18n_fr_extension_tasks.rake new file mode 100644 index 000000000..acfb08244 --- /dev/null +++ b/vendor/extensions/french_language_pack/lib/tasks/i18n_fr_extension_tasks.rake @@ -0,0 +1,28 @@ +namespace :radiant do + namespace :extensions do + namespace :fr do + + desc "Runs the migration of the I18n Fr extension" + task :migrate => :environment do + require 'radiant/extension_migrator' + if ENV["VERSION"] + I18nFrExtension.migrator.migrate(ENV["VERSION"].to_i) + else + I18nFrExtension.migrator.migrate + end + end + + desc "Copies public assets of the I18n Fr to the instance public/ directory." + task :update => :environment do + is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) } + puts "Copying assets from I18nFrExtension" + Dir[I18nFrExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file| + path = file.sub(I18nFrExtension.root, '') + directory = File.dirname(path) + mkdir_p RAILS_ROOT + directory, :verbose => false + cp file, RAILS_ROOT + path, :verbose => false + end + end + end + end +end diff --git a/vendor/extensions/french_language_pack/spec/spec.opts b/vendor/extensions/french_language_pack/spec/spec.opts new file mode 100644 index 000000000..d8c8db5d4 --- /dev/null +++ b/vendor/extensions/french_language_pack/spec/spec.opts @@ -0,0 +1,6 @@ +--colour +--format +progress +--loadby +mtime +--reverse diff --git a/vendor/extensions/french_language_pack/spec/spec_helper.rb b/vendor/extensions/french_language_pack/spec/spec_helper.rb new file mode 100644 index 000000000..0adbf9f02 --- /dev/null +++ b/vendor/extensions/french_language_pack/spec/spec_helper.rb @@ -0,0 +1,36 @@ +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require ENV["RADIANT_ENV_FILE"] + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment" + end +end +require "#{RADIANT_ROOT}/spec/spec_helper" + +Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets") + +if File.directory?(File.dirname(__FILE__) + "/matchers") + Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file } +end + +Spec::Runner.configure do |config| + # config.use_transactional_fixtures = true + # config.use_instantiated_fixtures = false + # config.fixture_path = RAILS_ROOT + '/spec/fixtures' + + # You can declare fixtures for each behaviour like this: + # describe "...." do + # fixtures :table_a, :table_b + # + # Alternatively, if you prefer to declare them only once, you can + # do so here, like so ... + # + # config.global_fixtures = :table_a, :table_b + # + # If you declare global fixtures, be aware that they will be declared + # for all of your examples, even those that don't use them. +end \ No newline at end of file diff --git a/vendor/extensions/german_language_pack/README b/vendor/extensions/german_language_pack/README new file mode 100644 index 000000000..66e059d4a --- /dev/null +++ b/vendor/extensions/german_language_pack/README @@ -0,0 +1,3 @@ += I18n De + +Description goes here \ No newline at end of file diff --git a/vendor/extensions/german_language_pack/Rakefile b/vendor/extensions/german_language_pack/Rakefile new file mode 100644 index 000000000..94ba0a469 --- /dev/null +++ b/vendor/extensions/german_language_pack/Rakefile @@ -0,0 +1,123 @@ +# I think this is the one that should be moved to the extension Rakefile template + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. + +# Determine where the RSpec plugin is by loading the boot +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot" + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot" + end +end + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' + +rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'cucumber' +require 'cucumber/rake/task' + +# Cleanup the RADIANT_ROOT constant so specs will load the environment +Object.send(:remove_const, :RADIANT_ROOT) + +extension_root = File.expand_path(File.dirname(__FILE__)) + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :features => 'spec:integration' + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the Cucumber features" + Cucumber::Rake::Task.new(:integration) do |t| + t.fork = true + t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] + # t.feature_pattern = "#{extension_root}/features/**/*.feature" + t.profile = "default" + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end +end + +desc 'Generate documentation for the de extension.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'I18nDeExtension' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +# For extensions that are in transition +desc 'Test the de extension.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +# Load any custom rakefiles for extension +Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f } \ No newline at end of file diff --git a/vendor/extensions/german_language_pack/config/locales/de.yml b/vendor/extensions/german_language_pack/config/locales/de.yml new file mode 100644 index 000000000..7f7888a6f --- /dev/null +++ b/vendor/extensions/german_language_pack/config/locales/de.yml @@ -0,0 +1,182 @@ +--- +de: + account: 'Konto' + activerecord: + errors: + messages: + blank: 'obligatorisch' # required + invalid: 'ungültiges Format' #invalid_format + not_a_number: 'Muss eine Zahl sein' # must be number + taken: 'Name schon in Benutzung' # name_in_use + too_long: '{{count}}-Zeichnen-Limit' # character_limit + too_short: '{{count}}-Zeichen-Minimum' # character_minimum + models: + page: + attributes: + slug: + taken: 'Slug schon in Benutzung als Kind der Elternseite' # slug_in_use + user: + attributes: + email: + invalid: 'ungülitge E-Mail-Adresse' # invalid_email + login: + taken: 'Login schon in Benutzung' # login already in use + password: + confirmation: 'muss der Bestätigung entsprechen' # password_confirmation + add_child: 'Neue Unterseite' + add_part: 'Neues Part' + add_tab: 'fügt Tab ein' + admin: 'Administrator' + available_tags: 'Available Tags' + available_tags_for: 'Available Tags for {{name}}' + body: 'Body' + breadcrumb: 'Breadcrumb' + buttons: + create: '{{name}} erstellen' + save_and_continue: 'Sichern und bearbeiten' + save_changes: 'Änderungen sichern' + cancel: 'Zurück' + change: 'Ändern' + close: 'Schliessen' + content: 'Inhalt' + content_type: 'Inhalt‑Typ' + creating_status: 'Creating {{model}}…' + date: + abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa] + abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez] + day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag] + formats: + default: "%d.%m.%Y" + long: "%e. %B %Y" + only_day: "%e" + short: "%e. %b" + month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember] + order: [:day, :month, :year] + delete_layout: 'Layout löschen' + delete_pages: 'lösche {{pages}}' + delete_snippet: 'Snippet löschen' + delete_user: 'Benutzer Löschen' + description: 'Beschreibung' + design: 'Design' + designer: 'Designer' + draft: 'Entwurf' + edit_layout: 'Layout bearbeiten' + edit_page: 'Seite bearbeiten' + edit_snippet: 'Snippet bearbeiten' + edit_user: 'Benutzer bearbeiten' + email_address: 'E-Mail Adresse' + extension: 'Erweiterung' + extensions: 'Erweiterungen' + filter: 'Filter' + hidden: 'Versteckt' + hide: 'Verstecken' + keywords: 'Keywords' + language: 'Sprache' + layout: 'Layout' + layouts: 'Layouts' + log_out: 'Ausloggen' + logged_in_as: 'Eingeloggt als' + login: 'Benutzername' + modify: 'Bearbeiten' + more: 'Mehr' + name: 'Name' + new_layout: 'Neues Layout' + new_page: 'Neue Seite' + new_password: 'Neues Passwort' + new_snippet: 'Neues Snippet' + new_user: 'Neuer Benutzer' + no_pages: 'keine Seiten' + notes: 'Notiz' + optional: 'Optional' + or: 'oder' + page: 'Seite' + page_page: 'Seite Part' + page_title: 'Titel' + page_type: 'Seitentyp' + pages: 'Seiten' + pages_controller: + removed_many: "Die Seiten wurden erfolgreich von der Website gelöscht." + removed_one: "Die Seite wurde erfolgreich von der Website gelöscht." + saved: "Ihre Seite wurde gespeichert." + password: 'Passwort' + password_confirmation: 'Passwort bestätigen' + personal: 'Personal' + personal_preferences: 'Benutzer Einstellungen' + please_login: 'Bitte Anmelden' + powered_by: 'Powered by' + preferences: 'Präferenzen' + preferences_controller: + error_updating: 'Beim aktualisieren Ihrer Einstellungen ist ein Fehler aufgetreten.' + updated: 'Ihre Einstellungen wurden aktualisiert.' + published: 'Publiziert' + published_at: 'Veröffentlicht am' + reference: 'Referenz' + remember_me: 'Merken' + remove: 'Löschen' + remove_layout: 'Layout löschen' + remove_page: 'Remove Page' + remove_pages: 'entferne {{pages}}' + remove_tab: 'entfernt einen Tab' + remove_user: 'Remove user' + required: 'erforderlich' + resource_controller: + not_found: "{{humanized_model_name}} could not be found." + removed: "{{humanized_model_name}} wurde gelöscht." + saved: "{{humanized_model_name}} gespeichert." + update_conflict: "Seit dem letzten Laden wurde {{humanized_model_name}} geändert. Änderungen können nicht ohne Verlust gespeichert werden." + validation_errors: "Bei der Bearbeitung dieses Formulars sind Bestätigungsfehler aufgetreten. Bitte überprüfen und korrigieren Sie alle Eingaben." + reviewed: 'Überprüft' + roles: 'Rollen' + saving_changes: Änderungen wird gespeichert + saving_preferences: Preferenzen wird gespeichert + scheduled: "Scheduled" + search_tags: 'Tags durchsuchen:' + select: + inherit: '' + none: '' + normal: '' + settings: 'Einstellungen' + slug: 'Slug' + snippet: 'Snippet' + snippets: 'Snippets' + status: 'Status' + # Warnings and info text: + testing: Testing + text: + layouts: + remove_warning: 'Sie sind sicher, das folgende Layout dauerhaft entfernen zu wollen?' + pages: + remove_warning: 'Sie sind sicher, das Folgende {{pages}} dauerhaft entfernen zu wollen?' + snippets: + remove_warning:'Sind Sie sich sicher, dass Sie das folgende Snippet dauerhaft entfernen wollen?' + users: + remove_warning: 'Sind Sie sich sicher, dass Sie den Nutzer dauerhaft entfernen möchten?' + this_file_language: "Deutsch" + time: + am: "" + formats: + datetime: + formats: + default: "%Y-%m-%dT%H:%M:%S%Z" + default: "%A, %e. %B %Y, %H:%M Uhr" + long: "%A, %e. %B %Y, %H:%M Uhr" + only_second: "%S" + short: "%e.%m., %H:%M Uhr" + time: "%H:%M Uhr" + timestamp: "%H:%M am %d. %B, %Y" + pm: 'PM' + timestamp: + at: 'um' + by: 'von' + last_updated: 'Zuletzt geändert' + user: 'Benutzer' + username: 'Benutzername' + users: 'Benutzer' + users_controller: + cannot_delete_self: 'Sie können sich nicht selbst löschen.' + version: 'Version' + view_site: 'Website' + website: 'Website' + welcome_controller: + invalid_user: 'Ungültiger Benutzername oder Passwort.' + logged_out: 'Sie sind jetzt ausgeloggt.' diff --git a/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml b/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml new file mode 100644 index 000000000..a66f12e7a --- /dev/null +++ b/vendor/extensions/german_language_pack/config/locales/de_available_tags.yml @@ -0,0 +1,553 @@ +--- +de: + desc: + author: + Renders the name of the author of the current page. + + breadcrumb: + Renders the @breadcrumb@ attribute of the current page. + + breadcrumbs: + Renders a trail of breadcrumbs to the current page. The separator attribute + specifies the HTML fragment that is inserted between each of the breadcrumbs. By + default it is set to @>@. The boolean nolinks attribute can be specified to render + breadcrumbs in plain text, without any links (useful when generating title tag). + + *Usage:* + +
+ + children-count: + Renders the total number of children. + + children-each-child: + Page attribute tags inside of this tag refer to the current child. This is occasionally + useful if you are inside of another tag (like <r:find>) and need to refer back to the + current child. + + *Usage:* + +

+        ...
+      
+      
+ + children-each-header: + Renders the tag contents only if the contents do not match the previous header. This + is extremely useful for rendering date headers for a list of child pages. + + If you would like to use several header blocks you may use the @name@ attribute to + name the header. When a header is named it will not restart until another header of + the same name is different. + + Using the @restart@ attribute you can cause other named headers to restart when the + present header changes. Simply specify the names of the other headers in a semicolon + separated list. + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + children-each-if_first: + Renders the tag contents only if the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-if_last: + Renders the tag contents only if the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_first: + Renders the tag contents unless the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_last: + Renders the tag contents unless the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each: + Cycles through each of the children. Inside this tag all page attribute tags + are mapped to the current child page. + + *Usage:* + +

+       ...
+      
+      
+ + children-first: + Returns the first child. Inside this tag all page attribute tags are mapped to + the first child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children-last: + Returns the last child. Inside this tag all page attribute tags are mapped to + the last child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children: + Gives access to a page's children. + + *Usage:* + +
...
+ + comment: + Nothing inside a set of comment tags is rendered. + + *Usage:* + +
...
+ + content: + Renders the main content of a page. Use the @part@ attribute to select a specific + page part. By default the @part@ attribute is set to body. Use the @inherit@ + attribute to specify that if a page does not have a content part by that name that + the tag should render the parent's content part. By default @inherit@ is set to + @false@. Use the @contextual@ attribute to force a part inherited from a parent + part to be evaluated in the context of the child page. By default 'contextual' + is set to true. + + *Usage:* + +
+ + cycle: + Renders one of the passed values based on a global cycle counter. Use the @reset@ + attribute to reset the cycle to the beginning. Use the @name@ attribute to track + multiple cycles; the default is @cycle@. + + *Usage:* + +
+ + date: + Renders the date based on the current page (by default when it was published or created). + The format attribute uses the same formating codes used by the Ruby @strftime@ function. By + default it's set to @%A, %B %d, %Y@. The @for@ attribute selects which date to render. Valid + options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the + current date/time, regardless of the page. + + *Usage:* + +
+ + escape_html: + Escapes angle brackets, etc. for rendering in an HTML document. + + *Usage:* + +
...
+ + find: + Inside this tag all page related tags refer to the page found at the @url@ attribute. + @url@s may be relative or absolute paths. + + *Usage:* + +
...
+ + if_ancestor_or_self: + Renders the contained elements if the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page. + + *Usage:* + +
...
+ + if_children: + Renders the contained elements only if the current contextual page has one or + more child pages. The @status@ attribute limits the status of found child pages + to the given status, the default is @"published"@. @status="all"@ includes all + non-virtual pages regardless of status. + + *Usage:* + +
...
+ + if_content: + Renders the containing elements if all of the listed parts exist on a page. + By default the @part@ attribute is set to @body@, but you may list more than one + part by separating them with a comma. Setting the optional @inherit@ to true will + search ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + if_dev: + Renders the containing elements only if Radiant in is development mode. + + *Usage:* + +
...
+ + if_parent: + Renders the contained elements only if the current contextual page has a parent, i.e. + is not the root page. + + *Usage:* + +
...
+ + if_self: + Renders the contained elements if the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page. + + *Usage:* + +
...
+ + if_url: + Renders the containing elements only if the page's url matches the regular expression + given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the + match is case sensitive. By default, @ignore_case@ is set to true. + + *Usage:* + +
...
+ + link: + Renders a link to the page. When used as a single tag it uses the page's title + for the link name. When used as a double tag the part in between both tags will + be used as the link text. The link tag passes all attributes over to the HTML + @a@ tag. This is very useful for passing attributes like the @class@ attribute + or @id@ attribute. If the @anchor@ attribute is passed to the tag it will + append a pound sign (#) followed by the value of the attribute to + the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor. + + *Usage:* + +
+ + or + +
link text here
+ + markdown: + Filters its contents with the Markdown filter. + + *Usage:* + +
** bold text **
+ + produces + +
 bold text 
+ + meta-description: + Emits the page description field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta-keywords: + Emits the page keywords field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta: + The namespace for 'meta' attributes. If used as a singleton tag, both the description + and keywords fields will be output as <meta /> tags unless the attribute 'tag' is set to 'false'. + + *Usage:* + +
 
+       
+         
+         
+       
+      
+ + navigation-if_first: + Renders the containing elements if the element is the first + in the navigation list + + *Usage:* + +
...
+ + navigation-if_last: + Renders the containing elements if the element is the last + in the navigation list + + *Usage:* + +
...
+ + navigation: + Renders a list of links specified in the @urls@ attribute according to three + states: + + * @normal@ specifies the normal state for the link + * @here@ specifies the state of the link when the url matches the current + page's URL + * @selected@ specifies the state of the link when the current page matches + is a child of the specified url + # @if_last@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the last in the navigation elements + # @if_first@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the first in the navigation elements + + The @between@ tag specifies what should be inserted in between each of the links. + + *Usage:* + +

+        
+        
+        
+         | 
+      
+      
+ + page: + Causes the tags referring to a page's attributes to refer to the current page. + + *Usage:* + +
...
+ + parent: + Page attribute tags inside this tag refer to the parent of the current page. + + *Usage:* + +
...
+ + random: + Randomly renders one of the options specified by the @option@ tags. + + *Usage:* + +

+        ...
+        ...
+        ...
+      
+      
+ + rfc1123_date: + Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.) + + *Usage:* + +
+ + slug: + Renders the @slug@ attribute of the current page. + + smarty_pants: + Filters its contents with the SmartyPants filter. + + *Usage:* + +
"A revolutionary quotation."
+ + produces + +
“A revolutionary quotation.”
+ + snippet: + Renders the snippet specified in the @name@ attribute within the context of a page. + + *Usage:* + +
+ + When used as a double tag, the part in between both tags may be used within the + snippet itself, being substituted in place of @@. + + *Usage:* + +
Lorem ipsum dolor...
+ + status: + Prints the page's status as a string. Optional attribute 'downcase' + will cause the status to be all lowercase. + + *Usage:* + +
+ + textile: + Filters its contents with the Textile filter. + + *Usage*: + +

+      * First
+      * Second
+      
+ + produces: + +
    +
  • First
  • +
  • Second
  • +
+ + title: + Renders the @title@ attribute of the current page. + + unless_ancestor_or_self: + Renders the contained elements unless the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page. + + *Usage:* + +
...
+ + unless_children: + Renders the contained elements only if the current contextual page has no children. + The @status@ attribute limits the status of found child pages to the given status, + the default is @"published"@. @status="all"@ includes all non-virtual pages + regardless of status. + + *Usage:* + +
...
+ + unless_content: + The opposite of the @if_content@ tag. It renders the contained elements if all of the + specified parts do not exist. Setting the optional @inherit@ to true will search + ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will not render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + unless_dev: + The opposite of the @if_dev@ tag. + + *Usage:* + +
...
+ + unless_parent: + Renders the contained elements only if the current contextual page has no parent, i.e. + is the root page. + + *Usage:* + +
...
+ + unless_self: + Renders the contained elements unless the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is the current page. + + *Usage:* + +
...
+ + unless_url: + The opposite of the @if_url@ tag. + + *Usage:* + +
...
+ + url: + Renders the @url@ attribute of the current page. + + yield: + Used within a snippet as a placeholder for substitution of child content, when + the snippet is called as a double tag. + + *Usage (within a snippet):* + +

+      
+

before

+ +

after

+
+
+ + If the above snippet was named "yielding", you could call it from any Page, + Layout or Snippet as follows: + +
Content within
+ + Which would output the following: + +

+      
+

before

+ Content within +

after

+
+
+ + When called in the context of a Page or a Layout, @@ outputs nothing. + diff --git a/vendor/extensions/german_language_pack/german_language_pack_extension.rb b/vendor/extensions/german_language_pack/german_language_pack_extension.rb new file mode 100644 index 000000000..793ffbee2 --- /dev/null +++ b/vendor/extensions/german_language_pack/german_language_pack_extension.rb @@ -0,0 +1,9 @@ +class GermanLanguagePackExtension < Radiant::Extension + version "1.0" + description "Provides a German translation for the Radiant admin interface" + url "http://yourwebsite.com/fr" + + def activate + + end +end \ No newline at end of file diff --git a/vendor/extensions/german_language_pack/lib/tasks/i18n_de_extension_tasks.rake b/vendor/extensions/german_language_pack/lib/tasks/i18n_de_extension_tasks.rake new file mode 100644 index 000000000..5c1cbd2a2 --- /dev/null +++ b/vendor/extensions/german_language_pack/lib/tasks/i18n_de_extension_tasks.rake @@ -0,0 +1,28 @@ +namespace :radiant do + namespace :extensions do + namespace :de do + + desc "Runs the migration of the I18n De extension" + task :migrate => :environment do + require 'radiant/extension_migrator' + if ENV["VERSION"] + I18nDeExtension.migrator.migrate(ENV["VERSION"].to_i) + else + I18nDeExtension.migrator.migrate + end + end + + desc "Copies public assets of the I18n De to the instance public/ directory." + task :update => :environment do + is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) } + puts "Copying assets from I18nDeExtension" + Dir[I18nDeExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file| + path = file.sub(I18nDeExtension.root, '') + directory = File.dirname(path) + mkdir_p RAILS_ROOT + directory, :verbose => false + cp file, RAILS_ROOT + path, :verbose => false + end + end + end + end +end diff --git a/vendor/extensions/italian_language_pack/README b/vendor/extensions/italian_language_pack/README new file mode 100644 index 000000000..ccd53c0eb --- /dev/null +++ b/vendor/extensions/italian_language_pack/README @@ -0,0 +1,3 @@ += I18n It + +Description goes here \ No newline at end of file diff --git a/vendor/extensions/italian_language_pack/Rakefile b/vendor/extensions/italian_language_pack/Rakefile new file mode 100644 index 000000000..024cf04ce --- /dev/null +++ b/vendor/extensions/italian_language_pack/Rakefile @@ -0,0 +1,123 @@ +# I think this is the one that should be moved to the extension Rakefile template + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. + +# Determine where the RSpec plugin is by loading the boot +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot" + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot" + end +end + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' + +rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'cucumber' +require 'cucumber/rake/task' + +# Cleanup the RADIANT_ROOT constant so specs will load the environment +Object.send(:remove_const, :RADIANT_ROOT) + +extension_root = File.expand_path(File.dirname(__FILE__)) + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :features => 'spec:integration' + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the Cucumber features" + Cucumber::Rake::Task.new(:integration) do |t| + t.fork = true + t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] + # t.feature_pattern = "#{extension_root}/features/**/*.feature" + t.profile = "default" + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end +end + +desc 'Generate documentation for the it extension.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'I18nItExtension' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +# For extensions that are in transition +desc 'Test the it extension.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +# Load any custom rakefiles for extension +Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f } \ No newline at end of file diff --git a/vendor/extensions/italian_language_pack/config/locales/it.yml b/vendor/extensions/italian_language_pack/config/locales/it.yml new file mode 100644 index 000000000..967f1513e --- /dev/null +++ b/vendor/extensions/italian_language_pack/config/locales/it.yml @@ -0,0 +1,182 @@ +--- +it: + account: 'Account' + activerecord: + errors: + messages: + blank: 'obbligatorio' # required + invalid: 'formato non valido' #invalid_format + not_a_number: "dev'essere un numero" # must be number + taken: 'già utilizzato' # name_in_use + too_long: '{{count}} caratteri al massimo' # character_limit + too_short: '{{count}} caratteri al minimo' # character_minimum + models: + page: + attributes: + slug: + taken: 'slug già utilizzato' # slug_in_use + user: + attributes: + email: + invalid: 'indirizzo email non valido' # invalid_email + login: + taken: 'login già utilizzato' # login already in use + password: + confirmation: 'conferma password' # password_confirmation + add_child: 'Aggiungi pagina figlia' + add_part: 'Aggiungi parte' + add_tab: "Aggiungi tab" + admin: "Amministratore" + available_tags: "Tag disponibili" + available_tags_for: 'Tag disponibili per {{name}}' + body: "Body" + breadcrumb: 'Traccia' + buttons: + create: "Crea {{name}}" + save_and_continue: "Salva e continua" + save_changes: "Salva le modifiche" + cancel: "Annulla" + change: 'Cambia' + close: "Chiudi" + content: 'Contenuto' + content_type: "Content-Type (tipo)" + creating_status: 'Creo {{model}}…' + date: + abbr_day_names: [Do, Lu, Ma, Me, Gi, Ve, Sa] + abbr_month_names: [~, Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic] + day_names: [Domenica, Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato] + formats: + default: "%d.%m.%Y" + long: "%e. %B %Y" + only_day: "%e" + short: "%e. %b" + month_names: [~, Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, Ottobre, Novembre, Dicembre] + order: [:day, :month, :year] + delete_layout: "Cancella Layout" + delete_pages: "Cancella {{pages}}" + delete_snippet: 'Cancella Snippet' + delete_user: 'Cancella Utente' + description: 'Descrizione' + design: 'Design' + designer: 'Designer' + draft: "Bozza" + edit_layout: "Modifica Layout" + edit_page: "Modifica Pagina" + edit_snippet: "Modifica Snippet" + edit_user: "Modifica Utente" + email_address: 'Indirizzo Email' + extension: "Estensione" + extensions: "Estensioni" + filter: "Filtro" + hidden: "Nascosto" + hide: 'Nascondi' + keywords: 'Parole chiave' + language: "Lingua" + layout: "Layout" + layouts: "Layout" + log_out: "Uscita" + logged_in_as: 'Accesso come' + login: "Login" + modify: "Modifica" + more: "Più" + name: "Nome" + new_layout: "Nuovo Layout" + new_page: "Nuova Pagina" + new_password: 'Nuova Password' + new_snippet: "Nuovo Snippet" + new_user: "Nuovo Utente" + no_pages: "Nessuna pagina" + notes: "Note" + optional: "Facoltativo" + or: "o" + page: "Pagina" + page_page: 'Parte di pagina' + page_title: "Titolo" + page_type: "Tipo di pagina" + pages: "Pagine" + pages_controller: + removed_many: "Le pagine sono state rimosse" + removed_one: "La pagina è stata rimossa" + saved: "Pagina salvata" + password: "Password" + password_confirmation: "Conferma password" + personal: 'Personale' + personal_preferences: 'Preferenze personali' + please_login: 'Prego identificarsi' + powered_by: 'Realizzato con' + preferences: "Preferenze" + preferences_controller: + error_updating: "Errore nella modifica preferenze" + updated: "Preferenze modificate" + published: "Pubblicato" + published_at: "Pubblicato il" + reference: "Riferimento" + remember_me: "Memorizza informazioni" + remove: 'Rimuovi' + remove_layout: "Rimuovi Layout" + remove_page: 'Rimuovi Pagina' + remove_pages: "Rimuovi {{pages}}" + remove_tab: "Rimuovi tab" + remove_user: 'Rimuovi utente' + required: "Obbligatorio" + resource_controller: + not_found: "{{humanized_model_name}} non trovato." + removed: "{{humanized_model_name}} rimosso." + saved: "{{humanized_model_name}} salvato." + update_conflict: "{{humanized_model_name}} è stato modificato dopo il salvataggio, è possibile che delle modifiche siano perse." + validation_errors: "Dati non validi. Prego controllare l'esattezza e completezza dei dati." + reviewed: "Riveduto" + roles: "Ruoli" + saving_changes: "Salvataggio modifiche" + saving_preferences: "Salvataggio preferenze" + scheduled: "Scheduled" + search_tags: 'Ricerca Tag:' + select: + inherit: "" + none: "" + normal: "" + settings: 'Opzioni' + slug: 'Slug' + snippet: "Snippet" + snippets: "Snippet" + status: "Stato" + # Warnings and info text: + testing: Testing + text: + layouts: + remove_warning: "Confermi la cancellazione del layout salvato?" + pages: + remove_warning: "Confermi la cancellazione delle pagine {{pages}}?" + snippets: + remove_warning: "Confermi la cancellazione dei frammenti (snippet) salvati?" + users: + remove_warning: "Vuoi cancellare per sempre l'utente sottoelencato?" + this_file_language: "Italiano" + time: + am: 'AM' + formats: + datetime: + formats: + default: "%Y-%m-%dT%H:%M:%S%Z" + default: "%a %b %d %H:%M:%S %Z %Y" + long: "%B %d, %Y %H:%M" + only_second: "%S" + short: "%d %b %H:%M" + time: "%H:%M" + timestamp: "%I:%M %p on %B %d, %Y" + pm: 'PM' + timestamp: + at: "alle" + by: "da" + last_updated: "Ultima modifica" + user: "Utente" + username: "Nome Utente" + users: "Utenti" + users_controller: + cannot_delete_self: "Non puoi rimuovere te stesso!" + version: "Versione" + view_site: "Mostra sito" + website: "Sito Web" + welcome_controller: + invalid_user: "Utente o password non validi" + logged_out: "Uscita effettuata" diff --git a/vendor/extensions/italian_language_pack/config/locales/it_available_tags.yml b/vendor/extensions/italian_language_pack/config/locales/it_available_tags.yml new file mode 100644 index 000000000..d04c5d164 --- /dev/null +++ b/vendor/extensions/italian_language_pack/config/locales/it_available_tags.yml @@ -0,0 +1,553 @@ +--- +it: + desc: + author: + Renders the name of the author of the current page. + + breadcrumb: + Renders the @breadcrumb@ attribute of the current page. + + breadcrumbs: + Renders a trail of breadcrumbs to the current page. The separator attribute + specifies the HTML fragment that is inserted between each of the breadcrumbs. By + default it is set to @>@. The boolean nolinks attribute can be specified to render + breadcrumbs in plain text, without any links (useful when generating title tag). + + *Usage:* + +
+ + children-count: + Renders the total number of children. + + children-each-child: + Page attribute tags inside of this tag refer to the current child. This is occasionally + useful if you are inside of another tag (like <r:find>) and need to refer back to the + current child. + + *Usage:* + +

+        ...
+      
+      
+ + children-each-header: + Renders the tag contents only if the contents do not match the previous header. This + is extremely useful for rendering date headers for a list of child pages. + + If you would like to use several header blocks you may use the @name@ attribute to + name the header. When a header is named it will not restart until another header of + the same name is different. + + Using the @restart@ attribute you can cause other named headers to restart when the + present header changes. Simply specify the names of the other headers in a semicolon + separated list. + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + children-each-if_first: + Renders the tag contents only if the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-if_last: + Renders the tag contents only if the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_first: + Renders the tag contents unless the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_last: + Renders the tag contents unless the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each: + Cycles through each of the children. Inside this tag all page attribute tags + are mapped to the current child page. + + *Usage:* + +

+       ...
+      
+      
+ + children-first: + Returns the first child. Inside this tag all page attribute tags are mapped to + the first child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children-last: + Returns the last child. Inside this tag all page attribute tags are mapped to + the last child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children: + Gives access to a page's children. + + *Usage:* + +
...
+ + comment: + Nothing inside a set of comment tags is rendered. + + *Usage:* + +
...
+ + content: + Renders the main content of a page. Use the @part@ attribute to select a specific + page part. By default the @part@ attribute is set to body. Use the @inherit@ + attribute to specify that if a page does not have a content part by that name that + the tag should render the parent's content part. By default @inherit@ is set to + @false@. Use the @contextual@ attribute to force a part inherited from a parent + part to be evaluated in the context of the child page. By default 'contextual' + is set to true. + + *Usage:* + +
+ + cycle: + Renders one of the passed values based on a global cycle counter. Use the @reset@ + attribute to reset the cycle to the beginning. Use the @name@ attribute to track + multiple cycles; the default is @cycle@. + + *Usage:* + +
+ + date: + Renders the date based on the current page (by default when it was published or created). + The format attribute uses the same formating codes used by the Ruby @strftime@ function. By + default it's set to @%A, %B %d, %Y@. The @for@ attribute selects which date to render. Valid + options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the + current date/time, regardless of the page. + + *Usage:* + +
+ + escape_html: + Escapes angle brackets, etc. for rendering in an HTML document. + + *Usage:* + +
...
+ + find: + Inside this tag all page related tags refer to the page found at the @url@ attribute. + @url@s may be relative or absolute paths. + + *Usage:* + +
...
+ + if_ancestor_or_self: + Renders the contained elements if the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page. + + *Usage:* + +
...
+ + if_children: + Renders the contained elements only if the current contextual page has one or + more child pages. The @status@ attribute limits the status of found child pages + to the given status, the default is @"published"@. @status="all"@ includes all + non-virtual pages regardless of status. + + *Usage:* + +
...
+ + if_content: + Renders the containing elements if all of the listed parts exist on a page. + By default the @part@ attribute is set to @body@, but you may list more than one + part by separating them with a comma. Setting the optional @inherit@ to true will + search ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + if_dev: + Renders the containing elements only if Radiant in is development mode. + + *Usage:* + +
...
+ + if_parent: + Renders the contained elements only if the current contextual page has a parent, i.e. + is not the root page. + + *Usage:* + +
...
+ + if_self: + Renders the contained elements if the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page. + + *Usage:* + +
...
+ + if_url: + Renders the containing elements only if the page's url matches the regular expression + given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the + match is case sensitive. By default, @ignore_case@ is set to true. + + *Usage:* + +
...
+ + link: + Renders a link to the page. When used as a single tag it uses the page's title + for the link name. When used as a double tag the part in between both tags will + be used as the link text. The link tag passes all attributes over to the HTML + @a@ tag. This is very useful for passing attributes like the @class@ attribute + or @id@ attribute. If the @anchor@ attribute is passed to the tag it will + append a pound sign (#) followed by the value of the attribute to + the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor. + + *Usage:* + +
+ + or + +
link text here
+ + markdown: + Filters its contents with the Markdown filter. + + *Usage:* + +
** bold text **
+ + produces + +
 bold text 
+ + meta-description: + Emits the page description field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta-keywords: + Emits the page keywords field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta: + The namespace for 'meta' attributes. If used as a singleton tag, both the description + and keywords fields will be output as <meta /> tags unless the attribute 'tag' is set to 'false'. + + *Usage:* + +
 
+       
+         
+         
+       
+      
+ + navigation-if_first: + Renders the containing elements if the element is the first + in the navigation list + + *Usage:* + +
...
+ + navigation-if_last: + Renders the containing elements if the element is the last + in the navigation list + + *Usage:* + +
...
+ + navigation: + Renders a list of links specified in the @urls@ attribute according to three + states: + + * @normal@ specifies the normal state for the link + * @here@ specifies the state of the link when the url matches the current + page's URL + * @selected@ specifies the state of the link when the current page matches + is a child of the specified url + # @if_last@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the last in the navigation elements + # @if_first@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the first in the navigation elements + + The @between@ tag specifies what should be inserted in between each of the links. + + *Usage:* + +

+        
+        
+        
+         | 
+      
+      
+ + page: + Causes the tags referring to a page's attributes to refer to the current page. + + *Usage:* + +
...
+ + parent: + Page attribute tags inside this tag refer to the parent of the current page. + + *Usage:* + +
...
+ + random: + Randomly renders one of the options specified by the @option@ tags. + + *Usage:* + +

+        ...
+        ...
+        ...
+      
+      
+ + rfc1123_date: + Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.) + + *Usage:* + +
+ + slug: + Renders the @slug@ attribute of the current page. + + smarty_pants: + Filters its contents with the SmartyPants filter. + + *Usage:* + +
"A revolutionary quotation."
+ + produces + +
“A revolutionary quotation.”
+ + snippet: + Renders the snippet specified in the @name@ attribute within the context of a page. + + *Usage:* + +
+ + When used as a double tag, the part in between both tags may be used within the + snippet itself, being substituted in place of @@. + + *Usage:* + +
Lorem ipsum dolor...
+ + status: + Prints the page's status as a string. Optional attribute 'downcase' + will cause the status to be all lowercase. + + *Usage:* + +
+ + textile: + Filters its contents with the Textile filter. + + *Usage*: + +

+      * First
+      * Second
+      
+ + produces: + +
    +
  • First
  • +
  • Second
  • +
+ + title: + Renders the @title@ attribute of the current page. + + unless_ancestor_or_self: + Renders the contained elements unless the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page. + + *Usage:* + +
...
+ + unless_children: + Renders the contained elements only if the current contextual page has no children. + The @status@ attribute limits the status of found child pages to the given status, + the default is @"published"@. @status="all"@ includes all non-virtual pages + regardless of status. + + *Usage:* + +
...
+ + unless_content: + The opposite of the @if_content@ tag. It renders the contained elements if all of the + specified parts do not exist. Setting the optional @inherit@ to true will search + ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will not render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + unless_dev: + The opposite of the @if_dev@ tag. + + *Usage:* + +
...
+ + unless_parent: + Renders the contained elements only if the current contextual page has no parent, i.e. + is the root page. + + *Usage:* + +
...
+ + unless_self: + Renders the contained elements unless the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is the current page. + + *Usage:* + +
...
+ + unless_url: + The opposite of the @if_url@ tag. + + *Usage:* + +
...
+ + url: + Renders the @url@ attribute of the current page. + + yield: + Used within a snippet as a placeholder for substitution of child content, when + the snippet is called as a double tag. + + *Usage (within a snippet):* + +

+      
+

before

+ +

after

+
+
+ + If the above snippet was named "yielding", you could call it from any Page, + Layout or Snippet as follows: + +
Content within
+ + Which would output the following: + +

+      
+

before

+ Content within +

after

+
+
+ + When called in the context of a Page or a Layout, @@ outputs nothing. + diff --git a/vendor/extensions/italian_language_pack/cucumber.yml b/vendor/extensions/italian_language_pack/cucumber.yml new file mode 100644 index 000000000..7a03ee675 --- /dev/null +++ b/vendor/extensions/italian_language_pack/cucumber.yml @@ -0,0 +1 @@ +default: --format progress features --tags ~@proposed,~@in_progress \ No newline at end of file diff --git a/vendor/extensions/italian_language_pack/features/support/env.rb b/vendor/extensions/italian_language_pack/features/support/env.rb new file mode 100644 index 000000000..f1bccdb5c --- /dev/null +++ b/vendor/extensions/italian_language_pack/features/support/env.rb @@ -0,0 +1,16 @@ +# Sets up the Rails environment for Cucumber +ENV["RAILS_ENV"] = "test" +# Extension root +extension_env = File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment') +require extension_env+'.rb' + +Dir.glob(File.join(RADIANT_ROOT, "features", "**", "*.rb")).each {|step| require step} + +Cucumber::Rails::World.class_eval do + include Dataset + datasets_directory "#{RADIANT_ROOT}/spec/datasets" + Dataset::Resolver.default = Dataset::DirectoryResolver.new("#{RADIANT_ROOT}/spec/datasets", File.dirname(__FILE__) + '/../../spec/datasets', File.dirname(__FILE__) + '/../datasets') + self.datasets_database_dump_path = "#{Rails.root}/tmp/dataset" + + # dataset :it +end \ No newline at end of file diff --git a/vendor/extensions/italian_language_pack/features/support/paths.rb b/vendor/extensions/italian_language_pack/features/support/paths.rb new file mode 100644 index 000000000..9e6762406 --- /dev/null +++ b/vendor/extensions/italian_language_pack/features/support/paths.rb @@ -0,0 +1,14 @@ +def path_to(page_name) + case page_name + + when /the homepage/i + root_path + + when /login/i + login_path + # Add more page name => path mappings here + + else + raise "Can't find mapping from \"#{page_name}\" to a path." + end +end \ No newline at end of file diff --git a/vendor/extensions/italian_language_pack/italian_language_pack_extension.rb b/vendor/extensions/italian_language_pack/italian_language_pack_extension.rb new file mode 100644 index 000000000..538b7bca5 --- /dev/null +++ b/vendor/extensions/italian_language_pack/italian_language_pack_extension.rb @@ -0,0 +1,8 @@ +class ItalianLanguagePackExtension < Radiant::Extension + version "1.0" + description "Provides an Italian translation for the Radiant admin interface" + url "http://yourwebsite.com/it" + + def activate + end +end diff --git a/vendor/extensions/italian_language_pack/lib/tasks/i18n_it_extension_tasks.rake b/vendor/extensions/italian_language_pack/lib/tasks/i18n_it_extension_tasks.rake new file mode 100644 index 000000000..12b573536 --- /dev/null +++ b/vendor/extensions/italian_language_pack/lib/tasks/i18n_it_extension_tasks.rake @@ -0,0 +1,28 @@ +namespace :radiant do + namespace :extensions do + namespace :it do + + desc "Runs the migration of the it language pack" + task :migrate => :environment do + require 'radiant/extension_migrator' + if ENV["VERSION"] + I18nItExtension.migrator.migrate(ENV["VERSION"].to_i) + else + I18nItExtension.migrator.migrate + end + end + + desc "Copies public assets of the it language pack to the instance public/ directory." + task :update => :environment do + is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) } + puts "Copying assets from I18nItExtension" + Dir[I18nItExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file| + path = file.sub(I18nItExtension.root, '') + directory = File.dirname(path) + mkdir_p RAILS_ROOT + directory, :verbose => false + cp file, RAILS_ROOT + path, :verbose => false + end + end + end + end +end diff --git a/vendor/extensions/italian_language_pack/spec/spec.opts b/vendor/extensions/italian_language_pack/spec/spec.opts new file mode 100644 index 000000000..d8c8db5d4 --- /dev/null +++ b/vendor/extensions/italian_language_pack/spec/spec.opts @@ -0,0 +1,6 @@ +--colour +--format +progress +--loadby +mtime +--reverse diff --git a/vendor/extensions/italian_language_pack/spec/spec_helper.rb b/vendor/extensions/italian_language_pack/spec/spec_helper.rb new file mode 100644 index 000000000..0adbf9f02 --- /dev/null +++ b/vendor/extensions/italian_language_pack/spec/spec_helper.rb @@ -0,0 +1,36 @@ +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require ENV["RADIANT_ENV_FILE"] + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment" + end +end +require "#{RADIANT_ROOT}/spec/spec_helper" + +Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets") + +if File.directory?(File.dirname(__FILE__) + "/matchers") + Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file } +end + +Spec::Runner.configure do |config| + # config.use_transactional_fixtures = true + # config.use_instantiated_fixtures = false + # config.fixture_path = RAILS_ROOT + '/spec/fixtures' + + # You can declare fixtures for each behaviour like this: + # describe "...." do + # fixtures :table_a, :table_b + # + # Alternatively, if you prefer to declare them only once, you can + # do so here, like so ... + # + # config.global_fixtures = :table_a, :table_b + # + # If you declare global fixtures, be aware that they will be declared + # for all of your examples, even those that don't use them. +end \ No newline at end of file diff --git a/vendor/extensions/japanese_language_pack/README b/vendor/extensions/japanese_language_pack/README new file mode 100644 index 000000000..07a844ad5 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/README @@ -0,0 +1,3 @@ += I18n Ja + +Description goes here \ No newline at end of file diff --git a/vendor/extensions/japanese_language_pack/Rakefile b/vendor/extensions/japanese_language_pack/Rakefile new file mode 100644 index 000000000..d28687e12 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/Rakefile @@ -0,0 +1,123 @@ +# I think this is the one that should be moved to the extension Rakefile template + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. + +# Determine where the RSpec plugin is by loading the boot +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot" + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot" + end +end + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' + +rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'cucumber' +require 'cucumber/rake/task' + +# Cleanup the RADIANT_ROOT constant so specs will load the environment +Object.send(:remove_const, :RADIANT_ROOT) + +extension_root = File.expand_path(File.dirname(__FILE__)) + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :features => 'spec:integration' + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the Cucumber features" + Cucumber::Rake::Task.new(:integration) do |t| + t.fork = true + t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] + # t.feature_pattern = "#{extension_root}/features/**/*.feature" + t.profile = "default" + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end +end + +desc 'Generate documentation for the ja extension.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'I18nJaExtension' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +# For extensions that are in transition +desc 'Test the ja extension.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +# Load any custom rakefiles for extension +Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f } \ No newline at end of file diff --git a/vendor/extensions/japanese_language_pack/config/locales/ja.yml b/vendor/extensions/japanese_language_pack/config/locales/ja.yml new file mode 100644 index 000000000..57280d2d5 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/config/locales/ja.yml @@ -0,0 +1,182 @@ +--- +ja: + account: 'Account' + activerecord: + errors: + messages: + blank: 必要' # required + invalid: 'フォーマットが異なります' #invalid_format + not_a_number: '数値である必要があります' # must be number + taken: '名前はすでに使用されています' # name_in_use + too_long: '制限{{count}}字' # character_limit + too_short: '{{count}}字以上' # character_minimum + models: + page: + attributes: + slug: + taken: 'スラグははすでに親の子として使用されています' # slug_in_use + user: + attributes: + email: + invalid: 'Eメールが不正です' # invalid_email + login: + taken: 'ログインはすでに使用されています' # login already in use + password: + confirmation: 'パスワードはパスワード確認と一致する必要があります' # password_confirmation + add_child: 'Add Child' + add_part: 'パーツ追加' + add_tab: 'タッブ追加' + admin: '管理者' + available_tags: '使用可能タグ' + available_tags_for: '使用可能なタグ' + body: '文体' + breadcrumb: 'Breadcrumb' + buttons: + create: '{{name}}作成' + save_and_continue: 'セーブして続く' + save_changes: 'セーブ' + cancel: '取り消す' + change: 'Change' + close: '閉める' + content: 'Content' + content_type: 'コンテンツ‑タイプ' + creating_status: 'Creating {{model}}…' + date: + abbr_day_names: [日, 月, 火, 水, 木, 金, 土] + abbr_month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月] + day_names: [日曜, 月曜, 火曜, 水曜, 木曜, 金曜, 土曜] + formats: + default: "%Y年%m月%d日" + long: "%B %e, %Y" + only_day: "%e" + short: "%e %b" + month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月] + order: [ :year, :month, :day ] + delete_layout: 'レイアウト削除' + delete_pages: '{{pages}}削除' + delete_snippet: 'スニペッツ削除' + delete_user: 'Delete User' + description: 'Description' + design: 'Design' + designer: 'Designer' + draft: '下書き' + edit_layout: 'レイアウト編集' + edit_page: 'ページ編集' + edit_snippet: 'スニペッツ編集' + edit_user: 'Edit User' + email_address: 'E-mail Address' + extension: 'エクステンション' + extensions: 'エクステンション' + filter: 'フィルター' + hidden: '隠し' + hide: 'Hide' + keywords: 'Keywords' + language: '言語' + layout: 'レイアウト' + layouts: 'レイアウト' + log_out: 'ログアウト' + logged_in_as: 'Logged in as' + login: 'ログイン' + modify: '変更' + more: '拡大' + name: '名前' + new_layout: '新規レイアウト' + new_page: '新規ページ' + new_password: 'New Password' + new_snippet: '新規スニペッツ' + new_user: 'New User' + no_pages: 'ページがない' + notes: 'ノート' + optional: 'オプション' + or: 'それとも' + page: 'ページ' + page_page: 'Page Part' + page_title: 'タイトル' + page_type: 'タイプ' + pages: 'ページ' + pages_controller: + removed_many: "ページはサイトから削除しました。" + removed_one: "ページはサイトから削除しました。" + saved: "ページをセーブしました。" + password: 'パスワード' + password_confirmation: 'パスワードの確認を入力して下さい。' + personal: 'Personal' + personal_preferences: 'Personal Preferences' + please_login: 'Please Login' + powered_by: 'Powered by' + preferences: '設定' + preferences_controller: + error_updating: '設定変更にエーラーが発生しました。' + updated: '設定変更に終了しました。' + published: '出版' + published_at: '発行日:' + reference: 'ヘルプ' + remember_me: '次回から自動的にログイン' + remove: 'Remove' + remove_layout: 'レイアウト除ける' + remove_page: 'Remove Page' + remove_pages: '{{pages}}を除ける' + remove_tab: 'タッブ°除ける' + remove_user: 'Remove user' + required: '必要' + resource_controller: + not_found: "{{humanized_model_name}} could not be found." + removed: "{{humanized_model_name}}を削除しました。." + saved: "{{humanized_model_name}}をセーブしました。" + update_conflict: "ロードした時と比べて、{{humanized_model_name}}に変更があります。セーブしたら、ほかに変更を失う可能性があります。" + validation_errors: "Validation errors occurred while processing this form. Please take a moment to review the form and correct any input errors before continuing." + reviewed: '編集中' + roles: '役目' + saving_changes: Saving Changes + saving_preferences: Saving preferences + scheduled: "Scheduled" + search_tags: 'タッグ検索:' + select: + inherit: '' + none: 'なし' + normal: '普通' + settings: 'Settings' + slug: 'Slug' + snippet: 'スニペッツ' + snippets: 'スニペッツ' + status: 'ステータス' + # Warnings and info text: + testing: Testing + text: + layouts: + remove_warning: '本当に下記のレイアウトを永久に削除してよろしいでしょうか?' + pages: + remove_warning: '本当に下記の{{pages}}を永久に削除してよろしいでしょうか?' + snippets: + remove_warning: '本当に下記のスニペッツを永久に削除してよろしいでしょうか?' + users: + remove_warning: 'Are you sure you want to permanently remove the following user?' + this_file_language: "日本語" + time: + am: '午前' + formats: + datetime: + formats: + default: "%Y-%m-%dT%H:%M:%S%Z" + default: "%a %b %d %H:%M:%S %Z %Y" + long: "%B %d, %Y %H:%M" + only_second: "%S" + short: "%d %b %H:%M" + time: "%H:%M" + timestamp: "%H:%M %p、 %Y年%m月%d日" + pm: '午後' + timestamp: + at: '日時:' + by: '変更者:' + last_updated: '最終更新日' + user: 'ユーザー' + username: 'ログイン' + users: 'ユーザー' + users_controller: + cannot_delete_self: '自分を削除できません。' + version: 'バージョン' + view_site: 'サイトを見る' + website: 'ウェブサイト' + welcome_controller: + invalid_user: 'ログインもしくはパスワードが異なります。' + logged_out: 'ログアウトしました。' diff --git a/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml b/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml new file mode 100644 index 000000000..b9b8090cc --- /dev/null +++ b/vendor/extensions/japanese_language_pack/config/locales/ja_available_tags.yml @@ -0,0 +1,553 @@ +--- +ja: + desc: + author: + Renders the name of the author of the current page. + + breadcrumb: + Renders the @breadcrumb@ attribute of the current page. + + breadcrumbs: + Renders a trail of breadcrumbs to the current page. The separator attribute + specifies the HTML fragment that is inserted between each of the breadcrumbs. By + default it is set to @>@. The boolean nolinks attribute can be specified to render + breadcrumbs in plain text, without any links (useful when generating title tag). + + *Usage:* + +
+ + children-count: + Renders the total number of children. + + children-each-child: + Page attribute tags inside of this tag refer to the current child. This is occasionally + useful if you are inside of another tag (like <r:find>) and need to refer back to the + current child. + + *Usage:* + +

+        ...
+      
+      
+ + children-each-header: + Renders the tag contents only if the contents do not match the previous header. This + is extremely useful for rendering date headers for a list of child pages. + + If you would like to use several header blocks you may use the @name@ attribute to + name the header. When a header is named it will not restart until another header of + the same name is different. + + Using the @restart@ attribute you can cause other named headers to restart when the + present header changes. Simply specify the names of the other headers in a semicolon + separated list. + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + children-each-if_first: + Renders the tag contents only if the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-if_last: + Renders the tag contents only if the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_first: + Renders the tag contents unless the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_last: + Renders the tag contents unless the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each: + Cycles through each of the children. Inside this tag all page attribute tags + are mapped to the current child page. + + *Usage:* + +

+       ...
+      
+      
+ + children-first: + Returns the first child. Inside this tag all page attribute tags are mapped to + the first child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children-last: + Returns the last child. Inside this tag all page attribute tags are mapped to + the last child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children: + Gives access to a page's children. + + *Usage:* + +
...
+ + comment: + Nothing inside a set of comment tags is rendered. + + *Usage:* + +
...
+ + content: + Renders the main content of a page. Use the @part@ attribute to select a specific + page part. By default the @part@ attribute is set to body. Use the @inherit@ + attribute to specify that if a page does not have a content part by that name that + the tag should render the parent's content part. By default @inherit@ is set to + @false@. Use the @contextual@ attribute to force a part inherited from a parent + part to be evaluated in the context of the child page. By default 'contextual' + is set to true. + + *Usage:* + +
+ + cycle: + Renders one of the passed values based on a global cycle counter. Use the @reset@ + attribute to reset the cycle to the beginning. Use the @name@ attribute to track + multiple cycles; the default is @cycle@. + + *Usage:* + +
+ + date: + Renders the date based on the current page (by default when it was published or created). + The format attribute uses the same formating codes used by the Ruby @strftime@ function. By + default it's set to @%A, %B %d, %Y@. The @for@ attribute selects which date to render. Valid + options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the + current date/time, regardless of the page. + + *Usage:* + +
+ + escape_html: + Escapes angle brackets, etc. for rendering in an HTML document. + + *Usage:* + +
...
+ + find: + Inside this tag all page related tags refer to the page found at the @url@ attribute. + @url@s may be relative or absolute paths. + + *Usage:* + +
...
+ + if_ancestor_or_self: + Renders the contained elements if the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page. + + *Usage:* + +
...
+ + if_children: + Renders the contained elements only if the current contextual page has one or + more child pages. The @status@ attribute limits the status of found child pages + to the given status, the default is @"published"@. @status="all"@ includes all + non-virtual pages regardless of status. + + *Usage:* + +
...
+ + if_content: + Renders the containing elements if all of the listed parts exist on a page. + By default the @part@ attribute is set to @body@, but you may list more than one + part by separating them with a comma. Setting the optional @inherit@ to true will + search ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + if_dev: + Renders the containing elements only if Radiant in is development mode. + + *Usage:* + +
...
+ + if_parent: + Renders the contained elements only if the current contextual page has a parent, i.e. + is not the root page. + + *Usage:* + +
...
+ + if_self: + Renders the contained elements if the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page. + + *Usage:* + +
...
+ + if_url: + Renders the containing elements only if the page's url matches the regular expression + given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the + match is case sensitive. By default, @ignore_case@ is set to true. + + *Usage:* + +
...
+ + link: + Renders a link to the page. When used as a single tag it uses the page's title + for the link name. When used as a double tag the part in between both tags will + be used as the link text. The link tag passes all attributes over to the HTML + @a@ tag. This is very useful for passing attributes like the @class@ attribute + or @id@ attribute. If the @anchor@ attribute is passed to the tag it will + append a pound sign (#) followed by the value of the attribute to + the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor. + + *Usage:* + +
+ + or + +
link text here
+ + markdown: + Filters its contents with the Markdown filter. + + *Usage:* + +
** bold text **
+ + produces + +
 bold text 
+ + meta-description: + Emits the page description field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta-keywords: + Emits the page keywords field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta: + The namespace for 'meta' attributes. If used as a singleton tag, both the description + and keywords fields will be output as <meta /> tags unless the attribute 'tag' is set to 'false'. + + *Usage:* + +
 
+       
+         
+         
+       
+      
+ + navigation-if_first: + Renders the containing elements if the element is the first + in the navigation list + + *Usage:* + +
...
+ + navigation-if_last: + Renders the containing elements if the element is the last + in the navigation list + + *Usage:* + +
...
+ + navigation: + Renders a list of links specified in the @urls@ attribute according to three + states: + + * @normal@ specifies the normal state for the link + * @here@ specifies the state of the link when the url matches the current + page's URL + * @selected@ specifies the state of the link when the current page matches + is a child of the specified url + # @if_last@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the last in the navigation elements + # @if_first@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the first in the navigation elements + + The @between@ tag specifies what should be inserted in between each of the links. + + *Usage:* + +

+        
+        
+        
+         | 
+      
+      
+ + page: + Causes the tags referring to a page's attributes to refer to the current page. + + *Usage:* + +
...
+ + parent: + Page attribute tags inside this tag refer to the parent of the current page. + + *Usage:* + +
...
+ + random: + Randomly renders one of the options specified by the @option@ tags. + + *Usage:* + +

+        ...
+        ...
+        ...
+      
+      
+ + rfc1123_date: + Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.) + + *Usage:* + +
+ + slug: + Renders the @slug@ attribute of the current page. + + smarty_pants: + Filters its contents with the SmartyPants filter. + + *Usage:* + +
"A revolutionary quotation."
+ + produces + +
“A revolutionary quotation.”
+ + snippet: + Renders the snippet specified in the @name@ attribute within the context of a page. + + *Usage:* + +
+ + When used as a double tag, the part in between both tags may be used within the + snippet itself, being substituted in place of @@. + + *Usage:* + +
Lorem ipsum dolor...
+ + status: + Prints the page's status as a string. Optional attribute 'downcase' + will cause the status to be all lowercase. + + *Usage:* + +
+ + textile: + Filters its contents with the Textile filter. + + *Usage*: + +

+      * First
+      * Second
+      
+ + produces: + +
    +
  • First
  • +
  • Second
  • +
+ + title: + Renders the @title@ attribute of the current page. + + unless_ancestor_or_self: + Renders the contained elements unless the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page. + + *Usage:* + +
...
+ + unless_children: + Renders the contained elements only if the current contextual page has no children. + The @status@ attribute limits the status of found child pages to the given status, + the default is @"published"@. @status="all"@ includes all non-virtual pages + regardless of status. + + *Usage:* + +
...
+ + unless_content: + The opposite of the @if_content@ tag. It renders the contained elements if all of the + specified parts do not exist. Setting the optional @inherit@ to true will search + ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will not render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + unless_dev: + The opposite of the @if_dev@ tag. + + *Usage:* + +
...
+ + unless_parent: + Renders the contained elements only if the current contextual page has no parent, i.e. + is the root page. + + *Usage:* + +
...
+ + unless_self: + Renders the contained elements unless the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is the current page. + + *Usage:* + +
...
+ + unless_url: + The opposite of the @if_url@ tag. + + *Usage:* + +
...
+ + url: + Renders the @url@ attribute of the current page. + + yield: + Used within a snippet as a placeholder for substitution of child content, when + the snippet is called as a double tag. + + *Usage (within a snippet):* + +

+      
+

before

+ +

after

+
+
+ + If the above snippet was named "yielding", you could call it from any Page, + Layout or Snippet as follows: + +
Content within
+ + Which would output the following: + +

+      
+

before

+ Content within +

after

+
+
+ + When called in the context of a Page or a Layout, @@ outputs nothing. + diff --git a/vendor/extensions/japanese_language_pack/cucumber.yml b/vendor/extensions/japanese_language_pack/cucumber.yml new file mode 100644 index 000000000..7a03ee675 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/cucumber.yml @@ -0,0 +1 @@ +default: --format progress features --tags ~@proposed,~@in_progress \ No newline at end of file diff --git a/vendor/extensions/japanese_language_pack/features/support/env.rb b/vendor/extensions/japanese_language_pack/features/support/env.rb new file mode 100644 index 000000000..f78c18701 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/features/support/env.rb @@ -0,0 +1,16 @@ +# Sets up the Rails environment for Cucumber +ENV["RAILS_ENV"] = "test" +# Extension root +extension_env = File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment') +require extension_env+'.rb' + +Dir.glob(File.join(RADIANT_ROOT, "features", "**", "*.rb")).each {|step| require step} + +Cucumber::Rails::World.class_eval do + include Dataset + datasets_directory "#{RADIANT_ROOT}/spec/datasets" + Dataset::Resolver.default = Dataset::DirectoryResolver.new("#{RADIANT_ROOT}/spec/datasets", File.dirname(__FILE__) + '/../../spec/datasets', File.dirname(__FILE__) + '/../datasets') + self.datasets_database_dump_path = "#{Rails.root}/tmp/dataset" + + # dataset :ja +end \ No newline at end of file diff --git a/vendor/extensions/japanese_language_pack/features/support/paths.rb b/vendor/extensions/japanese_language_pack/features/support/paths.rb new file mode 100644 index 000000000..9e6762406 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/features/support/paths.rb @@ -0,0 +1,14 @@ +def path_to(page_name) + case page_name + + when /the homepage/i + root_path + + when /login/i + login_path + # Add more page name => path mappings here + + else + raise "Can't find mapping from \"#{page_name}\" to a path." + end +end \ No newline at end of file diff --git a/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb b/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb new file mode 100644 index 000000000..6bf4e6fa8 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/japanese_language_pack_extension.rb @@ -0,0 +1,9 @@ +class JapaneseLanguagePackExtension < Radiant::Extension + version "1.0" + description "Provides Japanese translation for the Radiant admin interface" + url "http://yourwebsite.com/ja" + + def activate + + end +end diff --git a/vendor/extensions/japanese_language_pack/lib/tasks/i18n_ja_extension_tasks.rake b/vendor/extensions/japanese_language_pack/lib/tasks/i18n_ja_extension_tasks.rake new file mode 100644 index 000000000..aa5d07884 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/lib/tasks/i18n_ja_extension_tasks.rake @@ -0,0 +1,28 @@ +namespace :radiant do + namespace :extensions do + namespace :ja do + + desc "Runs the migration of the I18n Ja extension" + task :migrate => :environment do + require 'radiant/extension_migrator' + if ENV["VERSION"] + I18nJaExtension.migrator.migrate(ENV["VERSION"].to_i) + else + I18nJaExtension.migrator.migrate + end + end + + desc "Copies public assets of the I18n Ja to the instance public/ directory." + task :update => :environment do + is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) } + puts "Copying assets from I18nJaExtension" + Dir[I18nJaExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file| + path = file.sub(I18nJaExtension.root, '') + directory = File.dirname(path) + mkdir_p RAILS_ROOT + directory, :verbose => false + cp file, RAILS_ROOT + path, :verbose => false + end + end + end + end +end diff --git a/vendor/extensions/japanese_language_pack/spec/spec.opts b/vendor/extensions/japanese_language_pack/spec/spec.opts new file mode 100644 index 000000000..d8c8db5d4 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/spec/spec.opts @@ -0,0 +1,6 @@ +--colour +--format +progress +--loadby +mtime +--reverse diff --git a/vendor/extensions/japanese_language_pack/spec/spec_helper.rb b/vendor/extensions/japanese_language_pack/spec/spec_helper.rb new file mode 100644 index 000000000..0adbf9f02 --- /dev/null +++ b/vendor/extensions/japanese_language_pack/spec/spec_helper.rb @@ -0,0 +1,36 @@ +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require ENV["RADIANT_ENV_FILE"] + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment" + end +end +require "#{RADIANT_ROOT}/spec/spec_helper" + +Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets") + +if File.directory?(File.dirname(__FILE__) + "/matchers") + Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file } +end + +Spec::Runner.configure do |config| + # config.use_transactional_fixtures = true + # config.use_instantiated_fixtures = false + # config.fixture_path = RAILS_ROOT + '/spec/fixtures' + + # You can declare fixtures for each behaviour like this: + # describe "...." do + # fixtures :table_a, :table_b + # + # Alternatively, if you prefer to declare them only once, you can + # do so here, like so ... + # + # config.global_fixtures = :table_a, :table_b + # + # If you declare global fixtures, be aware that they will be declared + # for all of your examples, even those that don't use them. +end \ No newline at end of file diff --git a/vendor/extensions/russian_language_pack/README b/vendor/extensions/russian_language_pack/README new file mode 100644 index 000000000..2e5cf2fb0 --- /dev/null +++ b/vendor/extensions/russian_language_pack/README @@ -0,0 +1,3 @@ += I18n Ru + +Description goes here \ No newline at end of file diff --git a/vendor/extensions/russian_language_pack/Rakefile b/vendor/extensions/russian_language_pack/Rakefile new file mode 100644 index 000000000..8e544e7ed --- /dev/null +++ b/vendor/extensions/russian_language_pack/Rakefile @@ -0,0 +1,123 @@ +# I think this is the one that should be moved to the extension Rakefile template + +# In rails 1.2, plugins aren't available in the path until they're loaded. +# Check to see if the rspec plugin is installed first and require +# it if it is. If not, use the gem version. + +# Determine where the RSpec plugin is by loading the boot +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require File.dirname(ENV["RADIANT_ENV_FILE"]) + "/boot" + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../")}/config/boot" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../")}/config/boot" + end +end + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' + +rspec_base = File.expand_path(RADIANT_ROOT + '/vendor/plugins/rspec/lib') +$LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base) +require 'spec/rake/spectask' +require 'cucumber' +require 'cucumber/rake/task' + +# Cleanup the RADIANT_ROOT constant so specs will load the environment +Object.send(:remove_const, :RADIANT_ROOT) + +extension_root = File.expand_path(File.dirname(__FILE__)) + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :features => 'spec:integration' + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'spec', '--rails'] + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:models, :controllers, :views, :helpers].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{extension_root}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the Cucumber features" + Cucumber::Rake::Task.new(:integration) do |t| + t.fork = true + t.cucumber_opts = ['--format', (ENV['CUCUMBER_FORMAT'] || 'pretty')] + # t.feature_pattern = "#{extension_root}/features/**/*.feature" + t.profile = "default" + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) + ::STATS_DIRECTORIES << %w(View\ specs spec/views) + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) + ::STATS_DIRECTORIES << %w(Helper\ specs spec/views) + ::CodeStatistics::TEST_TYPES << "Model specs" + ::CodeStatistics::TEST_TYPES << "View specs" + ::CodeStatistics::TEST_TYPES << "Controller specs" + ::CodeStatistics::TEST_TYPES << "Helper specs" + ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/} + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y" + task :load => :environment do + require 'active_record/fixtures' + ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym) + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(RAILS_ROOT, 'spec', 'fixtures', '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures('spec/fixtures', File.basename(fixture_file, '.*')) + end + end + end + end +end + +desc 'Generate documentation for the ru extension.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'rdoc' + rdoc.title = 'I18nRuExtension' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +# For extensions that are in transition +desc 'Test the ru extension.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +# Load any custom rakefiles for extension +Dir[File.dirname(__FILE__) + '/tasks/*.rake'].sort.each { |f| require f } \ No newline at end of file diff --git a/vendor/extensions/russian_language_pack/config/locales/ru.yml b/vendor/extensions/russian_language_pack/config/locales/ru.yml new file mode 100644 index 000000000..342c529be --- /dev/null +++ b/vendor/extensions/russian_language_pack/config/locales/ru.yml @@ -0,0 +1,182 @@ + +ru: + account:Account + activerecord: + errors: + messages: + blank: 'required' # required + invalid: 'invalid format' #invalid_format + not_a_number: 'must be a number' # must be number + taken: 'name already in use' # name_in_use + too_long: '{{count}}-character limit' # character_limit + too_short: '{{count}}-character minimum' # character_minimum + models: + page: + attributes: + slug: + taken: 'slug already in use for child of parent' # slug_in_use + user: + attributes: + email: + invalid: 'invalid e-mail address' # invalid_email + login: + taken: 'login already in use' # login already in use + password: + confirmation: 'must match confirmation' # password_confirmation + add_child: 'Add Child' + add_part: 'Add Part' + add_tab: 'Add Tab' + admin: 'Administrator' + available_tags: 'Available Tags' + available_tags_for: 'Available Tags for {{name}}' + body: 'Body' + breadcrumb: 'Breadcrumb' + buttons: + create: 'Create {{name}}' + save_and_continue: 'Save and Continue Editing' + save_changes: 'Save Changes' + cancel: 'Cancel' + change: 'Change' + close: 'Close' + content: 'Content' + content_type: 'Content‑Type' + creating_status: 'Creating {{model}}…' + date: + abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat] + abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec] + day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday] + formats: + default: "%Y-%m-%d" + long: "%B %e, %Y" + only_day: "%e" + short: "%e %b" + month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December] + order: [ :year, :month, :day ] + delete_layout: 'Delete Layout' + delete_pages: 'Delete {{pages}}' + delete_snippet: 'Delete Snippet' + delete_user: 'Delete User' + description: 'Description' + design: 'Design' + designer: 'Designer' + draft: 'Draft' + edit_layout: 'Edit Layout' + edit_page: 'Edit Page' + edit_snippet: 'Edit Snippet' + edit_user: 'Edit User' + email_address: 'E-mail Address' + extension: 'Extension' + extensions: 'Extensions' + filter: 'Filter' + hidden: 'Hidden' + hide: 'Hide' + keywords: 'Keywords' + language: 'Language' + layout: 'Layout' + layouts: 'Layouts' + log_out: 'Logout' + logged_in_as: 'Logged in as' + login: 'Login' + modify: 'Modify' + more: 'More' + name: 'Name' + new_layout: 'New Layout' + new_page: 'New Page' + new_password: 'New Password' + new_snippet: 'New Snippet' + new_user: 'New User' + no_pages: 'No Pages' + notes: 'Notes' + optional: 'Optional' + or: 'or' + page: 'Page' + page_page: 'Page Part' + page_title: 'Page Title' + page_type: 'Page Type' + pages: 'Pages' + pages_controller: + removed_many: "The pages were successfully removed from the site." + removed_one: "The page was successfully removed from the site." + saved: "Your page has been saved below." + password: 'Password' + password_confirmation: 'Confirm New Password' + personal: 'Personal' + personal_preferences: 'Personal Preferences' + please_login: 'Please Login' + powered_by: 'Powered by' + preferences: 'Preferences' + preferences_controller: + error_updating: 'There was an error updating your preferences.' + updated: 'Your preferences have been updated.' + published: 'Published' + published_at: 'Published at' + reference: 'Reference' + remember_me: 'Remember me' + remove: 'Remove' + remove_layout: 'Remove Layout' + remove_page: 'Remove Page' + remove_pages: 'Remove {{pages}}' + remove_tab: 'Remove Tab' + remove_user: 'Remove user' + required: 'Required' + resource_controller: + not_found: "{{humanized_model_name}} could not be found." + removed: "{{humanized_model_name}} has been deleted." + saved: "{{humanized_model_name}} saved below." + update_conflict: "{{humanized_model_name}} has been modified since it was last loaded. Changes cannot be saved without potentially losing data." + validation_errors: "Validation errors occurred while processing this form. Please take a moment to review the form and correct any input errors before continuing." + reviewed: 'Reviewed' + roles: 'Roles' + saving_changes: Saving Changes + saving_preferences: Saving preferences + scheduled: "Scheduled" + search_tags: 'Search Tags:' + select: + inherit: '' + none: '' + normal: '' + settings: 'Settings' + slug: 'Slug' + snippet: 'Snippet' + snippets: 'Snippets' + status: 'Status' + # Warnings and info text: + testing: Testing + text: + layouts: + remove_warning: 'Are you sure you want to permanently remove the following layout?' + pages: + remove_warning: 'Are you sure you want to permanently remove the following {{pages}}?' + snippets: + remove_warning: 'Are you sure you want to permanently remove the following snippet?' + users: + remove_warning: 'Are you sure you want to permanently remove the following user?' + this_file_language: "English" + time: + am: 'am' + formats: + datetime: + formats: + default: "%Y-%m-%dT%H:%M:%S%Z" + default: "%a %b %d %H:%M:%S %Z %Y" + long: "%B %d, %Y %H:%M" + only_second: "%S" + short: "%d %b %H:%M" + time: "%H:%M" + timestamp: "%I:%M %p on %B %d, %Y" + pm: 'pm' + timestamp: + at: 'at' + by: 'by' + last_updated: 'Last Updated' + user: 'User' + username: 'Username' + users: 'Users' + users_controller: + cannot_delete_self: 'You cannot delete yourself.' + version: 'Version' + view_site: 'View Site' + website: 'Website' + welcome_controller: + invalid_user: 'Invalid username or password.' + logged_out: 'You are now logged out.' diff --git a/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml b/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml new file mode 100644 index 000000000..316876553 --- /dev/null +++ b/vendor/extensions/russian_language_pack/config/locales/ru_available_tags.yml @@ -0,0 +1,553 @@ +--- +ru: + desc: + author: + Renders the name of the author of the current page. + + breadcrumb: + Renders the @breadcrumb@ attribute of the current page. + + breadcrumbs: + Renders a trail of breadcrumbs to the current page. The separator attribute + specifies the HTML fragment that is inserted between each of the breadcrumbs. By + default it is set to @>@. The boolean nolinks attribute can be specified to render + breadcrumbs in plain text, without any links (useful when generating title tag). + + *Usage:* + +
+ + children-count: + Renders the total number of children. + + children-each-child: + Page attribute tags inside of this tag refer to the current child. This is occasionally + useful if you are inside of another tag (like <r:find>) and need to refer back to the + current child. + + *Usage:* + +

+        ...
+      
+      
+ + children-each-header: + Renders the tag contents only if the contents do not match the previous header. This + is extremely useful for rendering date headers for a list of child pages. + + If you would like to use several header blocks you may use the @name@ attribute to + name the header. When a header is named it will not restart until another header of + the same name is different. + + Using the @restart@ attribute you can cause other named headers to restart when the + present header changes. Simply specify the names of the other headers in a semicolon + separated list. + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + children-each-if_first: + Renders the tag contents only if the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-if_last: + Renders the tag contents only if the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_first: + Renders the tag contents unless the current page is the first child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each-unless_last: + Renders the tag contents unless the current page is the last child in the context of + a children:each tag + + *Usage:* + +

+        
+            ...
+        
+      
+      
+ + + children-each: + Cycles through each of the children. Inside this tag all page attribute tags + are mapped to the current child page. + + *Usage:* + +

+       ...
+      
+      
+ + children-first: + Returns the first child. Inside this tag all page attribute tags are mapped to + the first child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children-last: + Returns the last child. Inside this tag all page attribute tags are mapped to + the last child. Takes the same ordering options as @@. + + *Usage:* + +
...
+ + children: + Gives access to a page's children. + + *Usage:* + +
...
+ + comment: + Nothing inside a set of comment tags is rendered. + + *Usage:* + +
...
+ + content: + Renders the main content of a page. Use the @part@ attribute to select a specific + page part. By default the @part@ attribute is set to body. Use the @inherit@ + attribute to specify that if a page does not have a content part by that name that + the tag should render the parent's content part. By default @inherit@ is set to + @false@. Use the @contextual@ attribute to force a part inherited from a parent + part to be evaluated in the context of the child page. By default 'contextual' + is set to true. + + *Usage:* + +
+ + cycle: + Renders one of the passed values based on a global cycle counter. Use the @reset@ + attribute to reset the cycle to the beginning. Use the @name@ attribute to track + multiple cycles; the default is @cycle@. + + *Usage:* + +
+ + date: + Renders the date based on the current page (by default when it was published or created). + The format attribute uses the same formating codes used by the Ruby @strftime@ function. By + default it's set to @%A, %B %d, %Y@. The @for@ attribute selects which date to render. Valid + options are @published_at@, @created_at@, @updated_at@, and @now@. @now@ will render the + current date/time, regardless of the page. + + *Usage:* + +
+ + escape_html: + Escapes angle brackets, etc. for rendering in an HTML document. + + *Usage:* + +
...
+ + find: + Inside this tag all page related tags refer to the page found at the @url@ attribute. + @url@s may be relative or absolute paths. + + *Usage:* + +
...
+ + if_ancestor_or_self: + Renders the contained elements if the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is or descends from the current page. + + *Usage:* + +
...
+ + if_children: + Renders the contained elements only if the current contextual page has one or + more child pages. The @status@ attribute limits the status of found child pages + to the given status, the default is @"published"@. @status="all"@ includes all + non-virtual pages regardless of status. + + *Usage:* + +
...
+ + if_content: + Renders the containing elements if all of the listed parts exist on a page. + By default the @part@ attribute is set to @body@, but you may list more than one + part by separating them with a comma. Setting the optional @inherit@ to true will + search ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + if_dev: + Renders the containing elements only if Radiant in is development mode. + + *Usage:* + +
...
+ + if_parent: + Renders the contained elements only if the current contextual page has a parent, i.e. + is not the root page. + + *Usage:* + +
...
+ + if_self: + Renders the contained elements if the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up if the child element is the current page. + + *Usage:* + +
...
+ + if_url: + Renders the containing elements only if the page's url matches the regular expression + given in the @matches@ attribute. If the @ignore_case@ attribute is set to false, the + match is case sensitive. By default, @ignore_case@ is set to true. + + *Usage:* + +
...
+ + link: + Renders a link to the page. When used as a single tag it uses the page's title + for the link name. When used as a double tag the part in between both tags will + be used as the link text. The link tag passes all attributes over to the HTML + @a@ tag. This is very useful for passing attributes like the @class@ attribute + or @id@ attribute. If the @anchor@ attribute is passed to the tag it will + append a pound sign (#) followed by the value of the attribute to + the @href@ attribute of the HTML @a@ tag--effectively making an HTML anchor. + + *Usage:* + +
+ + or + +
link text here
+ + markdown: + Filters its contents with the Markdown filter. + + *Usage:* + +
** bold text **
+ + produces + +
 bold text 
+ + meta-description: + Emits the page description field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta-keywords: + Emits the page keywords field in a meta tag, unless attribute + 'tag' is set to 'false'. + + *Usage:* + +
  
+ + meta: + The namespace for 'meta' attributes. If used as a singleton tag, both the description + and keywords fields will be output as <meta /> tags unless the attribute 'tag' is set to 'false'. + + *Usage:* + +
 
+       
+         
+         
+       
+      
+ + navigation-if_first: + Renders the containing elements if the element is the first + in the navigation list + + *Usage:* + +
...
+ + navigation-if_last: + Renders the containing elements if the element is the last + in the navigation list + + *Usage:* + +
...
+ + navigation: + Renders a list of links specified in the @urls@ attribute according to three + states: + + * @normal@ specifies the normal state for the link + * @here@ specifies the state of the link when the url matches the current + page's URL + * @selected@ specifies the state of the link when the current page matches + is a child of the specified url + # @if_last@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the last in the navigation elements + # @if_first@ renders its contents within a @normal@, @here@ or + @selected@ tag if the item is the first in the navigation elements + + The @between@ tag specifies what should be inserted in between each of the links. + + *Usage:* + +

+        
+        
+        
+         | 
+      
+      
+ + page: + Causes the tags referring to a page's attributes to refer to the current page. + + *Usage:* + +
...
+ + parent: + Page attribute tags inside this tag refer to the parent of the current page. + + *Usage:* + +
...
+ + random: + Randomly renders one of the options specified by the @option@ tags. + + *Usage:* + +

+        ...
+        ...
+        ...
+      
+      
+ + rfc1123_date: + Outputs the published date using the format mandated by RFC 1123. (Ideal for RSS feeds.) + + *Usage:* + +
+ + slug: + Renders the @slug@ attribute of the current page. + + smarty_pants: + Filters its contents with the SmartyPants filter. + + *Usage:* + +
"A revolutionary quotation."
+ + produces + +
“A revolutionary quotation.”
+ + snippet: + Renders the snippet specified in the @name@ attribute within the context of a page. + + *Usage:* + +
+ + When used as a double tag, the part in between both tags may be used within the + snippet itself, being substituted in place of @@. + + *Usage:* + +
Lorem ipsum dolor...
+ + status: + Prints the page's status as a string. Optional attribute 'downcase' + will cause the status to be all lowercase. + + *Usage:* + +
+ + textile: + Filters its contents with the Textile filter. + + *Usage*: + +

+      * First
+      * Second
+      
+ + produces: + +
    +
  • First
  • +
  • Second
  • +
+ + title: + Renders the @title@ attribute of the current page. + + unless_ancestor_or_self: + Renders the contained elements unless the current contextual page is either the actual page or one of its parents. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is or descends from the current page. + + *Usage:* + +
...
+ + unless_children: + Renders the contained elements only if the current contextual page has no children. + The @status@ attribute limits the status of found child pages to the given status, + the default is @"published"@. @status="all"@ includes all non-virtual pages + regardless of status. + + *Usage:* + +
...
+ + unless_content: + The opposite of the @if_content@ tag. It renders the contained elements if all of the + specified parts do not exist. Setting the optional @inherit@ to true will search + ancestors independently for each part. By default @inherit@ is set to @false@. + + When listing more than one part, you may optionally set the @find@ attribute to @any@ + so that it will not render the containing elements if any of the listed parts are found. + By default the @find@ attribute is set to @all@. + + *Usage:* + +
...
+ + unless_dev: + The opposite of the @if_dev@ tag. + + *Usage:* + +
...
+ + unless_parent: + Renders the contained elements only if the current contextual page has no parent, i.e. + is the root page. + + *Usage:* + +
...
+ + unless_self: + Renders the contained elements unless the current contextual page is also the actual page. + + This is typically used inside another tag (like <r:children:each>) to add conditional mark-up unless the child element is the current page. + + *Usage:* + +
...
+ + unless_url: + The opposite of the @if_url@ tag. + + *Usage:* + +
...
+ + url: + Renders the @url@ attribute of the current page. + + yield: + Used within a snippet as a placeholder for substitution of child content, when + the snippet is called as a double tag. + + *Usage (within a snippet):* + +

+      
+

before

+ +

after

+
+
+ + If the above snippet was named "yielding", you could call it from any Page, + Layout or Snippet as follows: + +
Content within
+ + Which would output the following: + +

+      
+

before

+ Content within +

after

+
+
+ + When called in the context of a Page or a Layout, @@ outputs nothing. + diff --git a/vendor/extensions/russian_language_pack/cucumber.yml b/vendor/extensions/russian_language_pack/cucumber.yml new file mode 100644 index 000000000..7a03ee675 --- /dev/null +++ b/vendor/extensions/russian_language_pack/cucumber.yml @@ -0,0 +1 @@ +default: --format progress features --tags ~@proposed,~@in_progress \ No newline at end of file diff --git a/vendor/extensions/russian_language_pack/features/support/env.rb b/vendor/extensions/russian_language_pack/features/support/env.rb new file mode 100644 index 000000000..ba5859b43 --- /dev/null +++ b/vendor/extensions/russian_language_pack/features/support/env.rb @@ -0,0 +1,16 @@ +# Sets up the Rails environment for Cucumber +ENV["RAILS_ENV"] = "test" +# Extension root +extension_env = File.expand_path(File.dirname(__FILE__) + '/../../../../../config/environment') +require extension_env+'.rb' + +Dir.glob(File.join(RADIANT_ROOT, "features", "**", "*.rb")).each {|step| require step} + +Cucumber::Rails::World.class_eval do + include Dataset + datasets_directory "#{RADIANT_ROOT}/spec/datasets" + Dataset::Resolver.default = Dataset::DirectoryResolver.new("#{RADIANT_ROOT}/spec/datasets", File.dirname(__FILE__) + '/../../spec/datasets', File.dirname(__FILE__) + '/../datasets') + self.datasets_database_dump_path = "#{Rails.root}/tmp/dataset" + + # dataset :ru +end \ No newline at end of file diff --git a/vendor/extensions/russian_language_pack/features/support/paths.rb b/vendor/extensions/russian_language_pack/features/support/paths.rb new file mode 100644 index 000000000..9e6762406 --- /dev/null +++ b/vendor/extensions/russian_language_pack/features/support/paths.rb @@ -0,0 +1,14 @@ +def path_to(page_name) + case page_name + + when /the homepage/i + root_path + + when /login/i + login_path + # Add more page name => path mappings here + + else + raise "Can't find mapping from \"#{page_name}\" to a path." + end +end \ No newline at end of file diff --git a/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake b/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake new file mode 100644 index 000000000..71e22f2f4 --- /dev/null +++ b/vendor/extensions/russian_language_pack/lib/tasks/i18n_ru_extension_tasks.rake @@ -0,0 +1,28 @@ +namespace :radiant do + namespace :extensions do + namespace :ru do + + desc "Runs the migration of the I18n Ru extension" + task :migrate => :environment do + require 'radiant/extension_migrator' + if ENV["VERSION"] + I18nRuExtension.migrator.migrate(ENV["VERSION"].to_i) + else + I18nRuExtension.migrator.migrate + end + end + + desc "Copies public assets of the I18n Ru to the instance public/ directory." + task :update => :environment do + is_svn_or_dir = proc {|path| path =~ /\.svn/ || File.directory?(path) } + puts "Copying assets from I18nRuExtension" + Dir[I18nRuExtension.root + "/public/**/*"].reject(&is_svn_or_dir).each do |file| + path = file.sub(I18nRuExtension.root, '') + directory = File.dirname(path) + mkdir_p RAILS_ROOT + directory, :verbose => false + cp file, RAILS_ROOT + path, :verbose => false + end + end + end + end +end diff --git a/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb b/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb new file mode 100644 index 000000000..cc3795a55 --- /dev/null +++ b/vendor/extensions/russian_language_pack/russian_language_pack_extension.rb @@ -0,0 +1,9 @@ +class RussianLanguagePackExtension < Radiant::Extension + version "1.0" + description "Russian language pack for Radiant CMS" + url "http://yourwebsite.com/ru" + + def activate + + end +end diff --git a/vendor/extensions/russian_language_pack/spec/spec.opts b/vendor/extensions/russian_language_pack/spec/spec.opts new file mode 100644 index 000000000..d8c8db5d4 --- /dev/null +++ b/vendor/extensions/russian_language_pack/spec/spec.opts @@ -0,0 +1,6 @@ +--colour +--format +progress +--loadby +mtime +--reverse diff --git a/vendor/extensions/russian_language_pack/spec/spec_helper.rb b/vendor/extensions/russian_language_pack/spec/spec_helper.rb new file mode 100644 index 000000000..0adbf9f02 --- /dev/null +++ b/vendor/extensions/russian_language_pack/spec/spec_helper.rb @@ -0,0 +1,36 @@ +unless defined? RADIANT_ROOT + ENV["RAILS_ENV"] = "test" + case + when ENV["RADIANT_ENV_FILE"] + require ENV["RADIANT_ENV_FILE"] + when File.dirname(__FILE__) =~ %r{vendor/radiant/vendor/extensions} + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../../../")}/config/environment" + else + require "#{File.expand_path(File.dirname(__FILE__) + "/../../../../")}/config/environment" + end +end +require "#{RADIANT_ROOT}/spec/spec_helper" + +Dataset::Resolver.default << (File.dirname(__FILE__) + "/datasets") + +if File.directory?(File.dirname(__FILE__) + "/matchers") + Dir[File.dirname(__FILE__) + "/matchers/*.rb"].each {|file| require file } +end + +Spec::Runner.configure do |config| + # config.use_transactional_fixtures = true + # config.use_instantiated_fixtures = false + # config.fixture_path = RAILS_ROOT + '/spec/fixtures' + + # You can declare fixtures for each behaviour like this: + # describe "...." do + # fixtures :table_a, :table_b + # + # Alternatively, if you prefer to declare them only once, you can + # do so here, like so ... + # + # config.global_fixtures = :table_a, :table_b + # + # If you declare global fixtures, be aware that they will be declared + # for all of your examples, even those that don't use them. +end \ No newline at end of file