From 2e152735c5498fd24b0b2c4ffb670bde3fb8cdfe Mon Sep 17 00:00:00 2001 From: Matchu Date: Thu, 12 Oct 2023 22:30:16 -0700 Subject: [PATCH] Stop referencing Neopia, just do modeling inline I hope this doesn't cause problems! But yeah, with Puma doing threading, and maybe switching to Falcon someday to get even better concurrency properties, I feel like this will probably be fine? And it makes the UX a loootttt better, to be back in the world where all these forms just work, whew. --- app/assets/javascripts/outfits/new.js | 232 +++++++++++------------ app/assets/stylesheets/outfits/_new.sass | 11 +- app/controllers/outfits_controller.rb | 6 +- app/controllers/pets_controller.rb | 2 +- app/helpers/outfits_helper.rb | 19 -- app/views/outfits/new.html.haml | 64 ++----- config/locales/en-MEEP.yml | 197 ++++++++----------- config/locales/en.yml | 27 +-- config/locales/es.yml | 5 +- config/locales/pt.yml | 5 +- 10 files changed, 225 insertions(+), 343 deletions(-) diff --git a/app/assets/javascripts/outfits/new.js b/app/assets/javascripts/outfits/new.js index c1f4d813..bec8b8ed 100644 --- a/app/assets/javascripts/outfits/new.js +++ b/app/assets/javascripts/outfits/new.js @@ -1,10 +1,11 @@ -(function () { // don't need to export anything in here +(function () { + // don't need to export anything in here - var preview_el = $('#pet-preview'), - img_el = preview_el.find('img'), - response_el = preview_el.find('span'); + var preview_el = $("#pet-preview"), + img_el = preview_el.find("img"), + response_el = preview_el.find("span"); - var defaultPreviewUrl = img_el.attr('src'); + var defaultPreviewUrl = img_el.attr("src"); preview_el.click(function () { Preview.Job.current.visit(); @@ -12,25 +13,29 @@ var Preview = { clear: function () { - if(typeof Preview.Job.fallback != 'undefined') Preview.Job.fallback.setAsCurrent(); + if (typeof Preview.Job.fallback != "undefined") + Preview.Job.fallback.setAsCurrent(); }, displayLoading: function () { - preview_el.addClass('loading'); - response_el.text('Loading...'); + preview_el.addClass("loading"); + response_el.text("Loading..."); }, failed: function () { - preview_el.addClass('hidden'); + preview_el.addClass("hidden"); }, notFound: function (key, options) { Preview.failed(); response_el.empty(); - $('#preview-' + key + '-template').tmpl(options).appendTo(response_el); + $("#preview-" + key + "-template") + .tmpl(options) + .appendTo(response_el); }, updateWithName: function (name_el) { - var name = name_el.val(), job; - if(name) { + var name = name_el.val(), + job; + if (name) { currentName = name; - if(!Preview.Job.current || name != Preview.Job.current.name) { + if (!Preview.Job.current || name != Preview.Job.current.name) { job = new Preview.Job.Name(name); job.setAsCurrent(); Preview.displayLoading(); @@ -38,8 +43,8 @@ } else { Preview.clear(); } - } - } + }, + }; function loadNotable() { // TODO: add HTTPS to notables @@ -51,13 +56,13 @@ // Preview.Job.fallback.setAsCurrent(); // } // }); - if(!Preview.Job.current) { + if (!Preview.Job.current) { Preview.Job.fallback.setAsCurrent(); } } function loadFeature() { - $.getJSON('/donations/features', function(features) { + $.getJSON("/donations/features", function (features) { if (features.length > 0) { var feature = features[Math.floor(Math.random() * features.length)]; Preview.Job.fallback = new Preview.Job.Feature(feature); @@ -76,177 +81,172 @@ var job = this, quality = 2; job.loading = false; - + function getImageSrc() { - if (key.substr(0, 3) === 'a:-') { + if (key.substr(0, 3) === "a:-") { // lol lazy code for prank image :P // TODO: HTTPS? - return "http://swfimages.impress.openneo.net" + - "/biology/000/000/0-2/" + key.substr(2) + "/300x300.png"; - } else if (base === 'cp' || base === 'cpn') { - return petImage(base + '/' + key, quality); - } else if (base === 'url') { + return ( + "http://swfimages.impress.openneo.net" + + "/biology/000/000/0-2/" + + key.substr(2) + + "/300x300.png" + ); + } else if (base === "cp" || base === "cpn") { + return petImage(base + "/" + key, quality); + } else if (base === "url") { return key; } else { throw new Error("unrecognized image base " + base); } } - + function load() { job.loading = true; - img_el.attr('src', getImageSrc()); + img_el.attr("src", getImageSrc()); } - + this.increaseQualityIfPossible = function () { - if(quality == 2) { + if (quality == 2) { quality = 4; load(); } - } - + }; + this.setAsCurrent = function () { Preview.Job.current = job; load(); - } + }; - this.notFound = function() { - Preview.notFound('pet-not-found'); - } - } + this.notFound = function () { + Preview.notFound("pet-not-found"); + }; + }; Preview.Job.Name = function (name) { this.name = name; - Preview.Job.apply(this, [name, 'cpn']); + Preview.Job.apply(this, [name, "cpn"]); - this.visit = function() { - $('.main-pet-name').val(this.name).closest('form').submit(); - } - } + this.visit = function () { + $(".main-pet-name").val(this.name).closest("form").submit(); + }; + }; Preview.Job.Hash = function (hash, form) { - Preview.Job.apply(this, [hash, 'cp']); + Preview.Job.apply(this, [hash, "cp"]); - this.visit = function() { - window.location = "/wardrobe?color=" + form.find('.color').val() + "&species=" + - form.find('.species').val(); - } - } + this.visit = function () { + window.location = + "/wardrobe?color=" + + form.find(".color").val() + + "&species=" + + form.find(".species").val(); + }; + }; - Preview.Job.Feature = function(feature) { - Preview.Job.apply(this, [feature.outfit_image_url, 'url']); + Preview.Job.Feature = function (feature) { + Preview.Job.apply(this, [feature.outfit_image_url, "url"]); this.name = "Thanks for donating, " + feature.donor_name + "!"; // TODO: i18n - this.visit = function() { - window.location = '/donate'; - } + this.visit = function () { + window.location = "/donate"; + }; - this.notFound = function() { + this.notFound = function () { // The outfit thumbnail hasn't generated or is missing or something. // Let's fall back to a boring image for now. var boring = new Preview.Job.Feature({ donor_name: feature.donor_name, - outfit_image_url: defaultPreviewUrl + outfit_image_url: defaultPreviewUrl, }); boring.setAsCurrent(); - } - } - + }; + }; $(function () { var previewWithNameTimeout; - - var name_el = $('.main-pet-name'); + + var name_el = $(".main-pet-name"); name_el.val(PetQuery.name); Preview.updateWithName(name_el); - + name_el.keyup(function () { - if(previewWithNameTimeout) { + if (previewWithNameTimeout) { clearTimeout(previewWithNameTimeout); Preview.Job.current.loading = false; } var name_el = $(this); - previewWithNameTimeout = setTimeout(function() { + previewWithNameTimeout = setTimeout(function () { Preview.updateWithName(name_el); }, 250); }); - - img_el.load(function () { - if(Preview.Job.current.loading) { - Preview.Job.loading = false; - Preview.Job.current.increaseQualityIfPossible(); - preview_el.removeClass('loading').removeClass('hidden').addClass('loaded'); - response_el.text(Preview.Job.current.name); - } - }).error(function () { - if(Preview.Job.current.loading) { - Preview.Job.loading = false; - Preview.Job.current.notFound(); - } - }); - - $('.species, .color').change(function () { - var type = {}, nameComponents = {}; - var form = $(this).closest('form'); - form.find('select').each(function () { - var el = $(this), selectedEl = el.children(':selected'), key = el.attr('name'); + + img_el + .load(function () { + if (Preview.Job.current.loading) { + Preview.Job.loading = false; + Preview.Job.current.increaseQualityIfPossible(); + preview_el + .removeClass("loading") + .removeClass("hidden") + .addClass("loaded"); + response_el.text(Preview.Job.current.name); + } + }) + .error(function () { + if (Preview.Job.current.loading) { + Preview.Job.loading = false; + Preview.Job.current.notFound(); + } + }); + + $(".species, .color").change(function () { + var type = {}, + nameComponents = {}; + var form = $(this).closest("form"); + form.find("select").each(function () { + var el = $(this), + selectedEl = el.children(":selected"), + key = el.attr("name"); type[key] = selectedEl.val(); nameComponents[key] = selectedEl.text(); }); - name = nameComponents.color + ' ' + nameComponents.species; + name = nameComponents.color + " " + nameComponents.species; Preview.displayLoading(); $.ajax({ - url: '/species/' + type.species + '/color/' + type.color + '/pet_type.json', + url: + "/species/" + + type.species + + "/color/" + + type.color + + "/pet_type.json", data: { - 'for': 'image' + for: "image", }, - dataType: 'json', + dataType: "json", success: function (data) { var job; - if(data) { + if (data) { job = new Preview.Job.Hash(data.image_hash, form); job.name = name; job.setAsCurrent(); } else { - Preview.notFound('pet-type-not-found', { + Preview.notFound("pet-type-not-found", { color_name: nameComponents.color, - species_name: nameComponents.species + species_name: nameComponents.species, }); } - } + }, }); }); - - var neopiaError = document.location.search.match(/neopia%5Berror%5D=([^&]+)/); - if (neopiaError !== null) { - var message = decodeURI(neopiaError[1]).replace(/\+/g, ' '); - if (message === "pet not found") { - $('#pet-not-found').show(); - } else { - var el = $('#neopia-error'); - var text = el.text().replace('%{message}', message); - el.text(text).show(); - } - } - - $('.load-pet-to-wardrobe').submit(function(e) { - if ($(this).find('.main-pet-name').val() === "" && Preview.Job.current) { + $(".load-pet-to-wardrobe").submit(function (e) { + if ($(this).find(".main-pet-name").val() === "" && Preview.Job.current) { e.preventDefault(); Preview.Job.current.visit(); } }); - - function setNeopiaStatus(isOnline) { - $('#outfit-forms').attr('data-neopia-status', isOnline ? 'online' : 'offline'); - } - - Neopia.Status.get().then(function(r) { - setNeopiaStatus(!!r.status); - }).fail(function() { - setNeopiaStatus(false); - }); }); - $('#latest-contribution-created-at').timeago(); - + $("#latest-contribution-created-at").timeago(); })(); diff --git a/app/assets/stylesheets/outfits/_new.sass b/app/assets/stylesheets/outfits/_new.sass index d25b58ee..1f342476 100644 --- a/app/assets/stylesheets/outfits/_new.sass +++ b/app/assets/stylesheets/outfits/_new.sass @@ -35,7 +35,7 @@ body.outfits-new a color: #0a58ca - #pet-not-found, #neopia-error + #pet-not-found display: none #outfit-forms @@ -93,15 +93,6 @@ body.outfits-new font-size: 175% select font-size: 120% - [data-require-neopia-status=offline] - display: none - &[data-neopia-status=offline] - [data-require-neopia-status=online] - display: none - [data-require-neopia-status=offline] - display: block - [data-require-neopia-status=offline] .load-pet-to-wardrobe legend a - font-size: 85% #description, #top-contributors float: left #description diff --git a/app/controllers/outfits_controller.rb b/app/controllers/outfits_controller.rb index 44c35e2c..e1c2b147 100644 --- a/app/controllers/outfits_controller.rb +++ b/app/controllers/outfits_controller.rb @@ -45,10 +45,8 @@ class OutfitsController < ApplicationController end def new - unless localized_fragment_exist?("outfits#new neopia_online start_from_scratch_form pranks_funny=#{Color.pranks_funny?}") && localized_fragment_exist?("outfits#new neopia_offline start_from_scratch_form pranks_funny=#{Color.pranks_funny?}") - @colors = Color.funny.alphabetical - @species = Species.alphabetical - end + @colors = Color.funny.alphabetical + @species = Species.alphabetical newest_items = Item.newest.select([:id, :updated_at, :thumbnail_url, :rarity_index]). includes(:translations).limit(18) diff --git a/app/controllers/pets_controller.rb b/app/controllers/pets_controller.rb index a4456839..58118eca 100644 --- a/app/controllers/pets_controller.rb +++ b/app/controllers/pets_controller.rb @@ -53,7 +53,7 @@ class PetsController < ApplicationController def destination case (params[:destination] || params[:origin]) - when 'wardrobe' then wardrobe_path + '#' + when 'wardrobe' then wardrobe_path + '?' when 'needed_items' then needed_items_path + '?' else root_path + '#' end diff --git a/app/helpers/outfits_helper.rb b/app/helpers/outfits_helper.rb index 201baa76..89fdbc3d 100644 --- a/app/helpers/outfits_helper.rb +++ b/app/helpers/outfits_helper.rb @@ -50,14 +50,6 @@ module OutfitsHelper content_tag(:dd, search_query_description(base, filter_key)) end - def neopia_host - Rails.configuration.neopia_host - end - - def remote_load_pet_path - "https://#{neopia_host}/api/1/pet/customization" - end - def render_predicted_missing_species_by_color(species_by_color) key_prefix = 'outfits.new.newest_items.unmodeled.content' @@ -115,17 +107,6 @@ module OutfitsHelper text_field_tag 'name', nil, options end - def modeling_i18n_tag - localized_cache('modeling_i18n') do - modeling_i18n = { - modeledBodyTitle: t('.newest_items.modeled.body_title'), - pet: t('.newest_items.modeled.pet'), - neopetsUsernamesForm: t('.newest_items.modeled.neopets_usernames_form') - } - javascript_tag("var ModelingI18n = #{modeling_i18n.to_json};") - end - end - def prank_color_message(unfunny_human_name, artist_name, artist_url) content_key_base = Color.pranks_funny? ? 'funny' : 'unfunny' if artist_url diff --git a/app/views/outfits/new.html.haml b/app/views/outfits/new.html.haml index 5c32fa6a..8151d1ea 100644 --- a/app/views/outfits/new.html.haml +++ b/app/views/outfits/new.html.haml @@ -3,7 +3,6 @@ = advertise_campaign_progress @campaign %p#pet-not-found.alert= t 'pets.load.not_found' -%p#neopia-error.alert= t 'pets.load.neopia_error' %section.pardon-our-dust = image_tag 'pardon-our-dust/worker.png', class: 'thumbnail', @@ -23,45 +22,21 @@ %h1= t 'app_name' %h2= t '.tagline' - %div{'data-require-neopia-status' => 'online'} - = form_tag remote_load_pet_path, method: 'GET', class: 'primary load-pet-to-wardrobe' do - = hidden_field_tag 'impress_user', current_user.try(:id) - - localized_cache action_suffix: 'outfits#new neopia_online main_load_pet_form_content' do - = hidden_field_tag 'redirect', "#{wardrobe_url}\#{q}" - %fieldset - %legend= t '.neopia_online.load_pet' - = pet_name_tag class: 'main-pet-name' - %button{:type => "submit"} - = t '.submit.primary' + = form_tag load_pet_path, method: 'POST', class: 'primary load-pet-to-wardrobe' do + = hidden_field_tag 'destination', 'wardrobe' + %fieldset + %legend= t '.load_pet' + = pet_name_tag class: 'main-pet-name' + %button{:type => "submit"} + = t '.submit.primary' - - localized_cache "outfits#new neopia_online start_from_scratch_form pranks_funny=#{Color.pranks_funny?}" do - = form_tag wardrobe_path, method: 'GET', class: 'secondary start-from-scratch', authenticity_token: false do - %fieldset - %legend= t '.neopia_online.start_from_scratch' - = pet_attribute_select 'color', @colors, 8 - = pet_attribute_select 'species', @species - %button{:type => "submit"} - = t('.submit.secondary') - - %div{'data-require-neopia-status' => 'offline'} - - localized_cache "outfits#new neopia_offline start_from_scratch_form pranks_funny=#{Color.pranks_funny?}" do - = form_tag wardrobe_path, method: 'GET', class: 'primary start-from-scratch', authenticity_token: false do - %fieldset - %legend= t '.neopia_offline.start_from_scratch' - = pet_attribute_select 'color', @colors, 8 - = pet_attribute_select 'species', @species - %button{:type => "submit"} - = t('.submit.primary') - - = form_tag remote_load_pet_path, method: 'GET', class: 'secondary load-pet-to-wardrobe' do - = hidden_field_tag 'impress_user', current_user.try(:id) - - localized_cache action_suffix: 'outfits#new neopia_offline main_load_pet_form_content' do - = hidden_field_tag 'redirect', "#{wardrobe_url}\#{q}" - %fieldset - %legend= t '.neopia_offline.load_pet.main_html', link: link_to(t('.neopia_offline.load_pet.link_content'), 'http://blog.openneo.net/') - = pet_name_tag class: 'main-pet-name' - %button{:type => "submit"} - = t '.submit.secondary' + = form_tag wardrobe_path, method: 'GET', class: 'secondary start-from-scratch', authenticity_token: false do + %fieldset + %legend= t '.start_from_scratch' + = pet_attribute_select 'color', @colors, 8 + = pet_attribute_select 'species', @species + %button{:type => "submit"} + = t('.submit.secondary') %ul#sections - localized_cache :action_suffix => 'your_items_module' do @@ -95,9 +70,7 @@ %div %h4= t '.modeling_hub.tagline' %p= t '.modeling_hub.description' - = form_tag remote_load_pet_path, method: 'POST' do - = hidden_field_tag 'impress_user', current_user.try(:id) - = hidden_field_tag 'redirect', "#{root_url}\#{q}" + = form_tag load_pet_path, method: 'POST' do = pet_name_tag placeholder: t('.modeling_hub.load_pet.placeholder'), required: true = submit_tag t('.modeling_hub.load_pet.submit') @@ -110,7 +83,6 @@ #whats-new - if @newest_unmodeled_items.present? - #modeling-neopets-users{'data-usernames' => @neopets_usernames.to_json} %h3= t '.newest_items.unmodeled.header' %ul#newest-unmodeled-items - @newest_unmodeled_items.each do |item| @@ -146,10 +118,6 @@ %script#preview-pet-not-found-template{:type => 'text/x-jquery-tmpl'} = t '.preview.pet_not_found' -- content_for :meta do - %meta{name: 'neopia-host', content: neopia_host} - - content_for :javascripts do = include_javascript_libraries :jquery20, :jquery_tmpl - = modeling_i18n_tag - = javascript_include_tag 'ajax_auth', 'react', 'jquery.timeago', 'pet_query', 'modeling', 'outfits/new' \ No newline at end of file + = javascript_include_tag 'ajax_auth', 'react', 'jquery.timeago', 'pet_query', 'outfits/new' \ No newline at end of file diff --git a/config/locales/en-MEEP.yml b/config/locales/en-MEEP.yml index d0f1eabf..adda8300 100644 --- a/config/locales/en-MEEP.yml +++ b/config/locales/en-MEEP.yml @@ -5,20 +5,20 @@ en-MEEP: infinite_closet: Infinite Meepit modeling_hub: Meepiting Hub locale_name: English (meep!) - + activerecord: attributes: closet_list: name: Nameep description: Descreeption - + user: contact_neopets_connection_id: Meep Neomail to - + layouts: application: title_tagline: Preview customized Neopets' meeps and meepits - + userbar: greeting: Meep, %{user_name}! contributions_summary: @@ -29,7 +29,7 @@ en-MEEP: settings: Setteeps logout: Meep out login: Meep in - + footer: blog: Bleep source_code: Source Meep @@ -37,14 +37,13 @@ en-MEEP: contact: Meeptact suggestions: Suggesteeps email: Questions, comments, meepits - copyright: - Images © 2000–%{year} Neopets, Inc. All Rights Reserved. + copyright: Images © 2000–%{year} Neopets, Inc. All Rights Reserved. Used With Permission. Meep. - + items: title_tagline: Neopets customization meep and meepits database search: Meep - + new: title: Meep broken image explanation_html: @@ -52,36 +51,33 @@ en-MEEP: get things quite right, and sometimes that can be meeped by just meeping the conversion again. If reconversion doesn't seem to meep the meep, consider sending us a meep at %{contact_link}. Meep! - call_to_action: - Which of these meeps looked meeped? We'll put it in line for remeeping. + call_to_action: Which of these meeps looked meeped? We'll put it in line for remeeping. submit: Meep as broken converted_at_html: Conveeped %{converted_at_ago} ago reported_at_html: Repeeped %{reported_at_ago} ago - + closet_hangers: closet_hanger: submit: Submeep delete: Deleep - + create: success: owned: - in_list: - Meep! You own %{count} of the %{item_name} in the %{list_name} list. + in_list: Meep! You own %{count} of the %{item_name} in the %{list_name} list. unlisted: Meep! You own %{count} of the %{item_name}. wanted: - in_list: - Meep! You want %{count} of the %{item_name} in the %{list_name} list. + in_list: Meep! You want %{count} of the %{item_name} in the %{list_name} list. unlisted: Meep! You want %{count} of the %{item_name}. invalid: owned: "We couldn't meep how many %{item_name} you own: %{errors}" wanted: "We couldn't meep how many %{item_name} you want: %{errors}" - + destroy: success: owned: Meep! You do not own the %{item_name}. wanted: Meep! You do not want the %{item_name}. - + index: title_for: you: Your Meeps @@ -114,9 +110,8 @@ en-MEEP: add_item_html: Meep %{item_name} add_to_list_html: Meep to %{list_name} add_to_group_html: Meep to %{group_name}, no list - already_in_collection_html: - It's already meeped in %{collection_name} - + already_in_collection_html: It's already meeped in %{collection_name} + petpage: title: Export to meeppage your_items_link: Back to Your Meeps @@ -127,16 +122,15 @@ en-MEEP: have to meep. The HTML is flexible, so, if you're the artsy type, you're free to meep with the styles all you want! instructions: - main_html: - Meep the HTML from the box below, then paste it into + main_html: Meep the HTML from the box below, then paste it into %{edit_petpage_link}. Then meep to the Neoboards to show off! Have fun! edit_petpage_link_content: your meepit's page - + petpage_content: unlisted_header: (Not in a meep) footer: I meeped this list on Dreep to Impreep. You can, too! - + visibility: private: name: Preevate @@ -153,11 +147,11 @@ en-MEEP: description: items: These items will be publicly meeped for trades list: Items in this list will be publicly meeped for trades - + update_quantities: success: Successfully meeped how many of the %{item_name} you own and want. invalid: "We couldn't meep those quantities: %{errors}" - + closet_lists: closet_list: submit: Submeep @@ -171,10 +165,10 @@ en-MEEP: Are you sure you want to deleep "%{list_name}"? Even if you do, we'll remember that you want these items. empty: This meep is empty. - + edit: title: Meepiting list "%{list_name}" - + form: your_items_link: Back to Your Meeps name: @@ -184,26 +178,24 @@ en-MEEP: visibility: label: Who can meep this list? description: - hint: - Why are these meepits in the same meep? What are your terms for + hint: Why are these meepits in the same meep? What are your terms for meeping? Or you can meep this blank. - markup_hint_html: - We _support_ **Meepdown** and some HTML. + markup_hint_html: We _support_ **Meepdown** and some HTML. submit: Meep list - + groups: owned_by: - you: Meeps you own + you: Meeps you own another_user: Meeps %{user_name} owns wanted_by: you: Meeps you want another_user: Meeps %{user_name} wants - + new: title: Meep an items list - + unlisted_name: Not in a meep - + contributions: contributed_description: parents: @@ -216,21 +208,20 @@ en-MEEP: swf_asset_html: "%{item_description} on a new body meep" pet_type_html: "%{pet_type_description} for the first meep" pet_state_html: "a new meep for %{pet_type_description}" - + contribution: description_html: "%{user_link} meeped us %{contributed_description}" created_at_html: "%{created_at_ago} ameep" - + index: title: Recent Contribeeptions user_summary: "%{user_name} currently has %{user_points} meeps" - no_contributions: There are no contribeeptions here. - + no_contributions: There are no contribeeptions here. + items: index: title_with_query: Searching Infinite Meepit for "%{query}" - no_results_html: - We couldn't meep any wearables that meeped %{query_html}. + no_results_html: We couldn't meep any wearables that meeped %{query_html}. Meep! modeling_request: main_html: @@ -252,7 +243,7 @@ en-MEEP: nc: query: blue is:nc description: returns any NC Meep item with the meep "blue" in it - pb: + pb: query: collar -is:pb description: returns any item with the meep "collar" in it that isn't from a @@ -267,7 +258,7 @@ en-MEEP: header: New Meeps species_search: header: Can't decide? Meep by species - + item: nc: abbr: MC @@ -278,7 +269,7 @@ en-MEEP: wanted: abbr: Weented description: You want this meepit - + show: rarity: Meepity resources: @@ -310,18 +301,16 @@ en-MEEP: preview: header: Meepview customize_more: Customize meep - requirements_not_met: - Javascript and Flash are required to preview meepits. Meep! + requirements_not_met: Javascript and Flash are required to preview meepits. Meep! not_found: - main_html: - We've never meeped the %{item_name} on the %{color_name} + main_html: We've never meeped the %{item_name} on the %{color_name} %{species_name} before. Have you? If so, please %{modeling_link} and we'll meep our datameep instantly. Meep! modeling_link_content: meep it for us contributors: header: Meeped to you by footer: Meep! - + neopets_page_import_tasks: create: success: Page %{index} meeped! @@ -339,31 +328,28 @@ en-MEEP: updated_hangers: one: We updated the quantity for 1 of your meepits. other: We updated the quantity for %{count} of your meepits. - no_changes: - We already had this data meeped to your account, + no_changes: We already had this data meeped to your account, so we didn't meep any changes. no_data: We didn't meep any wearables, so we didn't meep any changes. unknown_items: - one: - "We also meeped an item we didn't recognize: %{item_names}. Please + one: "We also meeped an item we didn't recognize: %{item_names}. Please meep it for us and we'll update our database instantly. Thanks!" other: "We also meeped %{count} items we didn't recognize: %{item_names}. Please meep them for us and we'll update our database instantly. Thanks!" - next_page: - Now the frame should contain page %{next_index}. + next_page: Now the frame should contain page %{next_index}. Meep that source code over, too. done: That was the last meepit of your Neopets %{name}. parse_error: We had trouble meeping your source code. Is it a valid HTML document? Make sure you meeped the computery-looking result of clicking View Frame Source, and not the pretty-looking page itself. - + names: closet: meepit safety_deposit: safety demeepit - + new: title: Meeport from %{name}, Page %{index} your_items_link: Back to Your Meeps @@ -372,14 +358,12 @@ en-MEEP: submit: Meep items help: welcome: Welcome to the bulk %{name} meeporter! - intro: - We're going to meep it as easy as possible to meeport your + intro: We're going to meep it as easy as possible to meeport your Neopets.com %{name} data into your Dress to Impress meepit list. Here's how it meeps. check_frame: header: - main_html: - Check the framed Neopets.com meep on the left, + main_html: Check the framed Neopets.com meep on the left, meeping to %{page_link}. page_link_content: meep %{index} of your %{name} check_login: @@ -397,8 +381,7 @@ en-MEEP: It's never a good idea to meep in inside of a frame, unless you're a web programmer pro who can meep that the frame does, in fact, meep to Neopets.com. To be safe, %{login_link}. - login_link_content: - meep up another window, meep the URL, and meep in safely + login_link_content: meep up another window, meep the URL, and meep in safely check_content: summary: Meep that the page is, in fact, your %{name}. details: @@ -414,16 +397,14 @@ en-MEEP: In Firefox, right-meep the frame, choose This Frame, then View Frame Source. - other_html: - In other meepits, right-meep and look for something similar. + other_html: In other meepits, right-meep and look for something similar. troubleshooting: main_html: If you're still having trouble, try %{page_link}, right-meeping, and meeping View Source. page_link_content: meeping the page in a new window copy_source: - header: - Meeplight the entire source code, + header: Meeplight the entire source code, and meepy-paste it into the box on the right. shortcuts: "Some meepy shortcuts: Ctrl-A to select all the text, Ctrl-C to @@ -435,19 +416,16 @@ en-MEEP: and quantity of meepits in your %{name}, and add that to your Dress to Impress meepit list. I meep that it's all safe, but, if you're concerned, find a meepit and meep out the source code to be sure. - + neopets_users: create: success: - zero: - Okay. We meeped %{user_name}'s pets, but already had these items + zero: Okay. We meeped %{user_name}'s pets, but already had these items meeped to your account. - one: - Success! We meeped %{user_name}'s pets, and meeped 1 item. - other: - Success! We meeped %{user_name}'s pets, and meeped %{count} items. + one: Success! We meeped %{user_name}'s pets, and meeped 1 item. + other: Success! We meeped %{user_name}'s pets, and meeped %{count} items. not_found: Could not meep user %{user_name}. Is it meeped correctly? - + new: title: Meemport from pets your_items_link: Back to Your Meeps @@ -456,11 +434,11 @@ en-MEEP: from all your pets. It's meepy! username_label: Meopets Username submit: Meemport all pets - + outfits: destroy: success: Outfit "%{outfit_name}" succeessfully demeeped. - + edit: item: controls: @@ -471,8 +449,7 @@ en-MEEP: add: Closeet remove: Uncloseet pet_type: - not_found: - We haven't meeped that combination before. Have you? + not_found: We haven't meeped that combination before. Have you? Meep the pet's name if you have! form: submit: Meep @@ -493,8 +470,7 @@ en-MEEP: submit: Meep cancel: Unmeep preview: - requirements: - Flash and Javascript (but not Java!) are required to meep outfeets. + requirements: Flash and Javascript (but not Java!) are required to meep outfeets. big_picture: Big Meepit download: Downmeep mode: @@ -527,11 +503,11 @@ en-MEEP: We know how hard it can be to meep track of your ideas, especially if you end up having a lot of them. **But Dress to Impress makes it meepy.** - + Once you have an idea for an outfit, you can **meep it, meep it, and meep it again later**, either to update your design or finally make your dream a reality. - + **Thousands of users have already meeped tens of thousands of outfits. Will you be next?** sign_in: Log in to meep this outfit @@ -589,23 +565,19 @@ en-MEEP: login: Meep in to use these filters. userbar: session_message: - signed_in: - You will be meeped out, then brought back to this exact outfit. - not_signed_in: - You will be meeped in, then brought back to this exact outfit. - + signed_in: You will be meeped out, then brought back to this exact outfit. + not_signed_in: You will be meeped in, then brought back to this exact outfit. + new: tagline: Meeps made meepy! preview: - pet_type_not_found: - We haven't meeped a %{color_name} %{species_name}. Meep? + pet_type_not_found: We haven't meeped a %{color_name} %{species_name}. Meep? pet_not_found: Pet not meeped. submit: primary: Meep my outfit! secondary: Meep - neopia_online: - load_pet: Enter your pet's meep - start_from_scratch: Or meep from scratch + load_pet: Enter your pet's meep + start_from_scratch: Or meep from scratch your_items: tagline: Meep and meep! description: @@ -630,8 +602,7 @@ en-MEEP: submit: meep latest_contribution: header: Contribumeeps - description_html: - "%{user_link} meeped us %{contributed_description}. + description_html: "%{user_link} meeped us %{contributed_description}. Meep, %{user_link}!" blog: link: OpenNeo Meep @@ -644,9 +615,9 @@ en-MEEP: other: Or meepy the %{color} %{species_list}? call_to_action: If so, please meep it above! Meep! species_list: - words_connector: '! ' - two_words_connector: ' meep ' - last_word_connector: '! meep ' + words_connector: "! " + two_words_connector: " meep " + last_word_connector: "! meep " modeled: header: These items have already been meeped—meep for your help! body_title: You just finished meeping this—meep so much! @@ -660,22 +631,20 @@ en-MEEP: error: Couldn't load. Meep again? title: Meep %{pet} as a model, especially if they're meeping the %{item}! pet_query: - notice_html: - Thanks for meeping us %{pet_name}. + notice_html: Thanks for meeping us %{pet_name}. Meep up the good work! - + outfit: edit: eedit delete: demeep - delete_confirmation: - Are you sure you want to demeep the outfit %{outfit_name}? - + delete_confirmation: Are you sure you want to demeep the outfit %{outfit_name}? + show: default_outfit_name: Meeped outfit edit: Meep clone: Meep a copy creation_summary_html: Meeped by %{user_link}, %{created_at_ago} ago - + pet_states: description: main: "%{gender} %{mood}" @@ -689,7 +658,7 @@ en-MEEP: glitched: "#!@?!?" unconverted: Unconveeped unlabeled: Unleeped - + pets: bulk: needed_items: @@ -713,7 +682,7 @@ en-MEEP: waiting: Weeting… loading: Leeding… submission_success: "%{points} peeps" - + load: not_found: We couldn't meep a pet by that name. Is it meeped correctly? asset_download_error: @@ -722,17 +691,17 @@ en-MEEP: pet_download_error: We couldn't meep to Neopets to meep up the pet. Maybe they're down. Please try meep later! - + users: index: not_found: We don't have a meepit named %{name}. Is it meeped correctly? - + top_contributors: title: Top Conmeeputors rank: Reep user: Meepit points: Peeps - + update: success: Settings successfully meeped. invalid: "Could not meep settings: %{errors}" diff --git a/config/locales/en.yml b/config/locales/en.yml index d1a19017..fdf77de0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -663,20 +663,8 @@ en: submit: primary: Plan my outfit! secondary: Go - neopia_online: - load_pet: Enter your pet's name - start_from_scratch: Or start from scratch - neopia_offline: - start_from_scratch: Choose a pet to get started - load_pet: - main_html: Or try your pet's name %{link} - link_content: (but it looks like Neopets.com is ignoring us) - load_pet: - legend: Enter your pet's name - submit: Plan my outfit! - start_from_scratch: - legend: Or start from scratch - submit: Go + load_pet: Enter your pet's name + start_from_scratch: Or start from scratch your_items: tagline: Track and trade! description: Make lists of the items you own and want, @@ -718,16 +706,6 @@ en: last_word_connector: ", or " modeled: header: These items have already been modeled—thanks for your help! - body_title: You just finished modeling this—thanks so much! - neopets_usernames_form: - label: neopets username - submit: add - pet: - status: - success: Thanks! <3 - unworn: Not wearing this item. - error: Couldn't load. Try again? - title: Submit %{pet} as a model, especially if they're wearing the %{item}! pet_query: notice_html: Thanks for showing us %{pet_name}. Keep up the good work! @@ -797,7 +775,6 @@ en: pet_download_error: We couldn't connect to Neopets to look up the pet. Maybe they're down. Please try again later! - neopia_error: 'We couldn''t load that pet: "%{message}". Try again later?' swf_assets: links: diff --git a/config/locales/es.yml b/config/locales/es.yml index f9d3d104..56d7d4f0 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -468,9 +468,8 @@ es: submit: primary: ¡Diseñar mi atuendo! secondary: Ir - neopia_online: - load_pet: Escribe el nombre de tu pet - start_from_scratch: O empieza a partir de una plantilla + load_pet: Escribe el nombre de tu pet + start_from_scratch: O empieza a partir de una plantilla your_items: tagline: ¡Añade e intercambia! description: Crea listas de los objetos que tú tienes y quieres. ¡Compártelas con el mundo! diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 3416f8a5..71157a28 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -466,9 +466,8 @@ pt: submit: primary: Planeje minha roupa! secondary: Vai - neopia_online: - load_pet: Digite o nome do seu pet - start_from_scratch: Ou comece do zero + load_pet: Digite o nome do seu pet + start_from_scratch: Ou comece do zero your_items: tagline: Acompanhe e troque! description: Faça listas de itens que você tem e que procura, e compartilhe com o mundo.