Working on L5

This commit is contained in:
Hillel Coren 2015-04-14 21:58:07 +03:00
parent 76fcdcb093
commit 868744c696
17 changed files with 1060 additions and 71 deletions

View File

@ -11,13 +11,12 @@ use Omnipay;
use CreditCard;
use URL;
use Cache;
use App\Models\Invoice;
use App\Models\Invitation;
use App\Models\Client;
use App\Models\PaymentType;
use App\Models\Country;
use App\Models\License;
use App\Ninja\Repositories\PaymentRepository;
use App\Ninja\Repositories\InvoiceRepository;
use App\Ninja\Repositories\AccountRepository;
@ -519,13 +518,13 @@ class PaymentController extends BaseController
$productId = Input::get('product_id', PRODUCT_ONE_CLICK_INSTALL);
$license = License::where('license_key', '=', $licenseKey)
->where('is_claimed', '=', false)
->where('is_claimed', '<', 3)
->where('product_id', '=', $productId)
->first();
if ($license) {
if ($license->transaction_reference != 'TEST_MODE') {
$license->is_claimed = true;
$license->is_claimed = $license->is_claimed + 1;
$license->save();
}
@ -566,6 +565,7 @@ class PaymentController extends BaseController
$accountGateway = $account->getGatewayByType(Session::get('payment_type'));
$paymentLibrary = $accountGateway->gateway->paymentlibrary;
/*
if ($onSite) {
$client->address1 = trim(Input::get('address1'));
$client->address2 = trim(Input::get('address2'));
@ -574,7 +574,8 @@ class PaymentController extends BaseController
$client->postal_code = trim(Input::get('postal_code'));
$client->save();
}
*/
try {
if ($paymentLibrary->id == PAYMENT_LIBRARY_OMNIPAY) {
$gateway = self::createGateway($accountGateway);

View File

@ -10,7 +10,7 @@ use Cache;
use Session;
use Event;
use App\Models\Language;
use App\Events\UserSettingsChanged;
class StartupCheck
{
@ -49,14 +49,13 @@ class StartupCheck
];
foreach ($cachedTables as $name => $class) {
if (!Cache::has($name)) {
$orderBy = 'id';
if ($name == 'paymentTerms') {
$orderBy = 'num_days';
} elseif (property_exists($class, 'name') && $name != 'paymentTypes') {
} elseif (in_array($name, ['currencies', 'sizes', 'industries', 'languages'])) {
$orderBy = 'name';
} else {
$orderBy = 'id';
}
Cache::forever($name, $class::orderBy($orderBy)->get());
}
}

View File

@ -183,6 +183,33 @@ Route::group(['middleware' => 'api', 'prefix' => 'api/v1'], function()
Route::post('email_invoice', 'InvoiceApiController@emailInvoice');
});
// Redirects for legacy links
Route::get('/rocksteady', function() {
return Redirect::to(NINJA_WEB_URL, 301);
});
Route::get('/about', function() {
return Redirect::to(NINJA_WEB_URL, 301);
});
Route::get('/contact', function() {
return Redirect::to(NINJA_WEB_URL.'/contact', 301);
});
Route::get('/plans', function() {
return Redirect::to(NINJA_WEB_URL.'/pricing', 301);
});
Route::get('/faq', function() {
return Redirect::to(NINJA_WEB_URL.'/how-it-works', 301);
});
Route::get('/features', function() {
return Redirect::to(NINJA_WEB_URL.'/features', 301);
});
Route::get('/testimonials', function() {
return Redirect::to(NINJA_WEB_URL, 301);
});
Route::get('/compare-online-invoicing{sites?}', function() {
return Redirect::to(NINJA_WEB_URL, 301);
});
define('CONTACT_EMAIL', Config::get('mail.from.address'));
define('CONTACT_NAME', Config::get('mail.from.name'));
define('SITE_URL', Config::get('app.url'));

59
composer.lock generated
View File

@ -335,12 +335,12 @@
"source": {
"type": "git",
"url": "https://github.com/Chumper/Datatable.git",
"reference": "58f212270a4bd37ebf1371cb5302749cbbcb941d"
"reference": "bdd90cbe65b3544761f69ea199a1b9591770f3fc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Chumper/Datatable/zipball/58f212270a4bd37ebf1371cb5302749cbbcb941d",
"reference": "58f212270a4bd37ebf1371cb5302749cbbcb941d",
"url": "https://api.github.com/repos/Chumper/Datatable/zipball/bdd90cbe65b3544761f69ea199a1b9591770f3fc",
"reference": "bdd90cbe65b3544761f69ea199a1b9591770f3fc",
"shasum": ""
},
"require": {
@ -380,7 +380,7 @@
"jquery",
"laravel"
],
"time": "2015-04-04 15:19:43"
"time": "2015-04-08 12:11:23"
},
{
"name": "classpreloader/classpreloader",
@ -1374,12 +1374,12 @@
"source": {
"type": "git",
"url": "https://github.com/Intervention/image.git",
"reference": "8f3761154b4c1f5128365dfc32cbf757f27d97b6"
"reference": "7edc830d19733a40afae5641aabf0acf6be1961b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Intervention/image/zipball/8f3761154b4c1f5128365dfc32cbf757f27d97b6",
"reference": "8f3761154b4c1f5128365dfc32cbf757f27d97b6",
"url": "https://api.github.com/repos/Intervention/image/zipball/7edc830d19733a40afae5641aabf0acf6be1961b",
"reference": "7edc830d19733a40afae5641aabf0acf6be1961b",
"shasum": ""
},
"require": {
@ -1422,7 +1422,7 @@
"thumbnail",
"watermark"
],
"time": "2015-03-18 17:41:04"
"time": "2015-04-08 17:43:59"
},
{
"name": "ircmaxell/password-compat",
@ -2981,16 +2981,16 @@
},
{
"name": "omnipay/mollie",
"version": "3.0.3",
"version": "v3.0.4",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/omnipay-mollie.git",
"reference": "ea3830b0aaa845430387e5afc1f638be18a152ec"
"reference": "a89cb0d15447023b24c03f86873c1c1489cd021b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/omnipay-mollie/zipball/ea3830b0aaa845430387e5afc1f638be18a152ec",
"reference": "ea3830b0aaa845430387e5afc1f638be18a152ec",
"url": "https://api.github.com/repos/thephpleague/omnipay-mollie/zipball/a89cb0d15447023b24c03f86873c1c1489cd021b",
"reference": "a89cb0d15447023b24c03f86873c1c1489cd021b",
"shasum": ""
},
"require": {
@ -3034,7 +3034,7 @@
"pay",
"payment"
],
"time": "2014-10-15 14:25:03"
"time": "2015-03-03 18:55:42"
},
{
"name": "omnipay/multisafepay",
@ -5313,16 +5313,16 @@
},
{
"name": "phpunit/php-code-coverage",
"version": "2.0.15",
"version": "2.0.16",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
"reference": "34cc484af1ca149188d0d9e91412191e398e0b67"
"reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/34cc484af1ca149188d0d9e91412191e398e0b67",
"reference": "34cc484af1ca149188d0d9e91412191e398e0b67",
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/934fd03eb6840508231a7f73eb8940cf32c3b66c",
"reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c",
"shasum": ""
},
"require": {
@ -5371,7 +5371,7 @@
"testing",
"xunit"
],
"time": "2015-01-24 10:06:35"
"time": "2015-04-11 04:35:00"
},
{
"name": "phpunit/php-file-iterator",
@ -5510,16 +5510,16 @@
},
{
"name": "phpunit/php-token-stream",
"version": "1.4.0",
"version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
"reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74"
"reference": "eab81d02569310739373308137284e0158424330"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/db32c18eba00b121c145575fcbcd4d4d24e6db74",
"reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74",
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330",
"reference": "eab81d02569310739373308137284e0158424330",
"shasum": ""
},
"require": {
@ -5555,20 +5555,20 @@
"keywords": [
"tokenizer"
],
"time": "2015-01-17 09:51:32"
"time": "2015-04-08 04:46:07"
},
{
"name": "phpunit/phpunit",
"version": "4.6.1",
"version": "4.6.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "08b2aacdd8433abbba468f995d6d64b76a7a62ec"
"reference": "163232991e652e6efed2f8470326fffa61e848e2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/08b2aacdd8433abbba468f995d6d64b76a7a62ec",
"reference": "08b2aacdd8433abbba468f995d6d64b76a7a62ec",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/163232991e652e6efed2f8470326fffa61e848e2",
"reference": "163232991e652e6efed2f8470326fffa61e848e2",
"shasum": ""
},
"require": {
@ -5607,9 +5607,6 @@
"autoload": {
"classmap": [
"src/"
],
"files": [
"src/Framework/Assert/Functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@ -5630,7 +5627,7 @@
"testing",
"xunit"
],
"time": "2015-04-03 13:46:59"
"time": "2015-04-11 05:23:21"
},
{
"name": "phpunit/phpunit-mock-objects",

View File

@ -12,7 +12,8 @@ class AddSvLanguage extends Migration {
*/
public function up()
{
DB::table('languages')->insert(['name' => 'Swedish', 'locale' => 'sv']);
DB::table('languages')->insert(['name' => 'Swedish', 'locale' => 'sv']);
DB::table('languages')->insert(['name' => 'Spanish - Spain', 'locale' => 'es_ES']);
}
/**
@ -22,8 +23,13 @@ class AddSvLanguage extends Migration {
*/
public function down()
{
$language = \App\Models\Language::whereLocale('sv')->first();
$language->delete();
if ($language = \App\Models\Language::whereLocale('sv')->first()) {
$language->delete();
}
if ($language = \App\Models\Language::whereLocale('es_ES')->first()) {
$language->delete();
}
}
}

View File

@ -0,0 +1,20 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Pagination Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are used by the paginator library to build
| the simple pagination links. You are free to change them to anything
| you want to customize your views to better match your application.
|
*/
'previous' => '&laquo; Anterior',
'next' => 'Siguiente &raquo;',
);

View File

@ -0,0 +1,209 @@
<?php
return [
'title' => 'Free Open-Source Online Invoicing',
'description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
'invoice_now' => 'Invoice Now',
'no_signup_needed' => 'No signup needed',
'link_blog' => 'Blog',
'link_about_us' => 'About Us',
'link_contact_us' => 'Contact Us',
'link_features' => 'Features',
'link_plans' => 'Plans',
'link_compare' => 'Compare',
'link_testimonials' => 'Testimonials',
'link_faq' => 'FAQ',
'my_account' => 'My Account',
'login' => 'Login',
'connect_with_us' => 'Connect with Us',
'safe_and_secure' => 'Safe & Secure',
'toggle_navigation' => 'Toggle navigation',
'home' => [
'header' => 'THE <span style="color:#2299c0">SIMPLE</span> &amp; <span style="color:#edd71e">FREE</span> WAY TO INVOICE CLIENTS',
'sub_header' => 'It\'s just that easy. Stop spending time on complicated and expensive invoicing.<br>No fuss, just get started and get paid.',
'footer' => '<span>Simple, Intuitive Invoicing,</span>Anywhere.',
'free_always' => 'Free, Always',
'free_always_text' => 'Send unlimited invoices to 500 clients per month and never pay a dime. You are welcome to unlock still more awesome features with our Pro Plan, but our free app is a top-notch product that will do everything you need it to do, without any subscription or fees.',
'open_source' => 'Open-Source',
'open_source_text' => 'No mysterious corporate silos here! Just full <a href="https://github.com/hillelcoren/invoice-ninja" target="_blank">source code</a> transparency and a devotion to working with anyone interested to build a better electronic invoicing platform. We even offer a handy <a href="http://hillelcoren.com/invoice-ninja/self-hosting/" target="_blank">zip download</a> for a self-hosted version of Invoice Ninja.',
'live_pdf' => 'Live .PDF View',
'live_pdf_text' => 'See how your edited invoice will look as a print-friendly pdf while you make the changes. Our pdf generator works in real time as you make your changes. You can even preview four beautiful preset designs. Just create, save, send, and youre done!',
'online_payments' => 'Online Payments',
'online_payments_text' => 'Invoices sent with our app integrate seamlessly with the gateway credit card processor of your choice, to make it super easy for your clients to send you money with just a few clicks. We play nicely with Authorize.Net, Stripe, PayPal and loads more - 23 in all!',
],
'about' => [
'header' => '<span class="thin">About</span> Invoice Ninja',
'what_is' => 'What is Invoice Ninja?',
'team_ninja' => 'Team Ninja',
'team_ninja_text' => 'Invoice Ninja is managed by a team of seasoned web workers. We launched in early 2014 and have been thrilled by the enthusiastic response weve received from our growing community of users.',
'co_founder' => 'Co-Founder',
'ceo' => 'CEO',
'cto' => '',
'designer' => 'Designer',
'marketing' => 'Marketing',
'shalom_bio' => 'Shalom has specialized in small business development for nearly 10 years. In addition to InvoiceNinja.com Shalom is CEO of a leading tour agency in Israel.',
'hillel_bio' => 'Hillel has been developing enterprise applications for 15 years. His open-source <a href="http://hillelcoren.com/flex-autocomplete/" target="_blank">AutoComplete</a> component has been used by thousands of developers around the world.',
'razi_bio' => 'Razi is a pixel nerd with a great deal of experience in design for web sites and applications. When she isn\'t busy with InvoiceNinja she runs a small web agency in Stockholm called kantorp-wegl.in',
'ben_bio' => 'A veteran digital marketer and content strategist, Ben specializes in building communities around brands that make business easier for freelancers, SMBs and micro-entrepreneurs.',
],
'contact' => [
'header' => 'Questions, special requests, or just want to say hi?',
'sub_header' => 'Fill in the form below and we\'ll get back to you as soon as possible. Hope to hear from you!',
'other_ways' => 'Other ways to reach us',
'name' => 'Name',
'name_help' => 'Please enter your name.',
'email' => 'Email Address',
'email_help' => 'Please enter a valid e-mail address.',
'message' => 'Message',
'message_help' => 'Please enter a message.',
'send_message' => 'Send Message',
],
'features' => [
'header' => '<span class="thin">The</span> Features',
'footer' => 'Like what you see?',
'footer_action' => 'Get started today!',
'open_source' => 'Open Source Platform',
'open_source_text1' => 'Set the code free! Here at Invoice Ninja, were all about creating the best possible app, and inviting scrutiny via full code transparency is a central manifestation of this value.',
'open_source_text2' => 'We firmly believe that being an open source product helps everyone involved. Were looking forward to seeing what the developers out there can do to take Invoice Ninja into new realms of usefulness.',
'free_forever' => 'FREE. Forever.',
'free_forever_text1' => 'Yeah, you read that correctly. You dont have to pay us a cent to use our tools. We know how tough it is to make ends meet as a web-based business, and were bent on providing a top-notch product that will do everything you need it to do, without any subscription or opt-in fees.',
'free_forever_text2' => 'Try Invoice Ninja out. You literally have nothing to lose. Were confident that youll find the experience so positive that youll never need to turn elsewhere.',
'secure' => 'Secure & Private',
'secure_text1' => 'Invoice Ninja has been built from the ground up to keep your data safe. Only you have access to your login & accounting details, & we will never share your transaction data to any third party.',
'secure_text2' => 'Our website operates with 256-bit encryption, which is even more secure than most banking websites. Invoice Ninja uses the TLS 1.0 cryptographic protocol, AES_256_CBC string encryption, SHA1 message authentication and DHE_RSA key exchanges. We feel safe here and have invested heavily in measures to ensure that you do too.',
'live_pdf' => 'Live .PDF View',
'live_pdf_text1' => 'With Invoice Ninja, weve done away with the need for cumbersome multi-click invoice previewing after each save.',
'live_pdf_text2' => 'When you enter the details of your customer and/or invoice in our editor, you can instantly see the results in the pdf preview pane below. Want to see what your invoice would look like in a different layout style? The live pdf can show you four beautiful preset styles in real time too.',
'live_pdf_text3' => 'Just create, save, send, and youre done!',
'online_payments' => 'Online Payments',
'online_payments_text1' => 'Invoice Ninja seamlessly integrates with all of the top internet payment processors and gateways so you can get paid for your work quickly and easily.',
'online_payments_text2' => 'Invoices created with our tools arent just for bookkeeping purposes - they bring in the Benjamins. We also make it super easy to choose the right gateway for the specific needs of your business and are happy to help you to get started working with the gateway of your choice. Whats more, were constantly working on rolling out additional gateway integrations, so if you dont see the one you use here, just let us know, and theres a good chance well add it for you.',
],
'plans' => [
'header' => '<span class="thin">The</span> Plans',
'free' => 'Free',
'unlimited' => 'Unlimited',
'pro_plan' => 'Pro Plan',
'go_pro' => 'Go Pro to Unlock Premium Invoice Ninja Features',
'go_pro_text' => 'We believe that the free version of Invoice Ninja is a truly awesome product loaded with the key features you need to bill your clients electronically. But for those who crave still more Ninja awesomeness, we\'ve unmasked the Invoice Ninja Pro plan, which offers more versatility, power and customization options for just $50 per year.',
'number_clients' => 'Number of clients per account',
'unlimited_invoices' => 'Unlimited client invoices',
'company_logo' => 'Add your company logo',
'live_pdf' => 'Live .PDF invoice creation',
'four_templates' => '4 beautiful invoice templates',
'payments' => 'Accept credit card payments',
'additional_templates' => 'Additional invoice templates',
'multi_user' => 'Multi-user support',
'quotes' => 'Quotes/pro-forma invoices',
'advanced_settings' => 'Advanced invoice settings',
'data_vizualizations' => 'Dynamic data vizualizations',
'email_support' => 'Priority email support',
'remove_created_by' => 'Remove "Created by Invoice Ninja"',
'latest_features' => 'Latest and greatest features',
'pricing' => 'Pricing',
'free_always' => 'Free<span> /Always!</span>',
'year_price' => '$50<span> /Year</span>',
],
'compare' => [
'header' => '<span class="thin">How We</span> Compare',
'free_plan_comparison' => 'Free Plan Comparison',
'paid_plan_comparison' => 'Paid Plan Comparison',
'app' => 'App',
'cost' => 'Cost',
'clients' => 'Clients',
'invoices' => 'Invoices',
'payment_gateways' => 'Payment Gateways',
'custom_logo' => 'Custom Logo',
'multiple_templates' => 'Multiple Templates',
'recurring_payments' => 'Recurring Payments',
'open_source' => 'Open Source',
'per_month' => 'per month',
'per_year' => 'per year',
'free' => 'Free',
'unlimited' => 'Unlimited',
],
'testimonials' => [
'testimonials' => 'testimonials',
'header' => 'Since we launched Invoice Ninja in March of 2014, we\'ve been overwhelmed by a deluge of user love. Here\'s a small taste of the glowing things people have to say about the great experiences the\'ve been having with our free e-invoicing app!',
],
'faq' => [
'header' => '<span class="thin">The</span> FAQs',
'question1' => 'I know it isnt standard ninja practice to reveal too many identity details, but who are you guys exactly?',
'answer1' => 'Were a small team of highly skilled digital journeymen based in Israel. We love open source, we love disrupting the big business status quo, and we love building helpful tools that are easy to use. We believe that everyone elses web-based cash flow tools are unnecessarily expensive, clunky and complicated - and were bent on proving these beliefs with Invoice Ninja.',
'question2' => 'How do I get started using Invoice Ninja?',
'answer2' => 'Just click on the big, yellow "Invoice Now" button on our homepage!',
'question3' => 'Do you offer customer support?',
'answer3' => 'We sure do. Support is super important to us. Feel free to email us at <a href="mailto:support@invoiceninja.com">support@invoiceninja.com</a> with any questions you might have. We almost always reply within one business day.',
'question4' => 'Is Invoice Ninja really free? For how long?',
'answer4' => 'Yes, our basic app is 100% free. Forever and ever. For real. We also offer a paid Pro version of Invoice Ninja (you can learn all about its awesome features <a href="https://www.invoiceninja.com/plans">here</a>), but it\'s important to us that the free version have all of the key features people need to do business.',
'question5' => 'How is Invoice Ninja able to offer this all for free? How are you making any money?',
'answer5' => 'Were mostly in this line of work because we believe its high time that a good electronic invoicing tool be available for free. There isnt much money in it - yet. We do offer a paid <a href="https://www.invoiceninja.com/plans">Pro </a> version of the app that we\'ve souped up with premium features. And when our users open up new accounts with payment processor gateways by clicking on links from our site, we make modest commissions as a gateway affiliate. So if zillions of freelancers and small businesses start running credit card charges through Invoice Ninja, or if scores of users go <a href="https://www.invoiceninja.com/plans">Pro</a>, theres a decent chance we\'ll recover our investment.',
'question6' => 'Really? So does that mean youre not collecting information about me so you can sell me stuff or so that some other company can spam me according to my interests?',
'answer6' => 'No way. Were not mining your data, and were not selling you out. That wouldnt be very ninja of us, would it?',
'question7' => 'But dont you have access to my merchant and banking accounts?',
'answer7' => 'Actually, we dont. When you link an account at a third party financial institution with your Invoice Ninja account, youre essentially giving our app permission to send money to you and nothing more. This is all managed by the tech teams at your financial service providers, who go to great lengths to ensure their integrations cant be exploited or abused.',
'question8' => 'Given that Invoice Ninja is an open source app, how can I be sure that my financial information is safe with you?',
'answer8' => 'There\'s a big difference between “open source" and “open data.” Anyone who wants to use the code that drives Invoice Ninja to create their own products or to make improvements to ours can do so. Its available for anyone who wants to download and work with. But thats just the source code - totally separate from what happens with that code on the Invoice Ninja servers. Youre the only one who has full access to what you\'re doing with our product. For more details on the security of our servers and how we handle our users\' information, please read the next question.',
'question9' => 'So just how secure is this app?',
'answer9' => 'Extremely. Data uploaded by our users runs through connections with 256-bit encryption, which is twice as many encryption bits that most bank websites use. We use the TLS 1.0 cryptographic protocol, AES_256_CBC string encryption, SHA1 message authentication and DHE_RSA key exchanges. Its fancy stuff that we put in place to make sure no one can gain access to your information except you.',
'question10' => 'How do I remove the small "Created by Invoice Ninja” image from the bottom of my invoices?',
'answer10' => 'The amazingly affordable <a href="https://www.invoiceninja.com/plans">Pro</a> version of Invoice Ninja allows you to do this and oh so much more.',
'question11' => 'Can I see what the application looks like with sample data?',
'answer11' => 'Sure, <a href="https://www.invoiceninja.com/demo">click here</a> to try out our demo account.',
'question12' => 'I hear that there\'s a version of Invoice Ninja that I can install myself on my own servers? Where can I learn more about this?',
'answer12' => 'The rumors are true! Full instructions are available <a href="http://hillelcoren.com/invoice-ninja/self-hosting/" target="_blank">here</a>.',
'question13' => 'I\'m seeing the options to assign various statuses to my invoices, clients, credits and payments. What\'s the difference between "active," "archived" and "deleted"?',
'answer13' => 'These three handy statuses for invoices, clients, credits and payments allow you to keep your own cash flow management as straightforward and accessible as possible from your Invoice Ninja dashboard. None of these statuses will actually purge any records from your account - even "deleted" can always be recovered at any point in the future. "Active" means the record will appear in the relevant queue of records. To stash a record away so it\'s still fully operational but no longer cluttering up your interface, simply set it to be "archived." To deactivate a record and render it inaccessible to your clients, mark it "deleted."',
'question14' => 'My question wasn\'t covered by any of the content on this FAQ page. How can I get in touch with you?',
'answer14' => 'Please email us at <a href="mailto:contact@invoiceninja.com">contact@invoiceninja.com</a> with any questions or comments you have. We love hearing from the people who use our app! Well do our best to reply to your email within the business day.',
'miss_something' => 'Did we miss something?',
'miss_something_text' => 'Please email us at <a href="mailto:contact@invoiceninja.com" style="font-weight: bold">contact@invoiceninja.com</a> with any questions or comments you have. We love hearing from the people who use our app! Well do our best to reply to your email within the business day.',
],
];

View File

@ -0,0 +1,24 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Password Reminder Language Lines
|--------------------------------------------------------------------------
|
| The following language lines are the default lines which match reasons
| that are given by the password broker for a password update attempt
| has failed, such as for an invalid token or invalid new password.
|
*/
"password" => "Las contraseñas deben contener al menos 6 caracteres y coincidir.",
"user" => "No podemos encontrar a un usuario con ese correo electrónico.",
"token" => "Este token de recuperación de contraseña es inválido.",
"sent" => "¡Recordatorio de contraseña enviado!",
);

