forked from OpenNeo/impress
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.
This commit is contained in:
parent
e00ee08ae7
commit
2e152735c5
10 changed files with 225 additions and 343 deletions
|
@ -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'),
|
var preview_el = $("#pet-preview"),
|
||||||
img_el = preview_el.find('img'),
|
img_el = preview_el.find("img"),
|
||||||
response_el = preview_el.find('span');
|
response_el = preview_el.find("span");
|
||||||
|
|
||||||
var defaultPreviewUrl = img_el.attr('src');
|
var defaultPreviewUrl = img_el.attr("src");
|
||||||
|
|
||||||
preview_el.click(function () {
|
preview_el.click(function () {
|
||||||
Preview.Job.current.visit();
|
Preview.Job.current.visit();
|
||||||
|
@ -12,25 +13,29 @@
|
||||||
|
|
||||||
var Preview = {
|
var Preview = {
|
||||||
clear: function () {
|
clear: function () {
|
||||||
if(typeof Preview.Job.fallback != 'undefined') Preview.Job.fallback.setAsCurrent();
|
if (typeof Preview.Job.fallback != "undefined")
|
||||||
|
Preview.Job.fallback.setAsCurrent();
|
||||||
},
|
},
|
||||||
displayLoading: function () {
|
displayLoading: function () {
|
||||||
preview_el.addClass('loading');
|
preview_el.addClass("loading");
|
||||||
response_el.text('Loading...');
|
response_el.text("Loading...");
|
||||||
},
|
},
|
||||||
failed: function () {
|
failed: function () {
|
||||||
preview_el.addClass('hidden');
|
preview_el.addClass("hidden");
|
||||||
},
|
},
|
||||||
notFound: function (key, options) {
|
notFound: function (key, options) {
|
||||||
Preview.failed();
|
Preview.failed();
|
||||||
response_el.empty();
|
response_el.empty();
|
||||||
$('#preview-' + key + '-template').tmpl(options).appendTo(response_el);
|
$("#preview-" + key + "-template")
|
||||||
|
.tmpl(options)
|
||||||
|
.appendTo(response_el);
|
||||||
},
|
},
|
||||||
updateWithName: function (name_el) {
|
updateWithName: function (name_el) {
|
||||||
var name = name_el.val(), job;
|
var name = name_el.val(),
|
||||||
if(name) {
|
job;
|
||||||
|
if (name) {
|
||||||
currentName = 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 = new Preview.Job.Name(name);
|
||||||
job.setAsCurrent();
|
job.setAsCurrent();
|
||||||
Preview.displayLoading();
|
Preview.displayLoading();
|
||||||
|
@ -38,8 +43,8 @@
|
||||||
} else {
|
} else {
|
||||||
Preview.clear();
|
Preview.clear();
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
function loadNotable() {
|
function loadNotable() {
|
||||||
// TODO: add HTTPS to notables
|
// TODO: add HTTPS to notables
|
||||||
|
@ -51,13 +56,13 @@
|
||||||
// Preview.Job.fallback.setAsCurrent();
|
// Preview.Job.fallback.setAsCurrent();
|
||||||
// }
|
// }
|
||||||
// });
|
// });
|
||||||
if(!Preview.Job.current) {
|
if (!Preview.Job.current) {
|
||||||
Preview.Job.fallback.setAsCurrent();
|
Preview.Job.fallback.setAsCurrent();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadFeature() {
|
function loadFeature() {
|
||||||
$.getJSON('/donations/features', function(features) {
|
$.getJSON("/donations/features", function (features) {
|
||||||
if (features.length > 0) {
|
if (features.length > 0) {
|
||||||
var feature = features[Math.floor(Math.random() * features.length)];
|
var feature = features[Math.floor(Math.random() * features.length)];
|
||||||
Preview.Job.fallback = new Preview.Job.Feature(feature);
|
Preview.Job.fallback = new Preview.Job.Feature(feature);
|
||||||
|
@ -78,14 +83,18 @@
|
||||||
job.loading = false;
|
job.loading = false;
|
||||||
|
|
||||||
function getImageSrc() {
|
function getImageSrc() {
|
||||||
if (key.substr(0, 3) === 'a:-') {
|
if (key.substr(0, 3) === "a:-") {
|
||||||
// lol lazy code for prank image :P
|
// lol lazy code for prank image :P
|
||||||
// TODO: HTTPS?
|
// TODO: HTTPS?
|
||||||
return "http://swfimages.impress.openneo.net" +
|
return (
|
||||||
"/biology/000/000/0-2/" + key.substr(2) + "/300x300.png";
|
"http://swfimages.impress.openneo.net" +
|
||||||
} else if (base === 'cp' || base === 'cpn') {
|
"/biology/000/000/0-2/" +
|
||||||
return petImage(base + '/' + key, quality);
|
key.substr(2) +
|
||||||
} else if (base === 'url') {
|
"/300x300.png"
|
||||||
|
);
|
||||||
|
} else if (base === "cp" || base === "cpn") {
|
||||||
|
return petImage(base + "/" + key, quality);
|
||||||
|
} else if (base === "url") {
|
||||||
return key;
|
return key;
|
||||||
} else {
|
} else {
|
||||||
throw new Error("unrecognized image base " + base);
|
throw new Error("unrecognized image base " + base);
|
||||||
|
@ -94,159 +103,150 @@
|
||||||
|
|
||||||
function load() {
|
function load() {
|
||||||
job.loading = true;
|
job.loading = true;
|
||||||
img_el.attr('src', getImageSrc());
|
img_el.attr("src", getImageSrc());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.increaseQualityIfPossible = function () {
|
this.increaseQualityIfPossible = function () {
|
||||||
if(quality == 2) {
|
if (quality == 2) {
|
||||||
quality = 4;
|
quality = 4;
|
||||||
load();
|
load();
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
this.setAsCurrent = function () {
|
this.setAsCurrent = function () {
|
||||||
Preview.Job.current = job;
|
Preview.Job.current = job;
|
||||||
load();
|
load();
|
||||||
}
|
};
|
||||||
|
|
||||||
this.notFound = function() {
|
this.notFound = function () {
|
||||||
Preview.notFound('pet-not-found');
|
Preview.notFound("pet-not-found");
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
Preview.Job.Name = function (name) {
|
Preview.Job.Name = function (name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
Preview.Job.apply(this, [name, 'cpn']);
|
Preview.Job.apply(this, [name, "cpn"]);
|
||||||
|
|
||||||
this.visit = function() {
|
this.visit = function () {
|
||||||
$('.main-pet-name').val(this.name).closest('form').submit();
|
$(".main-pet-name").val(this.name).closest("form").submit();
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
Preview.Job.Hash = function (hash, form) {
|
Preview.Job.Hash = function (hash, form) {
|
||||||
Preview.Job.apply(this, [hash, 'cp']);
|
Preview.Job.apply(this, [hash, "cp"]);
|
||||||
|
|
||||||
this.visit = function() {
|
this.visit = function () {
|
||||||
window.location = "/wardrobe?color=" + form.find('.color').val() + "&species=" +
|
window.location =
|
||||||
form.find('.species').val();
|
"/wardrobe?color=" +
|
||||||
}
|
form.find(".color").val() +
|
||||||
}
|
"&species=" +
|
||||||
|
form.find(".species").val();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
Preview.Job.Feature = function(feature) {
|
Preview.Job.Feature = function (feature) {
|
||||||
Preview.Job.apply(this, [feature.outfit_image_url, 'url']);
|
Preview.Job.apply(this, [feature.outfit_image_url, "url"]);
|
||||||
this.name = "Thanks for donating, " + feature.donor_name + "!"; // TODO: i18n
|
this.name = "Thanks for donating, " + feature.donor_name + "!"; // TODO: i18n
|
||||||
|
|
||||||
this.visit = function() {
|
this.visit = function () {
|
||||||
window.location = '/donate';
|
window.location = "/donate";
|
||||||
}
|
};
|
||||||
|
|
||||||
this.notFound = function() {
|
this.notFound = function () {
|
||||||
// The outfit thumbnail hasn't generated or is missing or something.
|
// The outfit thumbnail hasn't generated or is missing or something.
|
||||||
// Let's fall back to a boring image for now.
|
// Let's fall back to a boring image for now.
|
||||||
var boring = new Preview.Job.Feature({
|
var boring = new Preview.Job.Feature({
|
||||||
donor_name: feature.donor_name,
|
donor_name: feature.donor_name,
|
||||||
outfit_image_url: defaultPreviewUrl
|
outfit_image_url: defaultPreviewUrl,
|
||||||
});
|
});
|
||||||
boring.setAsCurrent();
|
boring.setAsCurrent();
|
||||||
}
|
};
|
||||||
}
|
};
|
||||||
|
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
var previewWithNameTimeout;
|
var previewWithNameTimeout;
|
||||||
|
|
||||||
var name_el = $('.main-pet-name');
|
var name_el = $(".main-pet-name");
|
||||||
name_el.val(PetQuery.name);
|
name_el.val(PetQuery.name);
|
||||||
Preview.updateWithName(name_el);
|
Preview.updateWithName(name_el);
|
||||||
|
|
||||||
name_el.keyup(function () {
|
name_el.keyup(function () {
|
||||||
if(previewWithNameTimeout) {
|
if (previewWithNameTimeout) {
|
||||||
clearTimeout(previewWithNameTimeout);
|
clearTimeout(previewWithNameTimeout);
|
||||||
Preview.Job.current.loading = false;
|
Preview.Job.current.loading = false;
|
||||||
}
|
}
|
||||||
var name_el = $(this);
|
var name_el = $(this);
|
||||||
previewWithNameTimeout = setTimeout(function() {
|
previewWithNameTimeout = setTimeout(function () {
|
||||||
Preview.updateWithName(name_el);
|
Preview.updateWithName(name_el);
|
||||||
}, 250);
|
}, 250);
|
||||||
});
|
});
|
||||||
|
|
||||||
img_el.load(function () {
|
img_el
|
||||||
if(Preview.Job.current.loading) {
|
.load(function () {
|
||||||
Preview.Job.loading = false;
|
if (Preview.Job.current.loading) {
|
||||||
Preview.Job.current.increaseQualityIfPossible();
|
Preview.Job.loading = false;
|
||||||
preview_el.removeClass('loading').removeClass('hidden').addClass('loaded');
|
Preview.Job.current.increaseQualityIfPossible();
|
||||||
response_el.text(Preview.Job.current.name);
|
preview_el
|
||||||
}
|
.removeClass("loading")
|
||||||
}).error(function () {
|
.removeClass("hidden")
|
||||||
if(Preview.Job.current.loading) {
|
.addClass("loaded");
|
||||||
Preview.Job.loading = false;
|
response_el.text(Preview.Job.current.name);
|
||||||
Preview.Job.current.notFound();
|
}
|
||||||
}
|
})
|
||||||
});
|
.error(function () {
|
||||||
|
if (Preview.Job.current.loading) {
|
||||||
|
Preview.Job.loading = false;
|
||||||
|
Preview.Job.current.notFound();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$('.species, .color').change(function () {
|
$(".species, .color").change(function () {
|
||||||
var type = {}, nameComponents = {};
|
var type = {},
|
||||||
var form = $(this).closest('form');
|
nameComponents = {};
|
||||||
form.find('select').each(function () {
|
var form = $(this).closest("form");
|
||||||
var el = $(this), selectedEl = el.children(':selected'), key = el.attr('name');
|
form.find("select").each(function () {
|
||||||
|
var el = $(this),
|
||||||
|
selectedEl = el.children(":selected"),
|
||||||
|
key = el.attr("name");
|
||||||
type[key] = selectedEl.val();
|
type[key] = selectedEl.val();
|
||||||
nameComponents[key] = selectedEl.text();
|
nameComponents[key] = selectedEl.text();
|
||||||
});
|
});
|
||||||
name = nameComponents.color + ' ' + nameComponents.species;
|
name = nameComponents.color + " " + nameComponents.species;
|
||||||
Preview.displayLoading();
|
Preview.displayLoading();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/species/' + type.species + '/color/' + type.color + '/pet_type.json',
|
url:
|
||||||
|
"/species/" +
|
||||||
|
type.species +
|
||||||
|
"/color/" +
|
||||||
|
type.color +
|
||||||
|
"/pet_type.json",
|
||||||
data: {
|
data: {
|
||||||
'for': 'image'
|
for: "image",
|
||||||
},
|
},
|
||||||
dataType: 'json',
|
dataType: "json",
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
var job;
|
var job;
|
||||||
if(data) {
|
if (data) {
|
||||||
job = new Preview.Job.Hash(data.image_hash, form);
|
job = new Preview.Job.Hash(data.image_hash, form);
|
||||||
job.name = name;
|
job.name = name;
|
||||||
job.setAsCurrent();
|
job.setAsCurrent();
|
||||||
} else {
|
} else {
|
||||||
Preview.notFound('pet-type-not-found', {
|
Preview.notFound("pet-type-not-found", {
|
||||||
color_name: nameComponents.color,
|
color_name: nameComponents.color,
|
||||||
species_name: nameComponents.species
|
species_name: nameComponents.species,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(".load-pet-to-wardrobe").submit(function (e) {
|
||||||
var neopiaError = document.location.search.match(/neopia%5Berror%5D=([^&]+)/);
|
if ($(this).find(".main-pet-name").val() === "" && Preview.Job.current) {
|
||||||
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) {
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
Preview.Job.current.visit();
|
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();
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -35,7 +35,7 @@ body.outfits-new
|
||||||
a
|
a
|
||||||
color: #0a58ca
|
color: #0a58ca
|
||||||
|
|
||||||
#pet-not-found, #neopia-error
|
#pet-not-found
|
||||||
display: none
|
display: none
|
||||||
|
|
||||||
#outfit-forms
|
#outfit-forms
|
||||||
|
@ -93,15 +93,6 @@ body.outfits-new
|
||||||
font-size: 175%
|
font-size: 175%
|
||||||
select
|
select
|
||||||
font-size: 120%
|
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
|
#description, #top-contributors
|
||||||
float: left
|
float: left
|
||||||
#description
|
#description
|
||||||
|
|
|
@ -45,10 +45,8 @@ class OutfitsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
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
|
||||||
@colors = Color.funny.alphabetical
|
@species = Species.alphabetical
|
||||||
@species = Species.alphabetical
|
|
||||||
end
|
|
||||||
|
|
||||||
newest_items = Item.newest.select([:id, :updated_at, :thumbnail_url, :rarity_index]).
|
newest_items = Item.newest.select([:id, :updated_at, :thumbnail_url, :rarity_index]).
|
||||||
includes(:translations).limit(18)
|
includes(:translations).limit(18)
|
||||||
|
|
|
@ -53,7 +53,7 @@ class PetsController < ApplicationController
|
||||||
|
|
||||||
def destination
|
def destination
|
||||||
case (params[:destination] || params[:origin])
|
case (params[:destination] || params[:origin])
|
||||||
when 'wardrobe' then wardrobe_path + '#'
|
when 'wardrobe' then wardrobe_path + '?'
|
||||||
when 'needed_items' then needed_items_path + '?'
|
when 'needed_items' then needed_items_path + '?'
|
||||||
else root_path + '#'
|
else root_path + '#'
|
||||||
end
|
end
|
||||||
|
|
|
@ -50,14 +50,6 @@ module OutfitsHelper
|
||||||
content_tag(:dd, search_query_description(base, filter_key))
|
content_tag(:dd, search_query_description(base, filter_key))
|
||||||
end
|
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)
|
def render_predicted_missing_species_by_color(species_by_color)
|
||||||
key_prefix = 'outfits.new.newest_items.unmodeled.content'
|
key_prefix = 'outfits.new.newest_items.unmodeled.content'
|
||||||
|
|
||||||
|
@ -115,17 +107,6 @@ module OutfitsHelper
|
||||||
text_field_tag 'name', nil, options
|
text_field_tag 'name', nil, options
|
||||||
end
|
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)
|
def prank_color_message(unfunny_human_name, artist_name, artist_url)
|
||||||
content_key_base = Color.pranks_funny? ? 'funny' : 'unfunny'
|
content_key_base = Color.pranks_funny? ? 'funny' : 'unfunny'
|
||||||
if artist_url
|
if artist_url
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
= advertise_campaign_progress @campaign
|
= advertise_campaign_progress @campaign
|
||||||
|
|
||||||
%p#pet-not-found.alert= t 'pets.load.not_found'
|
%p#pet-not-found.alert= t 'pets.load.not_found'
|
||||||
%p#neopia-error.alert= t 'pets.load.neopia_error'
|
|
||||||
|
|
||||||
%section.pardon-our-dust
|
%section.pardon-our-dust
|
||||||
= image_tag 'pardon-our-dust/worker.png', class: 'thumbnail',
|
= image_tag 'pardon-our-dust/worker.png', class: 'thumbnail',
|
||||||
|
@ -23,45 +22,21 @@
|
||||||
%h1= t 'app_name'
|
%h1= t 'app_name'
|
||||||
%h2= t '.tagline'
|
%h2= t '.tagline'
|
||||||
|
|
||||||
%div{'data-require-neopia-status' => 'online'}
|
= form_tag load_pet_path, method: 'POST', class: 'primary load-pet-to-wardrobe' do
|
||||||
= form_tag remote_load_pet_path, method: 'GET', class: 'primary load-pet-to-wardrobe' do
|
= hidden_field_tag 'destination', 'wardrobe'
|
||||||
= hidden_field_tag 'impress_user', current_user.try(:id)
|
%fieldset
|
||||||
- localized_cache action_suffix: 'outfits#new neopia_online main_load_pet_form_content' do
|
%legend= t '.load_pet'
|
||||||
= hidden_field_tag 'redirect', "#{wardrobe_url}\#{q}"
|
= pet_name_tag class: 'main-pet-name'
|
||||||
%fieldset
|
%button{:type => "submit"}
|
||||||
%legend= t '.neopia_online.load_pet'
|
= t '.submit.primary'
|
||||||
= 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
|
||||||
= form_tag wardrobe_path, method: 'GET', class: 'secondary start-from-scratch', authenticity_token: false do
|
%fieldset
|
||||||
%fieldset
|
%legend= t '.start_from_scratch'
|
||||||
%legend= t '.neopia_online.start_from_scratch'
|
= pet_attribute_select 'color', @colors, 8
|
||||||
= pet_attribute_select 'color', @colors, 8
|
= pet_attribute_select 'species', @species
|
||||||
= pet_attribute_select 'species', @species
|
%button{:type => "submit"}
|
||||||
%button{:type => "submit"}
|
= t('.submit.secondary')
|
||||||
= 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'
|
|
||||||
|
|
||||||
%ul#sections
|
%ul#sections
|
||||||
- localized_cache :action_suffix => 'your_items_module' do
|
- localized_cache :action_suffix => 'your_items_module' do
|
||||||
|
@ -95,9 +70,7 @@
|
||||||
%div
|
%div
|
||||||
%h4= t '.modeling_hub.tagline'
|
%h4= t '.modeling_hub.tagline'
|
||||||
%p= t '.modeling_hub.description'
|
%p= t '.modeling_hub.description'
|
||||||
= form_tag remote_load_pet_path, method: 'POST' do
|
= form_tag load_pet_path, method: 'POST' do
|
||||||
= hidden_field_tag 'impress_user', current_user.try(:id)
|
|
||||||
= hidden_field_tag 'redirect', "#{root_url}\#{q}"
|
|
||||||
= pet_name_tag placeholder: t('.modeling_hub.load_pet.placeholder'),
|
= pet_name_tag placeholder: t('.modeling_hub.load_pet.placeholder'),
|
||||||
required: true
|
required: true
|
||||||
= submit_tag t('.modeling_hub.load_pet.submit')
|
= submit_tag t('.modeling_hub.load_pet.submit')
|
||||||
|
@ -110,7 +83,6 @@
|
||||||
|
|
||||||
#whats-new
|
#whats-new
|
||||||
- if @newest_unmodeled_items.present?
|
- if @newest_unmodeled_items.present?
|
||||||
#modeling-neopets-users{'data-usernames' => @neopets_usernames.to_json}
|
|
||||||
%h3= t '.newest_items.unmodeled.header'
|
%h3= t '.newest_items.unmodeled.header'
|
||||||
%ul#newest-unmodeled-items
|
%ul#newest-unmodeled-items
|
||||||
- @newest_unmodeled_items.each do |item|
|
- @newest_unmodeled_items.each do |item|
|
||||||
|
@ -146,10 +118,6 @@
|
||||||
%script#preview-pet-not-found-template{:type => 'text/x-jquery-tmpl'}
|
%script#preview-pet-not-found-template{:type => 'text/x-jquery-tmpl'}
|
||||||
= t '.preview.pet_not_found'
|
= t '.preview.pet_not_found'
|
||||||
|
|
||||||
- content_for :meta do
|
|
||||||
%meta{name: 'neopia-host', content: neopia_host}
|
|
||||||
|
|
||||||
- content_for :javascripts do
|
- content_for :javascripts do
|
||||||
= include_javascript_libraries :jquery20, :jquery_tmpl
|
= include_javascript_libraries :jquery20, :jquery_tmpl
|
||||||
= modeling_i18n_tag
|
= javascript_include_tag 'ajax_auth', 'react', 'jquery.timeago', 'pet_query', 'outfits/new'
|
||||||
= javascript_include_tag 'ajax_auth', 'react', 'jquery.timeago', 'pet_query', 'modeling', 'outfits/new'
|
|
|
@ -37,8 +37,7 @@ en-MEEP:
|
||||||
contact: Meeptact
|
contact: Meeptact
|
||||||
suggestions: Suggesteeps
|
suggestions: Suggesteeps
|
||||||
email: Questions, comments, meepits
|
email: Questions, comments, meepits
|
||||||
copyright:
|
copyright: Images © 2000–%{year} Neopets, Inc. All Rights Reserved.
|
||||||
Images © 2000–%{year} Neopets, Inc. All Rights Reserved.
|
|
||||||
Used With Permission. Meep.
|
Used With Permission. Meep.
|
||||||
|
|
||||||
items:
|
items:
|
||||||
|
@ -52,8 +51,7 @@ en-MEEP:
|
||||||
get things quite right, and sometimes that can be meeped by just
|
get things quite right, and sometimes that can be meeped by just
|
||||||
meeping the conversion again. If reconversion doesn't seem to meep the
|
meeping the conversion again. If reconversion doesn't seem to meep the
|
||||||
meep, consider sending us a meep at %{contact_link}. Meep!
|
meep, consider sending us a meep at %{contact_link}. Meep!
|
||||||
call_to_action:
|
call_to_action: Which of these meeps looked meeped? We'll put it in line for remeeping.
|
||||||
Which of these meeps looked meeped? We'll put it in line for remeeping.
|
|
||||||
submit: Meep as broken
|
submit: Meep as broken
|
||||||
converted_at_html: Conveeped %{converted_at_ago} ago
|
converted_at_html: Conveeped %{converted_at_ago} ago
|
||||||
reported_at_html: Repeeped %{reported_at_ago} ago
|
reported_at_html: Repeeped %{reported_at_ago} ago
|
||||||
|
@ -66,12 +64,10 @@ en-MEEP:
|
||||||
create:
|
create:
|
||||||
success:
|
success:
|
||||||
owned:
|
owned:
|
||||||
in_list:
|
in_list: Meep! You own %{count} of the %{item_name} in the %{list_name} list.
|
||||||
Meep! You own %{count} of the %{item_name} in the %{list_name} list.
|
|
||||||
unlisted: Meep! You own %{count} of the %{item_name}.
|
unlisted: Meep! You own %{count} of the %{item_name}.
|
||||||
wanted:
|
wanted:
|
||||||
in_list:
|
in_list: Meep! You want %{count} of the %{item_name} in the %{list_name} list.
|
||||||
Meep! You want %{count} of the %{item_name} in the %{list_name} list.
|
|
||||||
unlisted: Meep! You want %{count} of the %{item_name}.
|
unlisted: Meep! You want %{count} of the %{item_name}.
|
||||||
invalid:
|
invalid:
|
||||||
owned: "We couldn't meep how many %{item_name} you own: %{errors}"
|
owned: "We couldn't meep how many %{item_name} you own: %{errors}"
|
||||||
|
@ -114,8 +110,7 @@ en-MEEP:
|
||||||
add_item_html: Meep <strong>%{item_name}</strong>
|
add_item_html: Meep <strong>%{item_name}</strong>
|
||||||
add_to_list_html: Meep to <strong>%{list_name}</strong>
|
add_to_list_html: Meep to <strong>%{list_name}</strong>
|
||||||
add_to_group_html: Meep to <strong>%{group_name}</strong>, no list
|
add_to_group_html: Meep to <strong>%{group_name}</strong>, no list
|
||||||
already_in_collection_html:
|
already_in_collection_html: It's already meeped in <strong>%{collection_name}</strong>
|
||||||
It's already meeped in <strong>%{collection_name}</strong>
|
|
||||||
|
|
||||||
petpage:
|
petpage:
|
||||||
title: Export to meeppage
|
title: Export to meeppage
|
||||||
|
@ -127,8 +122,7 @@ en-MEEP:
|
||||||
have to meep. The HTML is flexible, so, if you're the artsy type, you're
|
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!
|
free to meep with the styles all you want!
|
||||||
instructions:
|
instructions:
|
||||||
main_html:
|
main_html: Meep the HTML from the box below, then paste it into
|
||||||
Meep the HTML from the box below, then paste it into
|
|
||||||
%{edit_petpage_link}. Then meep to the Neoboards to show off! Have
|
%{edit_petpage_link}. Then meep to the Neoboards to show off! Have
|
||||||
fun!
|
fun!
|
||||||
edit_petpage_link_content: your meepit's page
|
edit_petpage_link_content: your meepit's page
|
||||||
|
@ -184,16 +178,14 @@ en-MEEP:
|
||||||
visibility:
|
visibility:
|
||||||
label: Who can meep this list?
|
label: Who can meep this list?
|
||||||
description:
|
description:
|
||||||
hint:
|
hint: Why are these meepits in the same meep? What are your terms for
|
||||||
Why are these meepits in the same meep? What are your terms for
|
|
||||||
meeping? Or you can meep this blank.
|
meeping? Or you can meep this blank.
|
||||||
markup_hint_html:
|
markup_hint_html: We _<em>support</em>_ **<strong>Meepdown</strong>** and some HTML.
|
||||||
We _<em>support</em>_ **<strong>Meepdown</strong>** and some HTML.
|
|
||||||
submit: Meep list
|
submit: Meep list
|
||||||
|
|
||||||
groups:
|
groups:
|
||||||
owned_by:
|
owned_by:
|
||||||
you: Meeps you own
|
you: Meeps you own
|
||||||
another_user: Meeps %{user_name} owns
|
another_user: Meeps %{user_name} owns
|
||||||
wanted_by:
|
wanted_by:
|
||||||
you: Meeps you want
|
you: Meeps you want
|
||||||
|
@ -229,8 +221,7 @@ en-MEEP:
|
||||||
items:
|
items:
|
||||||
index:
|
index:
|
||||||
title_with_query: Searching Infinite Meepit for "%{query}"
|
title_with_query: Searching Infinite Meepit for "%{query}"
|
||||||
no_results_html:
|
no_results_html: We couldn't meep any wearables that meeped %{query_html}.
|
||||||
We couldn't meep any wearables that meeped %{query_html}.
|
|
||||||
Meep!
|
Meep!
|
||||||
modeling_request:
|
modeling_request:
|
||||||
main_html:
|
main_html:
|
||||||
|
@ -310,11 +301,9 @@ en-MEEP:
|
||||||
preview:
|
preview:
|
||||||
header: Meepview
|
header: Meepview
|
||||||
customize_more: Customize meep
|
customize_more: Customize meep
|
||||||
requirements_not_met:
|
requirements_not_met: Javascript and Flash are required to preview meepits. Meep!
|
||||||
Javascript and Flash are required to preview meepits. Meep!
|
|
||||||
not_found:
|
not_found:
|
||||||
main_html:
|
main_html: We've never meeped the %{item_name} on the %{color_name}
|
||||||
We've never meeped the %{item_name} on the %{color_name}
|
|
||||||
%{species_name} before. Have you? If so, please %{modeling_link} and
|
%{species_name} before. Have you? If so, please %{modeling_link} and
|
||||||
we'll meep our datameep instantly. Meep!
|
we'll meep our datameep instantly. Meep!
|
||||||
modeling_link_content: meep it for us
|
modeling_link_content: meep it for us
|
||||||
|
@ -339,20 +328,17 @@ en-MEEP:
|
||||||
updated_hangers:
|
updated_hangers:
|
||||||
one: We updated the quantity for 1 of your meepits.
|
one: We updated the quantity for 1 of your meepits.
|
||||||
other: We updated the quantity for %{count} of your meepits.
|
other: We updated the quantity for %{count} of your meepits.
|
||||||
no_changes:
|
no_changes: We already had this data meeped to your account,
|
||||||
We already had this data meeped to your account,
|
|
||||||
so we didn't meep any changes.
|
so we didn't meep any changes.
|
||||||
no_data: We didn't meep any wearables, so we didn't meep any changes.
|
no_data: We didn't meep any wearables, so we didn't meep any changes.
|
||||||
unknown_items:
|
unknown_items:
|
||||||
one:
|
one: "We also meeped an item we didn't recognize: %{item_names}. Please
|
||||||
"We also meeped an item we didn't recognize: %{item_names}. Please
|
|
||||||
meep it for us and we'll update our database instantly. Thanks!"
|
meep it for us and we'll update our database instantly. Thanks!"
|
||||||
other:
|
other:
|
||||||
"We also meeped %{count} items we didn't recognize: %{item_names}.
|
"We also meeped %{count} items we didn't recognize: %{item_names}.
|
||||||
Please meep them for us and we'll update our database instantly.
|
Please meep them for us and we'll update our database instantly.
|
||||||
Thanks!"
|
Thanks!"
|
||||||
next_page:
|
next_page: Now the frame should contain page %{next_index}.
|
||||||
Now the frame should contain page %{next_index}.
|
|
||||||
Meep that source code over, too.
|
Meep that source code over, too.
|
||||||
done: That was the last meepit of your Neopets %{name}.
|
done: That was the last meepit of your Neopets %{name}.
|
||||||
parse_error:
|
parse_error:
|
||||||
|
@ -372,14 +358,12 @@ en-MEEP:
|
||||||
submit: Meep items
|
submit: Meep items
|
||||||
help:
|
help:
|
||||||
welcome: Welcome to the bulk %{name} meeporter!
|
welcome: Welcome to the bulk %{name} meeporter!
|
||||||
intro:
|
intro: We're going to meep it as easy as possible to meeport your
|
||||||
We're going to meep it as easy as possible to meeport your
|
|
||||||
Neopets.com %{name} data into your Dress to Impress meepit list.
|
Neopets.com %{name} data into your Dress to Impress meepit list.
|
||||||
Here's how it meeps.
|
Here's how it meeps.
|
||||||
check_frame:
|
check_frame:
|
||||||
header:
|
header:
|
||||||
main_html:
|
main_html: Check the framed Neopets.com meep on the left,
|
||||||
Check the framed Neopets.com meep on the left,
|
|
||||||
meeping to %{page_link}.
|
meeping to %{page_link}.
|
||||||
page_link_content: meep %{index} of your %{name}
|
page_link_content: meep %{index} of your %{name}
|
||||||
check_login:
|
check_login:
|
||||||
|
@ -397,8 +381,7 @@ en-MEEP:
|
||||||
It's never a good idea to meep in inside of a frame, unless
|
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,
|
you're a web programmer pro who can meep that the frame does,
|
||||||
in fact, meep to Neopets.com. To be safe, %{login_link}.
|
in fact, meep to Neopets.com. To be safe, %{login_link}.
|
||||||
login_link_content:
|
login_link_content: meep up another window, meep the URL, and meep in safely
|
||||||
meep up another window, meep the URL, and meep in safely
|
|
||||||
check_content:
|
check_content:
|
||||||
summary: Meep that the page is, in fact, your %{name}.
|
summary: Meep that the page is, in fact, your %{name}.
|
||||||
details:
|
details:
|
||||||
|
@ -414,16 +397,14 @@ en-MEEP:
|
||||||
<strong>In Firefox</strong>, right-meep the frame, choose
|
<strong>In Firefox</strong>, right-meep the frame, choose
|
||||||
<strong>This Frame</strong>, then <strong>View Frame
|
<strong>This Frame</strong>, then <strong>View Frame
|
||||||
Source</strong>.
|
Source</strong>.
|
||||||
other_html:
|
other_html: In other meepits, right-meep and look for something similar.
|
||||||
In other meepits, right-meep and look for something similar.
|
|
||||||
troubleshooting:
|
troubleshooting:
|
||||||
main_html:
|
main_html:
|
||||||
If you're still having trouble, try %{page_link}, right-meeping,
|
If you're still having trouble, try %{page_link}, right-meeping,
|
||||||
and meeping View Source.
|
and meeping View Source.
|
||||||
page_link_content: meeping the page in a new window
|
page_link_content: meeping the page in a new window
|
||||||
copy_source:
|
copy_source:
|
||||||
header:
|
header: Meeplight the entire source code,
|
||||||
Meeplight the entire source code,
|
|
||||||
and meepy-paste it into the box on the right.
|
and meepy-paste it into the box on the right.
|
||||||
shortcuts:
|
shortcuts:
|
||||||
"Some meepy shortcuts: Ctrl-A to select all the text, Ctrl-C to
|
"Some meepy shortcuts: Ctrl-A to select all the text, Ctrl-C to
|
||||||
|
@ -439,13 +420,10 @@ en-MEEP:
|
||||||
neopets_users:
|
neopets_users:
|
||||||
create:
|
create:
|
||||||
success:
|
success:
|
||||||
zero:
|
zero: Okay. We meeped %{user_name}'s pets, but already had these items
|
||||||
Okay. We meeped %{user_name}'s pets, but already had these items
|
|
||||||
meeped to your account.
|
meeped to your account.
|
||||||
one:
|
one: Success! We meeped %{user_name}'s pets, and meeped 1 item.
|
||||||
Success! We meeped %{user_name}'s pets, and meeped 1 item.
|
other: Success! We meeped %{user_name}'s pets, and meeped %{count} items.
|
||||||
other:
|
|
||||||
Success! We meeped %{user_name}'s pets, and meeped %{count} items.
|
|
||||||
not_found: Could not meep user %{user_name}. Is it meeped correctly?
|
not_found: Could not meep user %{user_name}. Is it meeped correctly?
|
||||||
|
|
||||||
new:
|
new:
|
||||||
|
@ -471,8 +449,7 @@ en-MEEP:
|
||||||
add: Closeet
|
add: Closeet
|
||||||
remove: Uncloseet
|
remove: Uncloseet
|
||||||
pet_type:
|
pet_type:
|
||||||
not_found:
|
not_found: We haven't meeped that combination before. Have you?
|
||||||
We haven't meeped that combination before. Have you?
|
|
||||||
Meep the pet's name if you have!
|
Meep the pet's name if you have!
|
||||||
form:
|
form:
|
||||||
submit: Meep
|
submit: Meep
|
||||||
|
@ -493,8 +470,7 @@ en-MEEP:
|
||||||
submit: Meep
|
submit: Meep
|
||||||
cancel: Unmeep
|
cancel: Unmeep
|
||||||
preview:
|
preview:
|
||||||
requirements:
|
requirements: Flash and Javascript (but not Java!) are required to meep outfeets.
|
||||||
Flash and Javascript (but not Java!) are required to meep outfeets.
|
|
||||||
big_picture: Big Meepit
|
big_picture: Big Meepit
|
||||||
download: Downmeep
|
download: Downmeep
|
||||||
mode:
|
mode:
|
||||||
|
@ -589,23 +565,19 @@ en-MEEP:
|
||||||
login: Meep in to use these filters.
|
login: Meep in to use these filters.
|
||||||
userbar:
|
userbar:
|
||||||
session_message:
|
session_message:
|
||||||
signed_in:
|
signed_in: You will be meeped out, then brought back to this exact outfit.
|
||||||
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.
|
||||||
not_signed_in:
|
|
||||||
You will be meeped in, then brought back to this exact outfit.
|
|
||||||
|
|
||||||
new:
|
new:
|
||||||
tagline: Meeps made meepy!
|
tagline: Meeps made meepy!
|
||||||
preview:
|
preview:
|
||||||
pet_type_not_found:
|
pet_type_not_found: We haven't meeped a %{color_name} %{species_name}. Meep?
|
||||||
We haven't meeped a %{color_name} %{species_name}. Meep?
|
|
||||||
pet_not_found: Pet not meeped.
|
pet_not_found: Pet not meeped.
|
||||||
submit:
|
submit:
|
||||||
primary: Meep my outfit!
|
primary: Meep my outfit!
|
||||||
secondary: Meep
|
secondary: Meep
|
||||||
neopia_online:
|
load_pet: Enter your pet's meep
|
||||||
load_pet: Enter your pet's meep
|
start_from_scratch: Or meep from scratch
|
||||||
start_from_scratch: Or meep from scratch
|
|
||||||
your_items:
|
your_items:
|
||||||
tagline: Meep and meep!
|
tagline: Meep and meep!
|
||||||
description:
|
description:
|
||||||
|
@ -630,8 +602,7 @@ en-MEEP:
|
||||||
submit: meep
|
submit: meep
|
||||||
latest_contribution:
|
latest_contribution:
|
||||||
header: Contribumeeps
|
header: Contribumeeps
|
||||||
description_html:
|
description_html: "%{user_link} meeped us %{contributed_description}.
|
||||||
"%{user_link} meeped us %{contributed_description}.
|
|
||||||
Meep, %{user_link}!"
|
Meep, %{user_link}!"
|
||||||
blog:
|
blog:
|
||||||
link: OpenNeo Meep
|
link: OpenNeo Meep
|
||||||
|
@ -644,9 +615,9 @@ en-MEEP:
|
||||||
other: Or meepy the %{color} %{species_list}?
|
other: Or meepy the %{color} %{species_list}?
|
||||||
call_to_action: If so, please meep it above! Meep!
|
call_to_action: If so, please meep it above! Meep!
|
||||||
species_list:
|
species_list:
|
||||||
words_connector: '! '
|
words_connector: "! "
|
||||||
two_words_connector: ' meep '
|
two_words_connector: " meep "
|
||||||
last_word_connector: '! meep '
|
last_word_connector: "! meep "
|
||||||
modeled:
|
modeled:
|
||||||
header: These items have already been meeped—meep for your help!
|
header: These items have already been meeped—meep for your help!
|
||||||
body_title: You just finished meeping this—meep so much!
|
body_title: You just finished meeping this—meep so much!
|
||||||
|
@ -660,15 +631,13 @@ en-MEEP:
|
||||||
error: Couldn't load. Meep again?
|
error: Couldn't load. Meep again?
|
||||||
title: Meep %{pet} as a model, especially if they're meeping the %{item}!
|
title: Meep %{pet} as a model, especially if they're meeping the %{item}!
|
||||||
pet_query:
|
pet_query:
|
||||||
notice_html:
|
notice_html: Thanks for meeping us <strong>%{pet_name}</strong>.
|
||||||
Thanks for meeping us <strong>%{pet_name}</strong>.
|
|
||||||
Meep up the good work!
|
Meep up the good work!
|
||||||
|
|
||||||
outfit:
|
outfit:
|
||||||
edit: eedit
|
edit: eedit
|
||||||
delete: demeep
|
delete: demeep
|
||||||
delete_confirmation:
|
delete_confirmation: Are you sure you want to demeep the outfit %{outfit_name}?
|
||||||
Are you sure you want to demeep the outfit %{outfit_name}?
|
|
||||||
|
|
||||||
show:
|
show:
|
||||||
default_outfit_name: Meeped outfit
|
default_outfit_name: Meeped outfit
|
||||||
|
|
|
@ -663,20 +663,8 @@ en:
|
||||||
submit:
|
submit:
|
||||||
primary: Plan my outfit!
|
primary: Plan my outfit!
|
||||||
secondary: Go
|
secondary: Go
|
||||||
neopia_online:
|
load_pet: Enter your pet's name
|
||||||
load_pet: Enter your pet's name
|
start_from_scratch: Or start from scratch
|
||||||
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
|
|
||||||
your_items:
|
your_items:
|
||||||
tagline: Track and trade!
|
tagline: Track and trade!
|
||||||
description: Make lists of the items you own and want,
|
description: Make lists of the items you own and want,
|
||||||
|
@ -718,16 +706,6 @@ en:
|
||||||
last_word_connector: ", or "
|
last_word_connector: ", or "
|
||||||
modeled:
|
modeled:
|
||||||
header: These items have already been modeled—thanks for your help!
|
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:
|
pet_query:
|
||||||
notice_html: Thanks for showing us <strong>%{pet_name}</strong>.
|
notice_html: Thanks for showing us <strong>%{pet_name}</strong>.
|
||||||
Keep up the good work!
|
Keep up the good work!
|
||||||
|
@ -797,7 +775,6 @@ en:
|
||||||
pet_download_error:
|
pet_download_error:
|
||||||
We couldn't connect to Neopets to look up the pet. Maybe they're down.
|
We couldn't connect to Neopets to look up the pet. Maybe they're down.
|
||||||
Please try again later!
|
Please try again later!
|
||||||
neopia_error: 'We couldn''t load that pet: "%{message}". Try again later?'
|
|
||||||
|
|
||||||
swf_assets:
|
swf_assets:
|
||||||
links:
|
links:
|
||||||
|
|
|
@ -468,9 +468,8 @@ es:
|
||||||
submit:
|
submit:
|
||||||
primary: ¡Diseñar mi atuendo!
|
primary: ¡Diseñar mi atuendo!
|
||||||
secondary: Ir
|
secondary: Ir
|
||||||
neopia_online:
|
load_pet: Escribe el nombre de tu pet
|
||||||
load_pet: Escribe el nombre de tu pet
|
start_from_scratch: O empieza a partir de una plantilla
|
||||||
start_from_scratch: O empieza a partir de una plantilla
|
|
||||||
your_items:
|
your_items:
|
||||||
tagline: ¡Añade e intercambia!
|
tagline: ¡Añade e intercambia!
|
||||||
description: Crea listas de los objetos que tú tienes y quieres. ¡Compártelas con el mundo!
|
description: Crea listas de los objetos que tú tienes y quieres. ¡Compártelas con el mundo!
|
||||||
|
|
|
@ -466,9 +466,8 @@ pt:
|
||||||
submit:
|
submit:
|
||||||
primary: Planeje minha roupa!
|
primary: Planeje minha roupa!
|
||||||
secondary: Vai
|
secondary: Vai
|
||||||
neopia_online:
|
load_pet: Digite o nome do seu pet
|
||||||
load_pet: Digite o nome do seu pet
|
start_from_scratch: Ou comece do zero
|
||||||
start_from_scratch: Ou comece do zero
|
|
||||||
your_items:
|
your_items:
|
||||||
tagline: Acompanhe e troque!
|
tagline: Acompanhe e troque!
|
||||||
description: Faça listas de itens que você tem e que procura, e compartilhe com o mundo.
|
description: Faça listas de itens que você tem e que procura, e compartilhe com o mundo.
|
||||||
|
|
Loading…
Reference in a new issue