View File

@ -0,0 +1,584 @@
<?php
return array(
// client
'organization' => 'Empresa',
'name' => 'Nombre de Empresa',
'website' => 'Sitio Web',
'work_phone' => 'Teléfono',
'address' => 'Dirección',
'address1' => 'Calle',
'address2' => 'Bloq/Pta',
'city' => 'Ciudad',
'state' => 'Provincia',
'postal_code' => 'Código Postal',
'country_id' => 'País',
'contacts' => 'Contactos',
'first_name' => 'Nombres',
'last_name' => 'Apellidos',
'phone' => 'Teléfono',
'email' => 'Email',
'additional_info' => 'Información adicional',
'payment_terms' => 'Plazos de pago', //
'currency_id' => 'Divisa',
'size_id' => 'Tamaño',
'industry_id' => 'Industria',
'private_notes' => 'Notas Privadas',
// invoice
'invoice' => 'Factura',
'client' => 'Cliente',
'invoice_date' => 'Fecha de factura',
'due_date' => 'Fecha de pago',
'invoice_number' => 'Número de Factura',
'invoice_number_short' => 'Factura Nº',
'po_number' => 'Apartado de correo',
'po_number_short' => 'Apdo.',
'frequency_id' => 'Frecuencia',
'discount' => 'Descuento',
'taxes' => 'Impuestos',
'tax' => 'IVA',
'item' => 'Concepto',
'description' => 'Descripción',
'unit_cost' => 'Coste unitario',
'quantity' => 'Cantidad',
'line_total' => 'Total',
'subtotal' => 'Subtotal',
'paid_to_date' => 'Pagado',
'balance_due' => 'Pendiente',
'invoice_design_id' => 'Diseño',
'terms' => 'Términos',
'your_invoice' => 'Tu factura',
'remove_contact' => 'Eliminar contacto',
'add_contact' => 'Añadir contacto',
'create_new_client' => 'Crear nuevo cliente',
'edit_client_details' => 'Editar detalles del cliente',
'enable' => 'Activar',
'learn_more' => 'Saber más',
'manage_rates' => 'Gestionar tarifas',
'note_to_client' => 'Nota para el cliente',
'invoice_terms' => 'Términos de facturación',
'save_as_default_terms' => 'Guardar como términos por defecto',
'download_pdf' => 'Descargar PDF',
'pay_now' => 'Pagar Ahora',
'save_invoice' => 'Guardar factura',
'clone_invoice' => 'Clonar factura',
'archive_invoice' => 'Archivar factura',
'delete_invoice' => 'Eliminar factura',
'email_invoice' => 'Enviar factura por email',
'enter_payment' => 'Agregar pago',
'tax_rates' => 'Tasas de impuesto',
'rate' => 'Tasas',
'settings' => 'Configuración',
'enable_invoice_tax' => 'Activar impuesto <b>para la factura</b>',
'enable_line_item_tax' => 'Activar impuesto <b>por concepto</b>',
// navigation
'dashboard' => 'Inicio',
'clients' => 'Clientes',
'invoices' => 'Facturas',
'payments' => 'Pagos',
'credits' => 'Créditos',
'history' => 'Historial',
'search' => 'Búsqueda',
'sign_up' => 'Registrarse',
'guest' => 'Invitado',
'company_details' => 'Detalles de la Empresa',
'online_payments' => 'Pagos en Linea',
'notifications' => 'Notificaciones',
'import_export' => 'Importar/Exportar',
'done' => 'Hecho',
'save' => 'Guardar',
'create' => 'Crear',
'upload' => 'Subir',
'import' => 'Importar',
'download' => 'Descargar',
'cancel' => 'Cancelar',
'close' => 'Cerrar',
'provide_email' => 'Por favor facilita una dirección de correo válida.',
'powered_by' => 'Creado por',
'no_items' => 'No hay datos',
// recurring invoices
'recurring_invoices' => 'Facturas recurrentes',
'recurring_help' => '<p>Enviar facturas automáticamente a clientes semanalmente, bi-mensualmente, mensualmente, trimestral o anualmente. </p>
<p>Uso :MONTH, :QUARTER or :YEAR para fechas dinámicas. Matemáticas básicas también funcionan bien. Por ejemplo: :MONTH-1.</p>
<p>Ejemplos de variables dinámicas de factura:</p>
<ul>
<li>"Afiliación de gimnasio para el mes de:MONTH" => Afiliación de gimnasio para el mes de julio"</li>
<li>":YEAR+1 suscripción anual" => "2015 suscripción anual"</li>
<li>"Retainer payment for :QUARTER+1" => "Pago anticipo de pagos para T2"</li>
</ul>',
// dashboard
'in_total_revenue' => 'Ingreso Total',
'billed_client' => 'Cliente Facturado',
'billed_clients' => 'Clientes Facturados',
'active_client' => 'Cliente Activo',
'active_clients' => 'Clientes Activos',
'invoices_past_due' => 'Facturas Vencidas',
'upcoming_invoices' => 'Próximas Facturas',
'average_invoice' => 'Promedio de Facturación',
// list pages
'archive' => 'Archivar',
'delete' => 'Eliminar',
'archive_client' => 'Archivar Cliente',
'delete_client' => 'Eliminar Cliente',
'archive_payment' => 'Archivar Pago',
'delete_payment' => 'Eliminar Pago',
'archive_credit' => 'Archivar Crédito',
'delete_credit' => 'Eliminar Crédito',
'show_archived_deleted' => 'Mostrar archivados o eliminados en ',
'filter' => 'Filtrar',
'new_client' => 'Nuevo Cliente',
'new_invoice' => 'Nueva Factura',
'new_payment' => 'Nuevo Pago',
'new_credit' => 'Nuevo Crédito',
'contact' => 'Contacto',
'date_created' => 'Fecha de Creación',
'last_login' => 'Último Acceso',
'balance' => 'Balance',
'action' => 'Acción',
'status' => 'Estado',
'invoice_total' => 'Total Facturado',
'frequency' => 'Frequencia',
'start_date' => 'Fecha de Inicio',
'end_date' => 'Fecha de Finalización',
'transaction_reference' => 'Referencia de Transacción',
'method' => 'Método',
'payment_amount' => 'Valor del Pago',
'payment_date' => 'Fecha de Pago',
'credit_amount' => 'Cantidad de Crédito',
'credit_balance' => 'Balance de Crédito',
'credit_date' => 'Fecha de Crédito',
'empty_table' => 'Tabla vacía',
'select' => 'Seleccionar',
'edit_client' => 'Editar Cliente',
'edit_invoice' => 'Editar Factura',
// client view page
'create_invoice' => 'Crear Factura',
'Create Invoice' => 'Crear Factura',
'enter_credit' => 'Agregar Crédito',
'last_logged_in' => 'Último inicio de sesión',
'details' => 'Detalles',
'standing' => 'Situación', //
'credit' => 'Crédito',
'activity' => 'Actividad',
'date' => 'Fecha',
'message' => 'Mensaje',
'adjustment' => 'Ajustes',
'are_you_sure' => '¿Está Seguro?',
// payment pages
'payment_type_id' => 'Tipo de pago',
'amount' => 'Cantidad',
// Nuevo texto extraido - New text extracted
'Recommended Gateway' => 'Pasarelas Recomendadas',//
'Accepted Credit Cards' => 'Tarjetas de Credito Permitidas',//
'Payment Gateway' => 'Pasarelas de Pago',//
'Select Gateway' => 'Seleccione Pasarela',//
'Enable' => 'Activo',//
'Api Login Id' => 'Introduzca Api Id',//
'Transaction Key' => 'Clave de Transacción',//
'Create an account' => 'Crear cuenta nueva',//
'Other Options' => 'Otras Opciones',//
// account/company pages
'work_email' => 'Correo electrónico de la empresa',
'language_id' => 'Idioma',
'timezone_id' => 'Zona horaria',
'date_format_id' => 'Formato de fecha',
'datetime_format_id' => 'Format de fecha/hora',
'users' => 'Usuarios',
'localization' => 'Localización',
'remove_logo' => 'Eliminar logo',
'logo_help' => 'Formatos aceptados: JPEG, GIF y PNG. Altura recomendada: 120px',
'payment_gateway' => 'Pasarela de pago',
'gateway_id' => 'Proveedor',
'email_notifications' => 'Notificaciones de email',
'email_sent' => 'Avísame por email cuando una factura <b>se envía</b>',
'email_viewed' => 'Avísame por email cuando una factura <b>se visualiza</b>',
'email_paid' => 'Avísame por email cuando una factura <b>se paga</b>',
'site_updates' => 'Actualizaciones del sitio',
'custom_messages' => 'Mensajes a medida',
'default_invoice_terms' => 'Configurar términos de factura por defecto',
'default_email_footer' => 'Configurar firma de email por defecto',
'import_clients' => 'Importar datos del cliente',
'csv_file' => 'Seleccionar archivo CSV',
'export_clients' => 'Exportar datos del cliente',
'select_file' => 'Seleccionar archivo',
'first_row_headers' => 'Usar la primera fila como encabezados',
'column' => 'Columna',
'sample' => 'Ejemplo',
'import_to' => 'Importar a',
'client_will_create' => 'cliente se creará',
'clients_will_create' => 'clientes se crearan',
// application messages
'created_client' => 'cliente creado con éxito',
'created_clients' => ':count clientes creados con éxito',
'updated_settings' => 'Configuración actualizada con éxito',
'removed_logo' => 'Logo eliminado con éxito',
'sent_message' => 'Mensaje enviado con éxito',
'invoice_error' => 'Seleccionar cliente y corregir errores.',
'limit_clients' => 'Lo sentimos, se ha pasado del límite de :count clientes',
'payment_error' => 'Ha habido un error en el proceso de tu pago. Inténtalo de nuevo más tarde.',
'registration_required' => 'Inscríbete para enviar una factura',
'confirmation_required' => 'Por favor confirma tu dirección de correo electrónico',
'updated_client' => 'Cliente actualizado con éxito',
'created_client' => 'Cliente creado con éxito',
'archived_client' => 'Cliente archivado con éxito',
'archived_clients' => ':count clientes archivados con éxito',
'deleted_client' => 'Cliente eliminado con éxito',
'deleted_clients' => ':count clientes eliminados con éxito',
'updated_invoice' => 'Factura actualizada con éxito',
'created_invoice' => 'Factura creada con éxito',
'cloned_invoice' => 'Factura clonada con éxito',
'emailed_invoice' => 'Factura enviada con éxito',
'and_created_client' => 'y cliente creado ',
'archived_invoice' => 'Factura archivada con éxito',
'archived_invoices' => ':count facturas archivados con éxito',
'deleted_invoice' => 'Factura eliminada con éxito',
'deleted_invoices' => ':count facturas eliminadas con éxito',
'created_payment' => 'Pago creado con éxito',
'archived_payment' => 'Pago archivado con éxito',
'archived_payments' => ':count pagos archivados con éxito',
'deleted_payment' => 'Pago eliminado con éxito',
'deleted_payments' => ':count pagos eliminados con éxito',
'applied_payment' => 'Pago aplicado con éxito',
'created_credit' => 'Crédito creado con éxito',
'archived_credit' => 'Crédito archivado con éxito',
'archived_credits' => ':count creditos archivados con éxito',
'deleted_credit' => 'Créditos eliminados con éxito',
'deleted_credits' => ':count creditos eliminados con éxito',
// Emails
'confirmation_subject' => 'Corfimación de tu cuenta en Invoice Ninja',
'confirmation_header' => 'Confirmación de Cuenta',
'confirmation_message' => 'Por favor, haz clic en el enlace abajo para confirmar tu cuenta.',
'invoice_subject' => 'Nueva factura de :account',
'invoice_message' => 'Para visualizar tu factura por el valor de :amount, haz click en el enlace de abajo.',
'payment_subject' => 'Pago recibido',
'payment_message' => 'Gracias por su pago de :amount.',
'email_salutation' => 'Estimado :name,',
'email_signature' => 'Un cordial saludo,',
'email_from' => 'El equipo de Invoice Ninja ',
'user_email_footer' => 'Para ajustar la configuración de las notificaciones de tu email, visita '.SITE_URL.'/company/notifications',
'invoice_link_message' => 'Para visualizar la factura de cliente, haz clic en el enlace de abajo:',
'notification_invoice_paid_subject' => 'La factura :invoice ha sido pagada por el cliente :client',
'notification_invoice_sent_subject' => 'La factura :invoice ha sido enviada a el cliente :client',
'notification_invoice_viewed_subject' => 'La factura :invoice ha sido visualizado por el cliente:client',
'notification_invoice_paid' => 'Un pago por importe de :amount ha sido realizado por el cliente :client correspondiente a la factura :invoice.',
'notification_invoice_sent' => 'La factura :invoice por importe de :amount fue enviada al cliente :cliente.',
'notification_invoice_viewed' => 'La factura :invoice por importe de :amount fue visualizada por el cliente :client.',
'reset_password' => 'Puedes reconfigurar la contraseña de tu cuenta haciendo clic en el siguiente enlace:',
'reset_password_footer' => 'Si no has solicitado un cambio de contraseña, por favor contactate con nosostros: ' . CONTACT_EMAIL,
// Payment page
'secure_payment' => 'Pago seguro',
'card_number' => 'Número de tarjeta',
'expiration_month' => 'Mes de caducidad',
'expiration_year' => 'Año de caducidad',
'cvv' => 'CVV',
// Security alerts
'confide' => array(
'too_many_attempts' => 'Demasiados intentos fallidos. Inténtalo de nuevo en un par de minutos.',
'wrong_credentials' => 'Contraseña o email incorrecto.',
'confirmation' => '¡Tu cuenta se ha confirmado!',
'wrong_confirmation' => 'Código de confirmación incorrecto.',
'password_forgot' => 'La información sobre el cambio de tu contraseña se ha enviado a tu dirección de correo electrónico.',
'password_reset' => 'Tu contraseña se ha cambiado con éxito.',
'wrong_password_reset' => 'Contraseña no válida. Inténtalo de nuevo',
),
// Pro Plan
'pro_plan' => [
'remove_logo' => ':link haz click para eliminar el logo de Invoice Ninja',
'remove_logo_link' => 'Haz click aquí',
],
'logout' => 'Cerrar sesión',
'sign_up_to_save' => 'Registrate para guardar tu trabajo',
'agree_to_terms' =>'Estoy de acuerdo con los términos de Invoice Ninja :terms',
'terms_of_service' => 'Términos de servicio',
'email_taken' => 'Esta dirección de correo electrónico ya se ha registrado',
'working' => 'Procesando',
'success' => 'Éxito',
'success_message' => 'Te has registrado con éxito. Por favor, haz clic en el enlace del correo de confirmación para verificar tu dirección de correo electrónico.',
'erase_data' => 'Esta acción eliminará todos tus datos de forma permanente.',
'password' => 'Contraseña',
'pro_plan_product' => 'Plan Pro',
'pro_plan_description' => 'Un año de inscripción al Plan Pro de Invoice Ninja.',
'pro_plan_success' => '¡Gracias por unirte a Invoice Ninja! Al realizar el pago de tu factura, se iniciara tu PLAN PRO.',
'unsaved_changes' => 'Tienes cambios no guardados',
'custom_fields' => 'Campos a medida',
'company_fields' => 'Campos de la empresa',
'client_fields' => 'Campos del cliente',
'field_label' => 'Etiqueta del campo',
'field_value' => 'Valor del campo',
'edit' => 'Editar',
'view_as_recipient' => 'Ver como destinitario',
// product management
'product_library' => 'Inventario de productos',
'product' => 'Producto',
'products' => 'Productos',
'fill_products' => 'Auto-rellenar productos',
'fill_products_help' => 'Seleccionar un producto automáticamente <b>configurará la descripción y coste</b>',
'update_products' => 'Auto-actualizar productos',
'update_products_help' => 'Actualizar una factura automáticamente <b>actualizará los productos</b>',
'create_product' => 'Crear Producto',
'edit_product' => 'Editar Producto',
'archive_product' => 'Archivar Producto',
'updated_product' => 'Producto actualizado con éxito',
'created_product' => 'Producto creado con éxito',
'archived_product' => 'Producto archivado con éxito',
'pro_plan_custom_fields' => ':link haz click para para activar campos a medida',
'advanced_settings' => 'Configuración Avanzada',
'pro_plan_advanced_settings' => ':link haz click para para activar la configuración avanzada',
'invoice_design' => 'Diseño de factura',
'specify_colors' => 'Especificar colores',
'specify_colors_label' => 'Seleccionar los colores para usar en las facturas',
'chart_builder' => 'Constructor de graficos',
'ninja_email_footer' => 'Usa :site para facturar a tus clientes y recibir pagos de forma gratuita!',
'go_pro' => 'Hazte Pro',
// Quotes
'quote' => 'Presupuesto',
'quotes' => 'Presupuestos',
'quote_number' => 'Numero de Presupuesto',
'quote_number_short' => 'Presupuesto Nº ',
'quote_date' => 'Fecha Presupuesto',
'quote_total' => 'Total Presupuestado',
'your_quote' => 'Su Presupuesto',
'total' => 'Total',
'clone' => 'Clonar',
'new_quote' => 'Nuevo Presupuesto',
'create_quote' => 'Crear Presupuesto',
'edit_quote' => 'Editar Presupuesto',
'archive_quote' => 'Archivar Presupuesto',
'delete_quote' => 'Eliminar Presupuesto',
'save_quote' => 'Guardar Presupuesto',
'email_quote' => 'Enviar Presupuesto',
'clone_quote' => 'Clonar Presupuesto',
'convert_to_invoice' => 'Convertir a Factura',
'view_invoice' => 'Ver Factura',
'view_quote' => 'Ver Presupuesto',
'view_client' => 'Ver Cliente',
'updated_quote' => 'Presupuesto actualizado con éxito',
'created_quote' => 'Presupuesto creado con éxito',
'cloned_quote' => 'Presupuesto clonado con éxito',
'emailed_quote' => 'Presupuesto enviado con éxito',
'archived_quote' => 'Presupuesto archivado con éxito',
'archived_quotes' => ':count Presupuestos archivados con exito',
'deleted_quote' => 'Presupuesto eliminado con éxito',
'deleted_quotes' => ':count Presupuestos eliminados con exito',
'converted_to_invoice' => 'Presupuesto convertido a factura con éxito',
'quote_subject' => 'Nuevo Presupuesto de :account',
'quote_message' => 'Para ver el presupuesto por un importe de :amount, haga click en el enlace de abajo.',
'quote_link_message' => 'Para ver su presupuesto haga click en el enlace de abajo:',
'notification_quote_sent_subject' => 'El presupuesto :invoice enviado al cliente :client',
'notification_quote_viewed_subject' => 'El presupuesto :invoice fue visto por el cliente :client',
'notification_quote_sent' => 'El presupuesto :invoice por un valor de :amount, ha sido enviado al cliente :client.',
'notification_quote_viewed' => 'El presupuesto :invoice por un valor de :amount ha sido visto por el cliente :client.',
'session_expired' => 'Su sesión ha caducado.',
'invoice_fields' => 'Campos de Factura',
'invoice_options' => 'Opciones de Factura',
'hide_quantity' => 'Ocultar Cantidad',
'hide_quantity_help' => 'Si las cantidades de tus partidas siempre son 1, entonces puedes organizar tus facturas mejor al no mostrar este campo.',
'hide_paid_to_date' => 'Ocultar valor pagado a la fecha',
'hide_paid_to_date_help' => 'Solo mostrar la opción “Pagado a la fecha” en sus facturas cuando se ha recibido un pago.',
'charge_taxes' => 'Cargar Impuestos',
'user_management' => 'Gestión de Usuario',
'add_user' => 'Añadir Usuario',
'send_invite' => 'Enviar Invitación', //Context for its use
'sent_invite' => 'Invitación enviada con éxito',
'updated_user' => 'Usario actualizado con éxito',
'invitation_message' => ':invitor te ha invitado a unirte a su cuenta en G-Factura.',
'register_to_add_user' => 'Regístrate para añadir usarios',
'user_state' => 'Estado',
'edit_user' => 'Editar Usario',
'delete_user' => 'Eliminar Usario',
'active' => 'Activo',
'pending' => 'Pendiente',
'deleted_user' => 'Usario eliminado con éxito',
'limit_users' => 'Lo sentimos, esta acción excederá el límite de ' . MAX_NUM_USERS . ' usarios',
'confirm_email_invoice' => '¿Estás seguro que quieres enviar esta factura?',
'confirm_email_quote' => '¿Estás seguro que quieres enviar este presupuesto?',
'confirm_recurring_email_invoice' => 'Se ha marcado esta factura como recurrente, estás seguro que quieres enviar esta factura?',
'cancel_account' => 'Cancelar Cuenta',
'cancel_account_message' => 'AVISO: Esta acción eliminará todos tus datos de forma permanente.',
'go_back' => 'Atrás',
'data_visualizations' => 'Visualización de Datos',
'sample_data' => 'Datos de Ejemplo',
'hide' => 'Ocultar',
'new_version_available' => 'Una nueva versión de :releases_link disponible. Estás utilizando la versión :user_version, la última versión es :latest_version',
'invoice_settings' => 'Configuración de Facturas',
'invoice_number_prefix' => 'Prefijo de Facturación',
'invoice_number_counter' => 'Numeración de Facturación',
'quote_number_prefix' => 'Prejijo de Presupuesto',
'quote_number_counter' => 'Numeración de Presupuestos',
'share_invoice_counter' => 'Compartir la numeración para presupuesto y facturación',
'invoice_issued_to' => 'Factura emitida a',
'invalid_counter' => 'Para evitar posibles conflictos, por favor crea un prefijo de facturación y de presupuesto.',
'mark_sent' => 'Marcar como enviado',
'gateway_help_1' => ':link para registrarse en Authorize.net.',
'gateway_help_2' => ':link para registrarse en Authorize.net.',
'gateway_help_17' => ':link para obtener su firma API de PayPal.',
'gateway_help_23' => 'Nota: utilizar su clave de API secreta, no es su clave de API publica.',
'gateway_help_27' => ':link para registrarse en TwoCheckout.',
'more_designs' => 'Más diseños',
'more_designs_title' => 'Diseños adicionales para factura',
'more_designs_cloud_header' => 'Pase a Pro para añadir más diseños de facturas',
'more_designs_cloud_text' => '',
'more_designs_self_host_header' => 'Obtenga 6 diseños más para facturas por sólo '.INVOICE_DESIGNS_PRICE, // comprobar
'more_designs_self_host_text' => '',
'buy' => 'Comprar',
'bought_designs' => 'Añadidos con exito los diseños de factura',
'sent' => 'Enviado',
'timesheets' => 'Parte de Horas',
'payment_title' => 'Introduzca su dirección de facturación y la infomración de su tarjeta de crédito',
'payment_cvv' => '*los tres últimos dígitos de la parte posterior de su tarjeta',
'payment_footer1' => '*La dirección de facturación debe coincidir con la de la tarjeta de crédito.',
'payment_footer2' => '*Por favor, haga clic en "Pagar ahora" sólo una vez - esta operación puede tardar hasta 1 minuto en procesarse.',
'vat_number' => 'NIF/CIF',
'id_number' => 'Número de Identificación',
'white_label_link' => 'Marca Blanca" ',
'white_label_text' => 'Obtener una licencia de marca blanca por'.WHITE_LABEL_PRICE.' para quitar la marca Invoice Ninja de la parte superior de las páginas del cliente.', // comprobar
'white_label_link' => 'Marca Blanca" ',
'bought_white_label' => 'Se ha conseguido con exito la licencia de Marca Blanca',
'white_labeled' => 'Marca Blanca',
'restore' => 'Restaurar',
'restore_invoice' => 'Restaurar Factura',
'restore_quote' => 'Restaurar Presupuesto',
'restore_client' => 'Restaurar Cliente',
'restore_credit' => 'Restaurar Pendiente',
'restore_payment' => 'Restaurar Pago',
'restored_invoice' => 'Factura restaurada con éxito',
'restored_quote' => 'Presupuesto restaurada con éxito',
'restored_client' => 'Cliente restaurada con éxito',
'restored_payment' => 'Pago restaurada con éxito',
'restored_credit' => 'Pendiente restaurada con éxito',
'reason_for_canceling' => 'Ayudenos a mejorar nuestro sitio diciendonos porque se va, Gracias',
'discount_percent' => 'Porcentaje',
'discount_amount' => 'Cantidad',
// Ver. 1.7.0
'invoice_history' => 'Historial de Facturas',
'quote_history' => 'Historial de Presupuestos',
'current_version' => 'Versión Actual',
'select_versiony' => 'Seleccione la Versión',
'view_history' => 'Ver Historial',
'edit_payment' => 'Editar Pago',
'updated_payment' => 'Pago actualizado correctamente',
'deleted' => 'Eliminado',
'restore_user' => 'Restaurar Usuario',
'restored_user' => 'Usuario restaurado correctamente',
'show_deleted_users' => 'Mostrar usuarios eliminados',
'email_templates' => 'Plantillas de Email',
'invoice_email' => 'Email de Facturas',
'payment_email' => 'Email de Pagos',
'quote_email' => 'Email de Presupuestos',
'reset_all' => 'Restablecer Todos',
'approve' => 'Aprobar',
'token_billing_type_id' => 'Token Billing', //¿?
'token_billing_help' => 'Permite almacenar tarjetas de crédito para posteriormente realizarles el cobro.',
'token_billing_1' => 'Deshabilitar',
'token_billing_2' => 'La casilla Opt-In se muestra pero no está seleccionada',
'token_billing_3' => 'La casilla Opt-Out se muestra y se selecciona',
'token_billing_4' => 'Siempre',
'token_billing_checkbox' => 'Almacenar datos de la tarjeta de crédito',
'view_in_stripe' => 'Ver en Stripe',
'use_card_on_file' => 'Use card on file', //??
'edit_payment_details' => 'Editar detalles de pago',
'token_billing' => 'Guardar datos de la tarjeta',
'token_billing_secure' => 'Los datos serán almacenados de forma segura por :stripe_link',
'support' => 'Soporte',
'contact_information' => 'Información de Contacto',
'256_encryption' => 'Encriptación de 256-Bit',
'amount_due' => 'Importe a pagar',
'billing_address' => 'Dirección de Envio',
'billing_method' => 'Método de facturación',
'order_overview' => 'Lista de pedidos',
'match_address' => '*La dirección debe coincidir con la dirección asociada a la tarjeta de crédito.',
'click_once' => '*Por favor, haga clic en "Pagar ahora" sólo una vez - la operación puede tardar hasta 1 minuto en ser procesada.',
'default_invoice_footer' => 'Establecer pie de página por defecto en factura',
'invoice_footer' => 'Pie de página de la factura',
'save_as_default_footer' => 'Guardar como pie de página por defecto',
'token_management' => 'Administrar Tokent', //?
'tokens' => 'Tokens',
'add_token' => 'Agregar Token',
'show_deleted_tokens' => 'Mostrar tokens eliminados',
'deleted_token' => 'Token eliminado correctamente',
'created_token' => 'Token creado correctamente',
'updated_token' => 'Token actualizado correctamente',
'edit_token' => 'Editar Token',
'delete_token' => 'Eliminar Token',
'token' => 'Token',
'add_gateway' => 'Agregar Pasarela',
'delete_gateway' => 'Eliminar Pasarela',
'edit_gateway' => 'Editar Pasarela',
'updated_gateway' => 'Pasarela actualizada correctamente',
'created_gateway' => 'Pasarela creada correctamente',
'deleted_gateway' => 'Pasarela eliminada correctamente',
'pay_with_paypal' => 'PayPal',
'pay_with_card' => 'Tarjeta de Crédito',
'change_password' => 'Cambiar Contraseña',
'current_password' => 'Contraseña Actual',
'new_password' => 'Nueva Contraseña',
'confirm_password' => 'Confirmar Contraseña',
'password_error_incorrect' => 'La contraseña actual es incorrecta.',
'password_error_invalid' => 'La nueva contraseña no es válida.',
'updated_password' => 'Contraseña actualizada correctamente',
'api_tokens' => 'API Tokens',
'users_and_tokens' => 'Usuarios & Tokens',
'account_login' => 'Iniciar Sesión',
'recover_password' => 'Recuperar su contraseña',
'forgot_password' => '¿Olvidaste tu contraseña?',
'email_address' => 'Dirección de Email',
'lets_go' => 'Acceder',
'password_recovery' => 'Recuperar Contraseña',
'send_email' => 'Enviar email',
'set_password' => 'Establecer Contraseña',
'converted' => 'Modificada',
//------Texto extraido -----------------------------------------------------------------------------------------
'<i>Manual entry</i>' => '<i>Entrada Manual</i>',
// Error
'Whoops, looks like something went wrong.' => 'Vaya, parece que algo salió mal',
'Sorry, the page you are looking for could not be found.' => 'Lo sentimos, la página que está buscando no se pudo encontrar.',
);

View File

@ -0,0 +1,111 @@
<?php
return array(
/*
|--------------------------------------------------------------------------
| Validation Language Lines
|--------------------------------------------------------------------------
|
| The following language lines contain the default error messages used by
| the validator class. Some of these rules have multiple versions such
| such as the size rules. Feel free to tweak each of these messages.
|
*/
"accepted" => ":attribute debe ser aceptado.",
"active_url" => ":attribute no es una URL válida.",
"after" => ":attribute debe ser una fecha posterior a :date.",
"alpha" => ":attribute solo debe contener letras.",
"alpha_dash" => ":attribute solo debe contener letras, números y guiones.",
"alpha_num" => ":attribute solo debe contener letras y números.",
"array" => ":attribute debe ser un conjunto.",
"before" => ":attribute debe ser una fecha anterior a :date.",
"between" => array(
"numeric" => ":attribute tiene que estar entre :min - :max.",
"file" => ":attribute debe pesar entre :min - :max kilobytes.",
"string" => ":attribute tiene que tener entre :min - :max caracteres.",
"array" => ":attribute tiene que tener entre :min - :max ítems.",
),
"confirmed" => "La confirmación de :attribute no coincide.",
"date" => ":attribute no es una fecha válida.",
"date_format" => ":attribute no corresponde al formato :format.",
"different" => ":attribute y :other deben ser diferentes.",
"digits" => ":attribute debe tener :digits dígitos.",
"digits_between" => ":attribute debe tener entre :min y :max dígitos.",
"email" => ":attribute no es un correo válido",
"exists" => ":attribute es inválido.",
"image" => ":attribute debe ser una imagen.",
"in" => ":attribute es inválido.",
"integer" => ":attribute debe ser un número entero.",
"ip" => ":attribute debe ser una dirección IP válida.",
"max" => array(
"numeric" => ":attribute no debe ser mayor a :max.",
"file" => ":attribute no debe ser mayor que :max kilobytes.",
"string" => ":attribute no debe ser mayor que :max caracteres.",
"array" => ":attribute no debe tener más de :max elementos.",
),
"mimes" => ":attribute debe ser un archivo con formato: :values.",
"min" => array(
"numeric" => "El tamaño de :attribute debe ser de al menos :min.",
"file" => "El tamaño de :attribute debe ser de al menos :min kilobytes.",
"string" => ":attribute debe contener al menos :min caracteres.",
"array" => ":attribute debe tener al menos :min elementos.",
),
"not_in" => ":attribute es inválido.",
"numeric" => ":attribute debe ser numérico.",
"regex" => "El formato de :attribute es inválido.",
"required" => "El campo :attribute es obligatorio.",
"required_if" => "El campo :attribute es obligatorio cuando :other es :value.",
"required_with" => "El campo :attribute es obligatorio cuando :values está presente.",
"required_with_all" => "The :attribute field is required when :values is present.",
"required_without" => "El campo :attribute es obligatorio cuando :values no está presente.",
"required_without_all" => "The :attribute field is required when none of :values are present.",
"same" => ":attribute y :other deben coincidir.",
"size" => array(
"numeric" => "El tamaño de :attribute debe ser :size.",
"file" => "El tamaño de :attribute debe ser :size kilobytes.",
"string" => ":attribute debe contener :size caracteres.",
"array" => ":attribute debe contener :size elementos.",
),
"unique" => ":attribute ya ha sido registrado.",
"url" => "El formato :attribute es inválido.",
"positive" => ":attribute debe ser mayor que cero.",
"has_credit" => "el cliente no tiene crédito suficiente.",
"positive" => "The :attribute must be greater than zero.",
"has_credit" => "The client does not have enough credit.",
"notmasked" => "The values are masked",
/*
|--------------------------------------------------------------------------
| Custom Validation Language Lines
|--------------------------------------------------------------------------
|
| Here you may specify custom validation messages for attributes using the
| convention "attribute.rule" to name the lines. This makes it quick to
| specify a specific custom language line for a given attribute rule.
|
*/
'custom' => array(
'attribute-name' => array(
'rule-name' => 'custom-message',
),
),
/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/
'attributes' => array(),
);

View File

@ -0,0 +1,21 @@
<script type="application/ld+json">
{
"@context":"http://schema.org",
"@type":"EmailMessage",
"description":"Confirm your Invoice Ninja account",
"action":
{
"@type":"ConfirmAction",
"name":"Confirm account",
"handler": {
"@type": "HttpActionHandler",
"url": "{{{ URL::to("user/confirm/{$user->confirmation_code}") }}}"
},
"publisher": {
"@type": "Organization",
"name": "Invoice Ninja",
"url": "{{{ NINJA_WEB_URL }}}"
}
}
}
</script>

View File

@ -1,27 +1,7 @@
<html>
<body>
@if (!$invitationMessage)
<script type="application/ld+json">
{
"@context":"http://schema.org",
"@type":"EmailMessage",
"description":"Confirm your Invoice Ninja account",
"action":
{
"@type":"ConfirmAction",
"name":"Confirm account",
"handler": {
"@type": "HttpActionHandler",
"url": "{{{ URL::to("user/confirm/{$user->confirmation_code}") }}}"
},
"publisher": {
"@type": "Organization",
"name": "Invoice Ninja",
"url": "{{{ NINJA_WEB_URL }}}"
}
}
}
</script>
@if (false && !$invitationMessage)
@include('emails.confirm_action', ['user' => $user])
@endif
<h1>{{ trans('texts.confirmation_header') }}</h1>

View File

@ -1,6 +1,8 @@
<html>
<body>
@include('emails.view_action', ['link' => $link, 'entityType' => $entityType])
@if (false)
@include('emails.view_action', ['link' => $link, 'entityType' => $entityType])
@endif
{!! $body !!}
</body>
</html>

View File

@ -4,7 +4,9 @@
<meta charset="utf-8">
</head>
<body>
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@if (false)
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@endif
{{ trans('texts.email_salutation', ['name' => $userName]) }} <p/>
{{ trans("texts.notification_{$entityType}_paid", ['amount' => $paymentAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }} <p/>

View File

@ -4,7 +4,9 @@
<meta charset="utf-8">
</head>
<body>
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@if (false)
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@endif
{{ trans('texts.email_salutation', ['name' => $userName]) }} <p/>
{{ trans("texts.notification_{$entityType}_sent", ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }} <p/>

View File

@ -4,7 +4,9 @@
<meta charset="utf-8">
</head>
<body>
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@if (false)
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@endif
{{ trans('texts.email_salutation', ['name' => $userName]) }} <p/>
{{ trans("texts.notification_{$entityType}_viewed", ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }} <p/>

View File

@ -4,7 +4,9 @@
<meta charset="utf-8">
</head>
<body>
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@if (false)
@include('emails.view_action', ['link' => $invoiceLink, 'entityType' => $entityType])
@endif
{{ trans('texts.email_salutation', ['name' => $userName]) }} <p/>
{{ trans("texts.notification_{$entityType}_approved", ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }} <p/>