diff --git a/.gitignore b/.gitignore
index 8091b7cec6bf..dc691e6fbef4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,6 @@
/app/config/ubuntu
/app/config/packages/anahkiasen/rocketeer/
/app/storage
-/public/logo
/public/build
/public/vendor
/bootstrap/compiled.php
diff --git a/README.md b/README.md
index 1be56f78a9f5..a62690ee93a0 100644
--- a/README.md
+++ b/README.md
@@ -6,12 +6,13 @@
Most online invoicing sites are expensive. They shouldn't be. The aim of this project is to provide a free, open-source alternative. Additionally, the hope is the codebase will serve as a sample site for Laravel as well as other JavaScript technologies.
-The high level instructions for setting up the site are below but there's also a [setup guide](http://hillelcoren.com/invoice-ninja/laravel-ubuntu-virtualbox/). For discussion of the code please use the [Google Group](https://groups.google.com/d/forum/invoiceninja).
+The high level instructions for setting up the site are below but there's also a [setup guide](http://hillelcoren.com/invoice-ninja/laravel-ubuntu-virtualbox/). If you'd like to translate the site please use [caouecs/Laravel4-long](https://github.com/caouecs/Laravel4-lang) for the starter files.
-For updates follow [@invoiceninja](https://twitter.com/invoiceninja) or join the [Facebook Group](https://www.facebook.com/invoiceninja).
+For updates follow [@invoiceninja](https://twitter.com/invoiceninja) or join the [Facebook Group](https://www.facebook.com/invoiceninja). For discussion of the code please use the [Google Group](https://groups.google.com/d/forum/invoiceninja).
Site design by [kantorp-wegl.in](http://kantorp-wegl.in/)
+
### Features
* Core application built using Laravel 4.1
* Invoice PDF generation directly in the browser
diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php
index 48b9eace5ddc..fb5a3731f806 100755
--- a/app/controllers/AccountController.php
+++ b/app/controllers/AccountController.php
@@ -61,6 +61,84 @@ class AccountController extends \BaseController {
return Redirect::to('invoices/create');
}
+ public function enableProPlan()
+ {
+ if (Auth::user()->isPro())
+ {
+ return Redirect::to('/dashboard');
+ }
+
+ $account = Auth::user()->account;
+
+ $ninjaAccount = $this->getNinjaAccount();
+ $ninjaClient = $this->getNinjaClient($ninjaAccount);
+
+
+
+ }
+
+ private function getNinjaAccount()
+ {
+ $account = Account::whereAccountKey(NINJA_ACCOUNT_KEY)->first();
+
+ if ($account)
+ {
+ return $account;
+ }
+ else
+ {
+ $account = new Account();
+ $account->name = 'Invoice Ninja';
+ $account->work_email = 'contact@invoiceninja.com';
+ $account->work_phone = '(800) 763-1948';
+ $account->account_key = NINJA_ACCOUNT_KEY;
+ $account->save();
+
+ $random = str_random(RANDOM_KEY_LENGTH);
+
+ $user = new User();
+ $user->email = 'contact@invoiceninja.com';
+ $user->password = $random;
+ $user->password_confirmation = $random;
+ $user->username = $random;
+ $user->notify_sent = false;
+ $user->notify_paid = false;
+ $account->users()->save($user);
+ }
+
+ return $account;
+ }
+
+ private function getNinjaClient($ninjaAccount)
+ {
+ $client = Client::whereAccountId($ninjaAccount->id)->wherePublicId(Auth::user()->account_id)->first();
+
+ if ($client)
+ {
+ return $client;
+ }
+ else
+ {
+ $client = new Client;
+ $client->public_id = Auth::user()->account_id;
+ $client->user_id = $ninjaAccount->users()->first()->id;
+ foreach (['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'country_id', 'work_phone'] as $field)
+ {
+ $client->$field = Auth::user()->account->$field;
+ }
+ $ninjaAccount->clients()->save($client);
+
+ $contact = new Contact;
+ $contact->user_id = $ninjaAccount->users()->first()->id;
+ $contact->is_primary = true;
+ foreach (['first_name', 'last_name', 'email', 'phone'] as $field)
+ {
+ $contact->$field = Auth::user()->$field;
+ }
+ $client->contacts()->save($contact);
+ }
+ }
+
public function setTrashVisible($entityType, $visible)
{
Session::put('show_trash', $visible == 'true');
@@ -191,30 +269,26 @@ class AccountController extends \BaseController {
private function export()
{
- $output = fopen("php://output",'w') or die("Can't open php://output");
- header("Content-Type:application/csv");
- header("Content-Disposition:attachment;filename=export.csv");
+ $output = fopen('php://output','w') or Utils::fatalError();
+ header('Content-Type:application/csv');
+ header('Content-Disposition:attachment;filename=export.csv');
- $clients = Client::where('account_id','=',Auth::user()->account_id)->get();
+ $clients = Client::scope()->get();
AccountController::exportData($output, $clients->toArray());
- $contacts = DB::table('contacts')->whereIn('client_id', function($query){
- $query->select('client_id')->from('clients')->where('account_id','=',Auth::user()->account_id);
- })->get();
- AccountController::exportData($output, Utils::toArray($contacts));
-
- $invoices = Invoice::where('account_id','=',Auth::user()->account_id)->get();
- AccountController::exportData($output, $invoices->toArray());
+ $contacts = Contact::scope()->get();
+ AccountController::exportData($output, $contacts->toArray());
- $invoiceItems = DB::table('invoice_items')->whereIn('invoice_id', function($query){
- $query->select('invoice_id')->from('invoices')->where('account_id','=',Auth::user()->account_id);
- })->get();
- AccountController::exportData($output, Utils::toArray($invoiceItems));
+ $invoices = Invoice::scope()->get();
+ AccountController::exportData($output, $invoices->toArray());
- $payments = Payment::where('account_id','=',Auth::user()->account_id)->get();
+ $invoiceItems = InvoiceItem::scope()->get();
+ AccountController::exportData($output, $invoiceItems->toArray());
+
+ $payments = Payment::scope()->get();
AccountController::exportData($output, $payments->toArray());
- $credits = Credit::where('account_id','=',Auth::user()->account_id)->get();
+ $credits = Credit::scope()->get();
AccountController::exportData($output, $credits->toArray());
fclose($output);
@@ -331,14 +405,21 @@ class AccountController extends \BaseController {
Activity::createClient($client);
}
- $message = Utils::pluralize('Successfully created ? client', $count);
+ $message = Utils::pluralize('created_client', $count);
Session::flash('message', $message);
return Redirect::to('clients');
}
private function mapFile()
- {
+ {
$file = Input::file('file');
+
+ if ($file == null)
+ {
+ Session::flash('error', trans('texts.select_file'));
+ return Redirect::to('company/import_export');
+ }
+
$name = $file->getRealPath();
require_once(app_path().'/includes/parsecsv.lib.php');
@@ -348,7 +429,8 @@ class AccountController extends \BaseController {
if (count($csv->data) + Client::scope()->count() > MAX_NUM_CLIENTS)
{
- Session::flash('error', "Sorry, this wll exceed the limit of " . MAX_NUM_CLIENTS . " clients");
+ $message = Utils::pluralize('limit_clients', MAX_NUM_CLIENTS);
+ Session::flash('error', $message);
return Redirect::to('company/import_export');
}
@@ -452,7 +534,7 @@ class AccountController extends \BaseController {
$user->notify_paid = Input::get('notify_paid');
$user->save();
- Session::flash('message', 'Successfully updated settings');
+ Session::flash('message', trans('texts.updated_settings'));
return Redirect::to('company/notifications');
}
@@ -515,7 +597,7 @@ class AccountController extends \BaseController {
$account->account_gateways()->save($accountGateway);
}
- Session::flash('message', 'Successfully updated settings');
+ Session::flash('message', trans('texts.updated_settings'));
return Redirect::to('company/payments');
}
}
@@ -574,7 +656,7 @@ class AccountController extends \BaseController {
Event::fire('user.refresh');
- Session::flash('message', 'Successfully updated details');
+ Session::flash('message', trans('texts.updated_settings'));
return Redirect::to('company/details');
}
}
@@ -583,7 +665,7 @@ class AccountController extends \BaseController {
File::delete('logo/' . Auth::user()->account->account_key . '.jpg');
- Session::flash('message', 'Successfully removed logo');
+ Session::flash('message', trans('texts.removed_logo'));
return Redirect::to('company/details');
}
diff --git a/app/controllers/ClientController.php b/app/controllers/ClientController.php
index 0cfa7f649cc0..a8238e1f2462 100755
--- a/app/controllers/ClientController.php
+++ b/app/controllers/ClientController.php
@@ -229,17 +229,16 @@ class ClientController extends \BaseController {
if ($publicId)
{
- Session::flash('message', 'Successfully updated client');
+ Session::flash('message', trans('texts.updated_client'));
}
else
{
Activity::createClient($client);
- Session::flash('message', 'Successfully created client');
+ Session::flash('message', trans('texts.created_client'));
}
return Redirect::to('clients/' . $client->public_id);
}
-
}
public function bulk()
@@ -248,7 +247,7 @@ class ClientController extends \BaseController {
$ids = Input::get('id') ? Input::get('id') : Input::get('ids');
$count = $this->clientRepo->bulk($ids, $action);
- $message = Utils::pluralize('Successfully '.$action.'d ? client', $count);
+ $message = Utils::pluralize($action.'d_client', $count);
Session::flash('message', $message);
return Redirect::to('clients');
diff --git a/app/controllers/CreditController.php b/app/controllers/CreditController.php
index 1b9ca45c1fa5..b2a44086853c 100755
--- a/app/controllers/CreditController.php
+++ b/app/controllers/CreditController.php
@@ -121,7 +121,7 @@ class CreditController extends \BaseController {
{
$this->creditRepo->save($publicId, Input::all());
- $message = $publicId ? 'Successfully updated credit' : 'Successfully created credit';
+ $message = trans('texts.created_credit');
Session::flash('message', $message);
return Redirect::to('clients/' . Input::get('client'));
}
@@ -135,7 +135,7 @@ class CreditController extends \BaseController {
if ($count > 0)
{
- $message = Utils::pluralize('Successfully '.$action.'d ? credit', $count);
+ $message = Utils::pluralize($action.'d_credit', $count);
Session::flash('message', $message);
}
diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php
index 1a344c9245a2..4a5c047a01e0 100755
--- a/app/controllers/HomeController.php
+++ b/app/controllers/HomeController.php
@@ -33,6 +33,15 @@ class HomeController extends BaseController {
{
return View::make('public.terms');
}
+ public function showFaq()
+ {
+ return View::make('public.faq');
+ }
+ public function showFeatures()
+ {
+ return View::make('public.features');
+ }
+
public function doContactUs()
{
@@ -46,9 +55,10 @@ class HomeController extends BaseController {
'text' => $message
];
- $this->mailer->sendTo(CONTACT_EMAIL, CONTACT_EMAIL, CONTACT_NAME, 'Invoice Ninja Feedback', 'contact', $data);
+ $this->mailer->sendTo(CONTACT_EMAIL, CONTACT_EMAIL, CONTACT_NAME, 'Invoice Ninja Feedback', 'contact', $data);
- Session::flash('message', 'Successfully sent message');
+ $message = trans('texts.sent_message');
+ Session::flash('message', $message);
return Redirect::to('/contact');
}
diff --git a/app/controllers/InvoiceController.php b/app/controllers/InvoiceController.php
index 37beae47b3b0..1494c077147e 100755
--- a/app/controllers/InvoiceController.php
+++ b/app/controllers/InvoiceController.php
@@ -132,8 +132,11 @@ class InvoiceController extends \BaseController {
return View::make('invoices.deleted');
}
- Activity::viewInvoice($invitation);
- Event::fire('invoice.viewed', $invoice);
+ if (!Auth::check() || Auth::user()->account_id != $invoice->account_id)
+ {
+ Activity::viewInvoice($invitation);
+ Event::fire('invoice.viewed', $invoice);
+ }
$client->account->loadLocalizationSettings();
@@ -207,12 +210,6 @@ class InvoiceController extends \BaseController {
public static function getViewModel()
{
- // Temporary fix to let users know to re-upload their logos for higher res
- if (Auth::user()->account->getLogoHeight() == 80)
- {
- Session::flash('warning', "We've increased the logo resolution in the PDF. Please re-upload your logo to take advantage of it.");
- }
-
return [
'account' => Auth::user()->account,
'products' => Product::scope()->orderBy('id')->get(array('product_key','notes','cost','qty')),
@@ -262,7 +259,7 @@ class InvoiceController extends \BaseController {
if ($errors = $this->invoiceRepo->getErrors($invoice))
{
- Session::flash('error', 'Please make sure to select a client and correct any errors');
+ Session::flash('error', trans('texts.invoice_error'));
return Redirect::to('invoices/create')
->withInput()->withErrors($errors);
@@ -314,12 +311,12 @@ class InvoiceController extends \BaseController {
}
}
- $message = '';
+ $message = trans($publicId ? 'texts.updated_invoice' : 'texts.created_invoice');
if ($input->invoice->client->public_id == '-1')
{
- $message = ' and created client';
- $url = URL::to('clients/' . $client->public_id);
+ $message = $message . ' ' . trans('texts.and_created_client');
+ $url = URL::to('clients/' . $client->public_id);
Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT, $url);
}
@@ -332,25 +329,18 @@ class InvoiceController extends \BaseController {
if (Auth::user()->confirmed)
{
$this->mailer->sendInvoice($invoice);
- Session::flash('message', 'Successfully emailed invoice'.$message);
+ Session::flash('message', $message);
}
else
{
- Session::flash('message', 'Successfully saved invoice'.$message);
-
- if (Auth::user()->registered)
- {
- Session::flash('error', 'Please confirm your email address');
- }
- else
- {
- Session::flash('error', 'Please sign up to email an invoice');
- }
+ $errorMessage = trans(Auth::user()->registered ? 'texts.confirmation_required' : 'texts.registration_required');
+ Session::flash('error', $errorMessage);
+ Session::flash('message', $message);
}
}
else
{
- Session::flash('message', 'Successfully saved invoice'.$message);
+ Session::flash('message', $message);
}
$url = 'invoices/' . $invoice->public_id . '/edit';
@@ -431,7 +421,7 @@ class InvoiceController extends \BaseController {
$clone->invoice_items()->save($cloneItem);
}
- Session::flash('message', 'Successfully cloned invoice');
+ Session::flash('message', trans('texts.cloned_invoice'));
return Redirect::to('invoices/' . $clone->public_id);
}
}
\ No newline at end of file
diff --git a/app/controllers/PaymentController.php b/app/controllers/PaymentController.php
index ff9f763d980f..d05e6a6a113a 100755
--- a/app/controllers/PaymentController.php
+++ b/app/controllers/PaymentController.php
@@ -327,7 +327,7 @@ class PaymentController extends \BaseController
Event::fire('invoice.paid', $payment);
- Session::flash('message', 'Successfully applied payment');
+ Session::flash('message', trans('texts.applied_payment'));
return Redirect::to('view/' . $payment->invitation->invitation_key);
}
else if ($response->isRedirect())
@@ -362,7 +362,7 @@ class PaymentController extends \BaseController
Event::fire('invoice.paid', $payment);
- Session::flash('message', 'Successfully applied payment');
+ Session::flash('message', trans('texts.applied_payment'));
return Redirect::to('view/' . $payment->invitation->invitation_key);
}
else
@@ -374,7 +374,9 @@ class PaymentController extends \BaseController
}
catch (\Exception $e)
{
- Session::flash('error', $e->getMessage());
+ $errorMessage = trans('texts.payment_error');
+ Session::flash('error', $errorMessage);
+ Utils::logError($e->getMessage());
return Redirect::to('payment/' . $invitationKey)
->withInput();
}
@@ -431,19 +433,23 @@ class PaymentController extends \BaseController
Event::fire('invoice.paid', $payment);
- Session::flash('message', 'Successfully applied payment');
+ Session::flash('message', trans('texts.applied_payment'));
return Redirect::to('view/' . $invitation->invitation_key);
}
else
{
- Session::flash('error', $response->getMessage());
- return Utils::fatalError('Sorry, there was an error processing your payment. Please try again later.
', $response->getMessage());
+ $errorMessage = trans('texts.payment_error') . "\n\n" . $response->getMessage();
+ Session::flash('error', $errorMessage);
+ Utils::logError($errorMessage);
+ return Redirect::to('view/' . $invitation->invitation_key);
}
}
catch (\Exception $e)
{
- Session::flash('error', $e->getMessage());
- return Utils::fatalError('Sorry, there was an error processing your payment. Please try again later.
', $e);
+ $errorMessage = trans('texts.payment_error');
+ Session::flash('error', $errorMessage);
+ Utils::logError($errorMessage . "\n\n" . $e->getMessage());
+ return Redirect::to('view/' . $invitation->invitation_key);
}
}
@@ -471,8 +477,7 @@ class PaymentController extends \BaseController
{
$this->paymentRepo->save($publicId, Input::all());
- $message = $publicId ? 'Successfully updated payment' : 'Successfully created payment';
- Session::flash('message', $message);
+ Session::flash('message', trans('texts.created_payment'));
return Redirect::to('clients/' . Input::get('client'));
}
}
@@ -485,11 +490,10 @@ class PaymentController extends \BaseController
if ($count > 0)
{
- $message = Utils::pluralize('Successfully '.$action.'d ? payment', $count);
+ $message = Utils::pluralize($action.'d_payment', $count);
Session::flash('message', $message);
}
return Redirect::to('payments');
}
-
}
\ No newline at end of file
diff --git a/app/controllers/UserController.php b/app/controllers/UserController.php
index e49828d85bbe..3af275b668b8 100755
--- a/app/controllers/UserController.php
+++ b/app/controllers/UserController.php
@@ -26,9 +26,9 @@ class UserController extends BaseController {
$user->force_pdfjs = true;
$user->save();
- Session::flash('message', 'Successfully updated PDF settings');
+ Session::flash('message', trans('texts.confide.updated_settings'));
- return Redirect::to('/invoices/create');
+ return Redirect::to('/dashboard');
}
/**
@@ -86,6 +86,7 @@ class UserController extends BaseController {
if( Confide::user() )
{
Event::fire('user.login');
+ Session::reflash();
$invoice = Invoice::scope()->orderBy('id', 'desc')->first();
@@ -95,7 +96,7 @@ class UserController extends BaseController {
}
else
{
- return Redirect::to('/invoices/create');
+ return Redirect::to('/dashboard');
}
}
else
@@ -137,7 +138,7 @@ class UserController extends BaseController {
// Check if there was too many login attempts
if( Confide::isThrottled( $input ) )
{
- $err_msg = Lang::get('confide::confide.alerts.too_many_attempts');
+ $err_msg = trans('texts.confide.too_many_attempts');
}
/*
elseif( $user->checkUserExists( $input ) and ! $user->isConfirmed( $input ) )
@@ -147,7 +148,7 @@ class UserController extends BaseController {
*/
else
{
- $err_msg = Lang::get('confide::confide.alerts.wrong_credentials');
+ $err_msg = trans('texts.confide.wrong_credentials');
}
return Redirect::action('UserController@login')
@@ -165,15 +166,13 @@ class UserController extends BaseController {
{
if ( Confide::confirm( $code ) )
{
- $notice_msg = Lang::get('confide::confide.alerts.confirmation');
- return Redirect::action('UserController@login')
- ->with( 'notice', $notice_msg );
+ $notice_msg = trans('texts.confide.confirmation');
+ return Redirect::action('UserController@login')->with( 'message', $notice_msg );
}
else
{
- $error_msg = Lang::get('confide::confide.alerts.wrong_confirmation');
- return Redirect::action('UserController@login')
- ->with( 'error', $error_msg );
+ $error_msg = trans('texts.confide.wrong_confirmation');
+ return Redirect::action('UserController@login')->with( 'error', $error_msg );
}
}
@@ -194,9 +193,9 @@ class UserController extends BaseController {
{
Confide::forgotPassword( Input::get( 'email' ) );
- $notice_msg = Lang::get('confide::confide.alerts.password_forgot');
- return Redirect::action('UserController@login')
- ->with( 'notice', $notice_msg );
+ $notice_msg = trans('texts.confide.password_forgot');
+ return Redirect::action('UserController@login')
+ ->with( 'notice', $notice_msg );
/*
@@ -241,15 +240,15 @@ class UserController extends BaseController {
// By passing an array with the token, password and confirmation
if( Confide::resetPassword( $input ) )
{
- $notice_msg = Lang::get('confide::confide.alerts.password_reset');
- return Redirect::action('UserController@login')
- ->with( 'notice', $notice_msg );
+ $notice_msg = trans('texts.confide.password_reset');
+ return Redirect::action('UserController@login')
+ ->with( 'notice', $notice_msg );
}
else
{
- $error_msg = Lang::get('confide::confide.alerts.wrong_password_reset');
- return Redirect::action('UserController@reset_password', array('token'=>$input['token']))
- ->withInput()
+ $error_msg = trans('texts.confide.wrong_password_reset');
+ return Redirect::action('UserController@reset_password', array('token'=>$input['token']))
+ ->withInput()
->with( 'error', $error_msg );
}
}
diff --git a/app/database/migrations/2014_04_03_191105_add_pro_plan.php b/app/database/migrations/2014_04_03_191105_add_pro_plan.php
new file mode 100644
index 000000000000..05f74ebdf40b
--- /dev/null
+++ b/app/database/migrations/2014_04_03_191105_add_pro_plan.php
@@ -0,0 +1,34 @@
+date('pro_plan_paid');
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('accounts', function($table)
+ {
+ $table->dropColumn('pro_plan_paid');
+ });
+ }
+
+}
diff --git a/app/filters.php b/app/filters.php
index 1cca8a301718..18ed154ca049 100755
--- a/app/filters.php
+++ b/app/filters.php
@@ -21,9 +21,14 @@ App::before(function($request)
}
}
- if (Auth::check())
- {
- App::setLocale(Auth::user()->getLocale());
+ if (Input::has('lang'))
+ {
+ App::setLocale(Input::get('lang'));
+ }
+ else if (Auth::check())
+ {
+ $locale = Session::get(SESSION_LOCALE, DEFUALT_LOCALE);
+ App::setLocale($locale);
}
});
diff --git a/app/lang/de/fields.php b/app/lang/de/fields.php
deleted file mode 100644
index d1f9dd7f1c57..000000000000
--- a/app/lang/de/fields.php
+++ /dev/null
@@ -1,54 +0,0 @@
- 'Organisation',
- 'name' => 'Name',
- 'website' => 'Webseite',
- 'work_phone' => 'Telefon',
- 'address' => 'Adresse',
- 'address1' => 'Straße',
- 'address2' => 'Adresszusatz',
- 'city' => 'Stadt',
- 'state' => 'Bundesland',
- 'postal_code' => 'Postleitzahl',
- 'country_id' => 'Land',
- 'contacts' => 'Kontakte',
- 'first_name' => 'Vorname',
- 'last_name' => 'Nachname',
- 'phone' => 'Telefon',
- 'email' => 'Email',
- 'additional_info' => 'Zusätzliche Info',
- 'payment_terms' => 'Zahlungsbedingungen',
- 'currency_id' => 'Währung',
- 'size_id' => 'Größe',
- 'industry_id' => 'Kategorie',
- 'private_notes' => 'Notizen',
-
- // invoice
- 'invoice' => 'Rechnung',
- 'client' => 'Kunde',
- 'invoice_date' => 'Rechnungsdatum',
- 'due_date' => 'Fällig am',
- 'invoice_number' => 'Rechungsnummer',
- 'invoice_number_short' => 'Rechnung #',
- 'po_number' => 'Bestell Nummer',
- 'po_number_short' => 'BN #',
- 'frequency_id' => 'Wie oft',
- 'dicount' => 'Rabatt',
- 'taxes' => 'Steuern',
- 'tax' => 'Steuer',
- 'item' => 'Artikel',
- 'description' => 'Beschreibung',
- 'unit_cost' => 'Kosten pro Einheit',
- 'quantity' => 'Menge',
- 'line_total' => 'Summe',
- 'subtotal' => 'Zwischensumme',
- 'paid_to_date' => 'Zahlungsdatum',
- 'balance_due' => 'Rechnungsbetrag',
- 'invoice_design_id' => 'Design',
- 'terms' => 'Bedingungen',
- 'your_invoice' => 'Ihre Rechnung',
-
-);
diff --git a/app/lang/de/texts.php b/app/lang/de/texts.php
index b2b291ddaa6a..230c93a9118a 100644
--- a/app/lang/de/texts.php
+++ b/app/lang/de/texts.php
@@ -20,7 +20,7 @@ return array(
'phone' => 'Telefon',
'email' => 'Email',
'additional_info' => 'Zusätzliche Info',
- 'payment_terms' => 'Payment Terms',
+ 'payment_terms' => 'Zahlungsbedingungen',
'currency_id' => 'Währung',
'size_id' => 'Größe',
'industry_id' => 'Kategorie',
@@ -33,7 +33,7 @@ return array(
'due_date' => 'Fällig am',
'invoice_number' => 'Rechungsnummer',
'invoice_number_short' => 'Rechnung #',
- 'po_number' => 'Bestell Nummer',
+ 'po_number' => 'Bestellnummer',
'po_number_short' => 'BN #',
'frequency_id' => 'Wie oft',
'dicount' => 'Rabatt',
@@ -51,4 +51,247 @@ return array(
'terms' => 'Bedingungen',
'your_invoice' => 'Ihre Rechnung',
+ 'remove_contact' => 'Kontakt löschen',
+ 'add_contact' => 'Kontakt hinzufügen',
+ 'create_new_client' => 'Einen neuen Kunden erstellen',
+ 'edit_client_details' => 'Kundendetails bearbeiten',
+ 'enable' => 'Aktivieren',
+ 'learn_more' => 'Mehr erfahren',
+ 'manage_rates' => 'Steuersätze verwalten',
+ 'note_to_client' => 'Notiz an den Kunden',
+ 'invoice_terms' => 'Zahlungsbedingungen',
+ 'save_as_default_terms' => 'Als Standardbedingungen speichern',
+ 'download_pdf' => 'PDF herunterladen',
+ 'pay_now' => 'Jetzt bezahlen',
+ 'save_invoice' => 'Rechnung speichern',
+ 'clone_invoice' => 'Rechnung duplizieren',
+ 'archive_invoice' => 'Rechnung archivieren',
+ 'delete_invoice' => 'Rechnung löschen',
+ 'email_invoice' => 'Rechnung versenden',
+ 'enter_payment' => 'Zahlung eingeben',
+ 'tax_rates' => 'Steuersätze',
+ 'rate' => 'Satz',
+ 'settings' => 'Einstellungen',
+ 'enable_invoice_tax' => 'Enable specifying an invoice tax ',
+ 'enable_line_item_tax' => 'Enable specifying line item taxes ',
+
+ // navigation
+ 'dashboard' => 'Dashboard',
+ 'clients' => 'Kunden',
+ 'invoices' => 'Rechnungen',
+ 'payments' => 'Zahlungen',
+ 'credits' => 'Guthaben',
+ 'history' => 'Verlauf',
+ 'search' => 'Suche',
+ 'sign_up' => 'Anmeldung',
+ 'guest' => 'Gast',
+ 'company_details' => 'Firmendaten',
+ 'online_payments' => 'Online-Zahlungen',
+ 'notifications' => 'Benachrichtigungen',
+ 'import_export' => 'Import/Export',
+ 'done' => 'Erledigt',
+ 'save' => 'Speichern',
+ 'create' => 'Erstellen',
+ 'upload' => 'Hochladen',
+ 'import' => 'Importieren',
+ 'download' => 'Downloaden',
+ 'cancel' => 'Abbrechen',
+ 'provide_email' => 'Bitte gebe eine gültige E-Mail Adresse an',
+ 'powered_by' => 'Powered by',
+ 'no_items' => 'Keine Objekte',
+
+ // recurring invoices
+ 'recurring_invoices' => 'Wiederkehrende Rechnungen',
+ 'recurring_help' => '
Sende deinen Kunden automatisch die selbe Rechnung wöchentlich, zwei-monatlich, monatlich, vierteljährlich oder jährlich.
+ Benutze :MONTH, :QUARTER oder :YEAR für ein dynamisches Datum. Grundlegende Mathematik funktioniert genauso gut, zum Beispiel :MONTH-1.
+ Beispiel zu dynamischen Rechnungs-Variabeln:
+
+ "Fitnessstudio Mitgliedschaft für den Monat :MONTH" => "Fitnessstudio Mitgliedschaft für den Monat Juli"
+ ":YEAR+1 Jahresbeitrag" => "2015 Jahresbeitrag"
+ "Vorschusszahlung für :QUARTER+1" => "Vorschusszahlung für Q2"
+ ',
+
+ // dashboard
+ 'in_total_revenue' => 'Gesamtumsatz',
+ 'billed_client' => 'abgerechneter Kunde',
+ 'billed_clients' => 'abgerechnete Kunden',
+ 'active_client' => 'aktive Kunden',
+ 'active_clients' => 'aktive Kunden',
+ 'invoices_past_due' => 'Fällige Rechnungen',
+ 'upcoming_invoices' => 'Kommende Rechnungen',
+ 'average_invoice' => 'Durchschnittlicher Rechnungsbetrag',
+
+ // list pages
+ 'archive' => 'archivieren',
+ 'delete' => 'löschen',
+ 'archive_client' => 'Kunde archivieren',
+ 'delete_client' => 'Kunde löschen',
+ 'archive_payment' => 'Zahlung archivieren',
+ 'delete_payment' => 'Zahlung löschen',
+ 'archive_credit' => 'Guthaben archivieren',
+ 'delete_credit' => 'Guthaben löschen',
+ 'show_archived_deleted' => 'Zeige archivierte/gelöschte',
+ 'filter' => 'Filter',
+ 'new_client' => 'Neuer Kunde',
+ 'new_invoice' => 'Neue Rechnung',
+ 'new_payment' => 'Neue Zahlung',
+ 'new_credit' => 'Neues Guthaben',
+ 'contact' => 'Kontakt',
+ 'date_created' => 'Erstellungsdatum',
+ 'last_login' => 'Letzter Login',
+ 'balance' => 'Saldo',
+ 'action' => 'Aktion',
+ 'status' => 'Status',
+ 'invoice_total' => 'Rechnungsbetrag',
+ 'frequency' => 'Häufigkeit',
+ 'start_date' => 'Startdatum',
+ 'end_date' => 'Enddatum',
+ 'transaction_reference' => 'Abwicklungsreferenz',
+ 'method' => 'Verfahren',
+ 'payment_amount' => 'Zahlungsbetrag',
+ 'payment_date' => 'Zahlungsdatum',
+ 'credit_amount' => 'Guthabenbetrag',
+ 'credit_balance' => 'Guthabenstand',
+ 'credit_date' => 'Guthabendatum',
+ 'empty_table' => 'Es sind keine Daten vorhanden',
+ 'select' => 'Wählen',
+ 'edit_client' => 'Kunde bearbeiten',
+ 'edit_invoice' => 'Rechnung bearbeiten',
+
+ // client view page
+ 'create_invoice' => 'Rechnung bearbeiten',
+ 'enter_credit' => 'Guthaben eingeben',
+ 'last_logged_in' => 'Zuletzt eingeloggt',
+ 'details' => 'Details',
+ 'standing' => 'Aktueller Stand',
+ 'credit' => 'Guthaben',
+ 'activity' => 'Aktivität',
+ 'date' => 'Datum',
+ 'message' => 'Nachricht',
+ 'adjustment' => 'Anpassung',
+ 'are_you_sure' => 'Bist du dir sicher?',
+
+ // payment pages
+ 'payment_type_id' => 'Zahlungsart',
+ 'amount' => 'Betrag',
+
+ // account/company pages
+ 'work_email' => 'E-Mail',
+ 'language_id' => 'Sprache',
+ 'timezone_id' => 'Zeitzone',
+ 'date_format_id' => 'Datumsformat',
+ 'datetime_format_id' => 'Datums-/Zeitformat',
+ 'users' => 'Benutzer',
+ 'localization' => 'Lokalisierung',
+ 'remove_logo' => 'Logo entfernen',
+ 'logo_help' => 'Unterstützt: JPEG, GIF und PNG. Empfohlene Höhe: 120px',
+ 'payment_gateway' => 'Zahlungseingang',
+ 'gateway_id' => 'Provider',
+ 'email_notifications' => 'E-Mail Benachrichtigungen',
+ 'email_sent' => 'Benachrichtigen, wenn eine Rechnung versendet wurde',
+ 'email_viewed' => 'Benachrichtigen, wenn eine Rechnung betrachtet wurde',
+ 'email_paid' => 'Benachrichtigen, wenn eine Rechnung bezahlt wurde',
+ 'site_updates' => 'Seiten Updates',
+ 'custom_messages' => 'Benutzerdefinierte Nachrichten',
+ 'default_invoice_terms' => 'Standard Rechnungsbedingungen',
+ 'default_email_footer' => 'Standard E-Mail Signatur',
+ 'import_clients' => 'Importiere Kundendaten',
+ 'csv_file' => 'Wähle CSV Datei',
+ 'export_clients' => 'Exportiere Kundendaten',
+ 'select_file' => 'Bitte wähle eine Datei',
+ 'first_row_headers' => 'Benutze erste Zeile als Kopfzeile',
+ 'column' => 'Spalte',
+ 'sample' => 'Beispiel',
+ 'import_to' => 'Importieren nach',
+ 'client_will_create' => 'Kunde wird erstellt',
+ 'clients_will_create' => 'Kunden werden erstellt',
+
+ // application messages
+ 'created_client' => 'Kunde erfolgreich angelegt',
+ 'created_clients' => ':count Kunden erfolgreich angelegt',
+ 'updated_settings' => 'Einstellungen erfolgreich aktualisiert',
+ 'removed_logo' => 'Logo erfolgreich entfernt',
+ 'sent_message' => 'Nachricht erfolgreich versendet',
+ 'invoice_error' => 'Bitte stelle sicher, dass ein Kunde ausgewählt und alle Fehler behoben wurden',
+ 'limit_clients' => 'Entschuldige, das überschreitet das Limit von :count Kunden',
+ 'payment_error' => 'Es ist ein Fehler während der Zahlung aufgetreten. Bitte versuche es später noch einmal.',
+ 'registration_required' => 'Bitte melde dich an um eine Rechnung zu versenden',
+ 'confirmation_required' => 'Bitte bestätige deine E-Mail Adresse',
+
+ 'updated_client' => 'Kunde erfolgreich aktualisiert',
+ 'created_client' => 'Kunde erfolgreich erstellt',
+ 'archived_client' => 'Kunde erfolgreich archiviert',
+ 'archived_clients' => ':count Kunden erfolgreich archiviert',
+ 'deleted_client' => 'Kunde erfolgreich gelöscht',
+ 'deleted_clients' => ':count Kunden erfolgreich gelöscht',
+
+ 'updated_invoice' => 'Rechnung erfolgreich aktualisiert',
+ 'created_invoice' => 'Rechnung erfolgreich erstellt',
+ 'cloned_invoice' => 'Rechnung erfolgreich dupliziert',
+ 'emailed_invoice' => 'Rechnung erfolgreich versendet',
+ 'and_created_client' => 'und Kunde erstellt',
+ 'archived_invoice' => 'Guthaben erfolgreich archiviert',
+ 'archived_invoices' => ':count Guthaben erfolgreich archiviert',
+ 'deleted_invoice' => 'Guthaben erfolgreich gelöscht',
+ 'deleted_invoices' => ':count Guthaben erfolgreich gelöscht',
+
+ 'created_payment' => 'Zahlung erfolgreich erstellt',
+ 'archived_payment' => 'Zahlung erfolgreich archiviert',
+ 'archived_payments' => ':count Zahlungen erfolgreich archiviert',
+ 'deleted_payment' => 'Zahlung erfolgreich gelöscht',
+ 'deleted_payments' => ':count Zahlungen erfolgreich gelöscht',
+ 'applied_payment' => 'Zahlung erfolgreich angewandt',
+
+ 'created_credit' => 'Guthaben erfolgreich erstellt',
+ 'archived_credit' => 'Guthaben erfolgreich archiviert',
+ 'archived_credits' => ':count Guthaben erfolgreich archiviert',
+ 'deleted_credit' => 'Guthaben erfolgreich gelöscht',
+ 'deleted_credits' => ':count Guthaben erfolgreich gelöscht',
+
+ // Emails
+ 'confirmation_subject' => 'Invoice Ninja Konto Bestätigung',
+ 'confirmation_header' => 'Konto Bestätigung',
+ 'confirmation_message' => 'Bitte klicke auf den folgenden Link um dein Konto zu bestätigen.',
+ 'invoice_subject' => 'Neue Rechnung :invoice',
+ 'invoice_message' => 'Um Ihre Rechnung über :amount einzusehen, klicken Sie bitte auf den folgenden Link.',
+ 'payment_subject' => 'Zahlungseingang :invoice',
+ 'payment_message' => 'Vielen Dank für Ihre Zahlung von :amount.',
+ 'email_salutation' => 'Sehr geehrte/r :name,',
+ 'email_signature' => 'Freundliche Grüße,',
+ 'email_from' => 'Das InvoiceNinja Team',
+ 'user_email_footer' => 'Um deine E-Mail Benachrichtigungen anzupassen besuche bitte http://www.invoiceninja.com/company/notifications',
+ 'invoice_link_message' => 'Um deine Kundenrechnung anzuschauen, klicke auf den folgenden Link:',
+ 'notification_paid_subject' => 'Die Rechnung :invoice wurde von :client bezahlt',
+ 'notification_sent_subject' => 'Die Rechnung :invoice wurde an :client versendet',
+ 'notification_viewed_subject' => 'Die Rechnung :invoice wurde von :client angeschaut',
+ 'notification_paid' => 'Eine Zahlung von :amount wurde von :client bezüglich Rechnung :invoice getätigt.',
+ 'notification_sent' => 'Dem folgenden Kunden :client wurde die Rechnung :invoice über :amount zugesendet.',
+ 'notification_viewed' => 'Der folgende Kunde :client hat sich Rechnung :invoice über :amount angesehen.',
+ 'reset_password' => 'Du kannst dein Passwort zurücksetzen indem du auf den folgenden Link klickst:',
+ 'reset_password_footer' => 'Wenn du das Zurücksetzen des Passworts nicht beantragt hast benachrichtige bitte unseren Support: ' . CONTACT_EMAIL,
+
+ // Payment page
+ 'secure_payment' => 'Sichere Zahlung',
+ 'card_number' => 'Kartennummer',
+ 'expiration_month' => 'Ablaufmonat',
+ 'expiration_year' => 'Ablaufjahr',
+ 'cvv' => 'Kartenprüfziffer',
+
+ // Security alerts
+ 'confide' => array(
+ 'too_many_attempts' => 'Zu viele versuche. Bitte versuche es in ein paar Minuten erneut.',
+ 'wrong_credentials' => 'Falsche E-Mail Adresse oder falsches Passwort.',
+ 'confirmation' => 'Dein Konto wurde bestätigt!',
+ 'wrong_confirmation' => 'Falscher Bestätigungscode.',
+ 'password_forgot' => 'Weitere Informationen um das Passwort zurückzusetzen wurden dir per E-Mail zugeschickt.',
+ 'password_reset' => 'Dein Passwort wurde erfolgreich geändert.',
+ 'wrong_password_reset' => 'Ungültiges Passwort. Versuche es erneut',
+ ),
+
+ // Pro Plan
+ 'pro_plan' => [
+ 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the pro plan',
+ 'remove_logo_link' => 'Click here',
+ ],
+
);
diff --git a/app/lang/en/texts.php b/app/lang/en/texts.php
index a4551f1b1dcf..f8614863490e 100644
--- a/app/lang/en/texts.php
+++ b/app/lang/en/texts.php
@@ -62,6 +62,7 @@ return array(
'invoice_terms' => 'Invoice terms',
'save_as_default_terms' => 'Save as default terms',
'download_pdf' => 'Download PDF',
+ 'pay_now' => 'Pay Now',
'save_invoice' => 'Save Invoice',
'clone_invoice' => 'Clone Invoice',
'archive_invoice' => 'Archive Invoice',
@@ -89,6 +90,11 @@ return array(
'notifications' => 'Notifications',
'import_export' => 'Import/Export',
'done' => 'Done',
+ 'save' => 'Save',
+ 'create' => 'Create',
+ 'upload' => 'Upload',
+ 'import' => 'Import',
+ 'download' => 'Download',
'cancel' => 'Cancel',
'provide_email' => 'Please provide a valid email address',
'powered_by' => 'Powered by',
@@ -151,4 +157,141 @@ return array(
'select' => 'Select',
'edit_client' => 'Edit Client',
'edit_invoice' => 'Edit Invoice',
+
+ // client view page
+ 'create_invoice' => 'Create Invoice',
+ 'enter_credit' => 'Enter Credit',
+ 'last_logged_in' => 'Last logged in',
+ 'details' => 'Details',
+ 'standing' => 'Standing',
+ 'credit' => 'Credit',
+ 'activity' => 'Activity',
+ 'date' => 'Date',
+ 'message' => 'Message',
+ 'adjustment' => 'Adjustment',
+ 'are_you_sure' => 'Are you sure?',
+
+ // payment pages
+ 'payment_type_id' => 'Payment type',
+ 'amount' => 'Amount',
+
+ // account/company pages
+ 'work_email' => 'Email',
+ 'language_id' => 'Language',
+ 'timezone_id' => 'Timezone',
+ 'date_format_id' => 'Date format',
+ 'datetime_format_id' => 'Date/Time Format',
+ 'users' => 'Users',
+ 'localization' => 'Localization',
+ 'remove_logo' => 'Remove logo',
+ 'logo_help' => 'Supported: JPEG, GIF and PNG. Recommended height: 120px',
+ 'payment_gateway' => 'Payment Gateway',
+ 'gateway_id' => 'Provider',
+ 'email_notifications' => 'Email Notifications',
+ 'email_sent' => 'Email me when an invoice is sent ',
+ 'email_viewed' => 'Email me when an invoice is viewed ',
+ 'email_paid' => 'Email me when an invoice is paid ',
+ 'site_updates' => 'Site Updates',
+ 'custom_messages' => 'Custom Messages',
+ 'default_invoice_terms' => 'Set default invoice terms',
+ 'default_email_footer' => 'Set default email signature',
+ 'import_clients' => 'Import Client Data',
+ 'csv_file' => 'Select CSV file',
+ 'export_clients' => 'Export Client Data',
+ 'select_file' => 'Please select a file',
+ 'first_row_headers' => 'Use first row as headers',
+ 'column' => 'Column',
+ 'sample' => 'Sample',
+ 'import_to' => 'Import to',
+ 'client_will_create' => 'client will be created',
+ 'clients_will_create' => 'clients will be created',
+
+ // application messages
+ 'created_client' => 'Successfully created client',
+ 'created_clients' => 'Successfully created :count clients',
+ 'updated_settings' => 'Successfully updated settings',
+ 'removed_logo' => 'Successfully removed logo',
+ 'sent_message' => 'Successfully sent message',
+ 'invoice_error' => 'Please make sure to select a client and correct any errors',
+ 'limit_clients' => 'Sorry, this will exceed the limit of :count clients',
+ 'payment_error' => 'There was an error processing your payment. Please try again later.',
+ 'registration_required' => 'Please sign up to email an invoice',
+ 'confirmation_required' => 'Please confirm your email address',
+
+ 'updated_client' => 'Successfully updated client',
+ 'created_client' => 'Successfully created client',
+ 'archived_client' => 'Successfully archived client',
+ 'archived_clients' => 'Successfully archived :count clients',
+ 'deleted_client' => 'Successfully deleted client',
+ 'deleted_clients' => 'Successfully deleted :count clients',
+
+ 'updated_invoice' => 'Successfully updated invoice',
+ 'created_invoice' => 'Successfully created invoice',
+ 'cloned_invoice' => 'Successfully cloned invoice',
+ 'emailed_invoice' => 'Successfully emailed invoice',
+ 'and_created_client' => 'and created client',
+ 'archived_invoice' => 'Successfully archived credit',
+ 'archived_invoices' => 'Successfully archived :count credits',
+ 'deleted_invoice' => 'Successfully deleted credit',
+ 'deleted_invoices' => 'Successfully deleted :count credits',
+
+ 'created_payment' => 'Successfully created payment',
+ 'archived_payment' => 'Successfully archived payment',
+ 'archived_payments' => 'Successfully archived :count payments',
+ 'deleted_payment' => 'Successfully deleted payment',
+ 'deleted_payments' => 'Successfully deleted :count payments',
+ 'applied_payment' => 'Successfully applied payment',
+
+ 'created_credit' => 'Successfully created credit',
+ 'archived_credit' => 'Successfully archived credit',
+ 'archived_credits' => 'Successfully archived :count credits',
+ 'deleted_credit' => 'Successfully deleted credit',
+ 'deleted_credits' => 'Successfully deleted :count credits',
+
+ // Emails
+ 'confirmation_subject' => 'Invoice Ninja Account Confirmation',
+ 'confirmation_header' => 'Account Confirmation',
+ 'confirmation_message' => 'Please access the link below to confirm your account.',
+ 'invoice_subject' => 'New invoice :invoice',
+ 'invoice_message' => 'To view your invoice for :amount, click the link below.',
+ 'payment_subject' => 'Payment Received :invoice',
+ 'payment_message' => 'Thank you for your payment of :amount.',
+ 'email_salutation' => 'Dear :name,',
+ 'email_signature' => 'Regards,',
+ 'email_from' => 'The InvoiceNinja Team',
+ 'user_email_footer' => 'To adjust your email notification settings please visit http://www.invoiceninja.com/company/notifications',
+ 'invoice_link_message' => 'To view your client invoice click the link below:',
+ 'notification_paid_subject' => 'Invoice :invoice was paid by :client',
+ 'notification_sent_subject' => 'Invoice :invoice was sent to :client',
+ 'notification_viewed_subject' => 'Invoice :invoice was viewed by :client',
+ 'notification_paid' => 'A payment of :amount was made by client :client towards Invoice :invoice.',
+ 'notification_sent' => 'The following client :client was emailed Invoice :invoice for :amount.',
+ 'notification_viewed' => 'The following client :client viewed Invoice :invoice for :amount.',
+ 'reset_password' => 'You can reset your account password by clicking the following link:',
+ 'reset_password_footer' => 'If you did not request this password reset please email our support: ' . CONTACT_EMAIL,
+
+ // Payment page
+ 'secure_payment' => 'Secure Payment',
+ 'card_number' => 'Card number',
+ 'expiration_month' => 'Expiration month',
+ 'expiration_year' => 'Expiration year',
+ 'cvv' => 'CVV',
+
+ // Security alerts
+ 'confide' => [
+ 'too_many_attempts' => 'Too many attempts. Try again in few minutes.',
+ 'wrong_credentials' => 'Incorrect email or password.',
+ 'confirmation' => 'Your account has been confirmed!',
+ 'wrong_confirmation' => 'Wrong confirmation code.',
+ 'password_forgot' => 'The information regarding password reset was sent to your email.',
+ 'password_reset' => 'Your password has been changed successfully.',
+ 'wrong_password_reset' => 'Invalid password. Try again',
+ ],
+
+ // Pro Plan
+ 'pro_plan' => [
+ 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the pro plan',
+ 'remove_logo_link' => 'Click here',
+ ],
+
);
\ No newline at end of file
diff --git a/app/lang/es/fields.php b/app/lang/es/fields.php
deleted file mode 100644
index c5761739d705..000000000000
--- a/app/lang/es/fields.php
+++ /dev/null
@@ -1,52 +0,0 @@
- 'Organización',
- 'name' => 'Nombre',
- 'website' => 'Página Web',
- 'work_phone' => 'Teléfono',
- 'address' => 'Dirección',
- 'address1' => 'Calle',
- 'address2' => 'Bloq/Pta',
- 'city' => 'Ciudad',
- 'state' => 'Región/Provincia',
- 'postal_code' => 'Código Postal',
- 'country_id' => 'País',
- 'contacts' => 'Contactos',
- 'first_name' => 'Nombre',
- 'last_name' => 'Apellidos',
- 'phone' => 'Teléfono',
- 'email' => 'Email',
- 'additional_info' => 'Información extra',
- 'payment_terms' => 'Términos de pago',
- 'currency_id' => 'Divisa',
- 'size_id' => 'Tamaño',
- 'industry_id' => 'Industria',
- 'private_notes' => 'Notas Privadas',
-
- // invoice
- 'invoice' => 'Factura',
- 'client' => 'Clienta',
- 'invoice_date' => 'Fecha de factura',
- 'due_date' => 'Fecha de pago',
- 'invoice_number' => 'Número de Factura',
- 'invoice_number_short' => 'Nº de Factura',
- 'po_number' => 'Apartado de correos',
- 'po_number_short' => 'Apdo.',
- 'frequency_id' => 'Fracuencia',
- 'discount' => 'Descuento',
- 'taxes' => 'Impuestos',
- 'tax' => 'Impuesto',
- 'item' => 'Elemento',
- 'description' => 'Descripción',
- 'unit_cost' => 'Coste unitario',
- 'quantity' => 'Cantidad',
- 'line_total' => 'Total línea',
- 'subtotal' => 'Subtotal',
- 'paid_to_date' => 'Pagado',
- 'balance_due' => 'Pendiente',
- 'invoice_design_id' => 'Diseño',
- 'terms' => 'Términos',
- 'your_invoice' => 'Tu factura',
-);
diff --git a/app/lang/es/messages.php b/app/lang/es/messages.php
deleted file mode 100644
index e69de29bb2d1..000000000000
diff --git a/app/lang/es/texts.php b/app/lang/es/texts.php
new file mode 100644
index 000000000000..728286f3bd3c
--- /dev/null
+++ b/app/lang/es/texts.php
@@ -0,0 +1,297 @@
+ 'Organización',
+ 'name' => 'Nombre',
+ 'website' => 'Página Web',
+ 'work_phone' => 'Teléfono',
+ 'address' => 'Dirección',
+ 'address1' => 'Calle',
+ 'address2' => 'Bloq/Pta',
+ 'city' => 'Ciudad',
+ 'state' => 'Región/Provincia',
+ 'postal_code' => 'Código Postal',
+ 'country_id' => 'País',
+ 'contacts' => 'Contactos',
+ 'first_name' => 'Nombre',
+ 'last_name' => 'Apellidos',
+ 'phone' => 'Teléfono',
+ 'email' => 'Email',
+ 'additional_info' => 'Información extra',
+ 'payment_terms' => 'Términos de pago',
+ 'currency_id' => 'Divisa',
+ 'size_id' => 'Tamaño',
+ 'industry_id' => 'Industria',
+ 'private_notes' => 'Notas Privadas',
+
+ // invoice
+ 'invoice' => 'Factura',
+ 'client' => 'Clienta',
+ 'invoice_date' => 'Fecha de factura',
+ 'due_date' => 'Fecha de pago',
+ 'invoice_number' => 'Número de Factura',
+ 'invoice_number_short' => 'Nº de Factura',
+ 'po_number' => 'Apartado de correos',
+ 'po_number_short' => 'Apdo.',
+ 'frequency_id' => 'Fracuencia',
+ 'discount' => 'Descuento',
+ 'taxes' => 'Impuestos',
+ 'tax' => 'Impuesto',
+ 'item' => 'Elemento',
+ 'description' => 'Descripción',
+ 'unit_cost' => 'Coste unitario',
+ 'quantity' => 'Cantidad',
+ 'line_total' => 'Total línea',
+ 'subtotal' => 'Subtotal',
+ 'paid_to_date' => 'Pagado',
+ 'balance_due' => 'Pendiente',
+ 'invoice_design_id' => 'Diseño',
+ 'terms' => 'Términos',
+ 'your_invoice' => 'Tu factura',
+
+ 'remove_contact' => 'Remove contact',
+ 'add_contact' => 'Add contact',
+ 'create_new_client' => 'Create new client',
+ 'edit_client_details' => 'Edit client details',
+ 'enable' => 'Enable',
+ 'learn_more' => 'Learn more',
+ 'manage_rates' => 'Manage rates',
+ 'note_to_client' => 'Note to client',
+ 'invoice_terms' => 'Invoice terms',
+ 'save_as_default_terms' => 'Save as default terms',
+ 'download_pdf' => 'Download PDF',
+ 'pay_now' => 'Pay Now',
+ 'save_invoice' => 'Save Invoice',
+ 'clone_invoice' => 'Clone Invoice',
+ 'archive_invoice' => 'Archive Invoice',
+ 'delete_invoice' => 'Delete Invoice',
+ 'email_invoice' => 'Email Invoice',
+ 'enter_payment' => 'Enter Payment',
+ 'tax_rates' => 'Tax Rates',
+ 'rate' => 'Rate',
+ 'settings' => 'Settings',
+ 'enable_invoice_tax' => 'Enable specifying an invoice tax ',
+ 'enable_line_item_tax' => 'Enable specifying line item taxes ',
+
+ // navigation
+ 'dashboard' => 'Dashboard',
+ 'clients' => 'Clients',
+ 'invoices' => 'Invoices',
+ 'payments' => 'Payments',
+ 'credits' => 'Credits',
+ 'history' => 'History',
+ 'search' => 'Search',
+ 'sign_up' => 'Sign Up',
+ 'guest' => 'Guest',
+ 'company_details' => 'Company Details',
+ 'online_payments' => 'Online Payments',
+ 'notifications' => 'Notifications',
+ 'import_export' => 'Import/Export',
+ 'done' => 'Done',
+ 'save' => 'Save',
+ 'create' => 'Create',
+ 'upload' => 'Upload',
+ 'import' => 'Import',
+ 'download' => 'Download',
+ 'cancel' => 'Cancel',
+ 'provide_email' => 'Please provide a valid email address',
+ 'powered_by' => 'Powered by',
+ 'no_items' => 'No items',
+
+ // recurring invoices
+ 'recurring_invoices' => 'Recurring Invoices',
+ 'recurring_help' => 'Automatically send clients the same invoices weekly, bi-monthly, monthly, quarterly or annually.
+ Use :MONTH, :QUARTER or :YEAR for dynamic dates. Basic math works as well, for example :MONTH-1.
+ Examples of dynamic invoice variables:
+
+ "Gym membership for the month of :MONTH" => "Gym membership for the month of July"
+ ":YEAR+1 yearly subscription" => "2015 Yearly Subscription"
+ "Retainer payment for :QUARTER+1" => "Retainer payment for Q2"
+ ',
+
+ // dashboard
+ 'in_total_revenue' => 'in total revenue',
+ 'billed_client' => 'billed client',
+ 'billed_clients' => 'billed clients',
+ 'active_client' => 'active client',
+ 'active_clients' => 'active clients',
+ 'invoices_past_due' => 'Invoices Past Due',
+ 'upcoming_invoices' => 'Upcoming invoices',
+ 'average_invoice' => 'Average invoice',
+
+ // list pages
+ 'archive' => 'Archive',
+ 'delete' => 'Delete',
+ 'archive_client' => 'Archive client',
+ 'delete_client' => 'Delete client',
+ 'archive_payment' => 'Archive payment',
+ 'delete_payment' => 'Delete payment',
+ 'archive_credit' => 'Archive credit',
+ 'delete_credit' => 'Delete credit',
+ 'show_archived_deleted' => 'Show archived/deleted',
+ 'filter' => 'Filter',
+ 'new_client' => 'New Client',
+ 'new_invoice' => 'New Invoice',
+ 'new_payment' => 'New Payment',
+ 'new_credit' => 'New Credit',
+ 'contact' => 'Contact',
+ 'date_created' => 'Date Created',
+ 'last_login' => 'Last Login',
+ 'balance' => 'Balance',
+ 'action' => 'Action',
+ 'status' => 'Status',
+ 'invoice_total' => 'Invoice Total',
+ 'frequency' => 'Frequency',
+ 'start_date' => 'Start Date',
+ 'end_date' => 'End Date',
+ 'transaction_reference' => 'Transaction Reference',
+ 'method' => 'Method',
+ 'payment_amount' => 'Payment Amount',
+ 'payment_date' => 'Payment Date',
+ 'credit_amount' => 'Credit Amount',
+ 'credit_balance' => 'Credit Balance',
+ 'credit_date' => 'Credit Date',
+ 'empty_table' => 'No data available in table',
+ 'select' => 'Select',
+ 'edit_client' => 'Edit Client',
+ 'edit_invoice' => 'Edit Invoice',
+
+ // client view page
+ 'create_invoice' => 'Create Invoice',
+ 'enter_credit' => 'Enter Credit',
+ 'last_logged_in' => 'Last logged in',
+ 'details' => 'Details',
+ 'standing' => 'Standing',
+ 'credit' => 'Credit',
+ 'activity' => 'Activity',
+ 'date' => 'Date',
+ 'message' => 'Message',
+ 'adjustment' => 'Adjustment',
+ 'are_you_sure' => 'Are you sure?',
+
+ // payment pages
+ 'payment_type_id' => 'Payment type',
+ 'amount' => 'Amount',
+
+ // account/company pages
+ 'work_email' => 'Email',
+ 'language_id' => 'Language',
+ 'timezone_id' => 'Timezone',
+ 'date_format_id' => 'Date format',
+ 'datetime_format_id' => 'Date/Time Format',
+ 'users' => 'Users',
+ 'localization' => 'Localization',
+ 'remove_logo' => 'Remove logo',
+ 'logo_help' => 'Supported: JPEG, GIF and PNG. Recommended height: 120px',
+ 'payment_gateway' => 'Payment Gateway',
+ 'gateway_id' => 'Provider',
+ 'email_notifications' => 'Email Notifications',
+ 'email_sent' => 'Email me when an invoice is sent ',
+ 'email_viewed' => 'Email me when an invoice is viewed ',
+ 'email_paid' => 'Email me when an invoice is paid ',
+ 'site_updates' => 'Site Updates',
+ 'custom_messages' => 'Custom Messages',
+ 'default_invoice_terms' => 'Set default invoice terms',
+ 'default_email_footer' => 'Set default email signature',
+ 'import_clients' => 'Import Client Data',
+ 'csv_file' => 'Select CSV file',
+ 'export_clients' => 'Export Client Data',
+ 'select_file' => 'Please select a file',
+ 'first_row_headers' => 'Use first row as headers',
+ 'column' => 'Column',
+ 'sample' => 'Sample',
+ 'import_to' => 'Import to',
+ 'client_will_create' => 'client will be created',
+ 'clients_will_create' => 'clients will be created',
+
+ // application messages
+ 'created_client' => 'Successfully created client',
+ 'created_clients' => 'Successfully created :count clients',
+ 'updated_settings' => 'Successfully updated settings',
+ 'removed_logo' => 'Successfully removed logo',
+ 'sent_message' => 'Successfully sent message',
+ 'invoice_error' => 'Please make sure to select a client and correct any errors',
+ 'limit_clients' => 'Sorry, this will exceed the limit of :count clients',
+ 'payment_error' => 'There was an error processing your payment. Please try again later.',
+ 'registration_required' => 'Please sign up to email an invoice',
+ 'confirmation_required' => 'Please confirm your email address',
+
+ 'updated_client' => 'Successfully updated client',
+ 'created_client' => 'Successfully created client',
+ 'archived_client' => 'Successfully archived client',
+ 'archived_clients' => 'Successfully archived :count clients',
+ 'deleted_client' => 'Successfully deleted client',
+ 'deleted_clients' => 'Successfully deleted :count clients',
+
+ 'updated_invoice' => 'Successfully updated invoice',
+ 'created_invoice' => 'Successfully created invoice',
+ 'cloned_invoice' => 'Successfully cloned invoice',
+ 'emailed_invoice' => 'Successfully emailed invoice',
+ 'and_created_client' => 'and created client',
+ 'archived_invoice' => 'Successfully archived credit',
+ 'archived_invoices' => 'Successfully archived :count credits',
+ 'deleted_invoice' => 'Successfully deleted credit',
+ 'deleted_invoices' => 'Successfully deleted :count credits',
+
+ 'created_payment' => 'Successfully created payment',
+ 'archived_payment' => 'Successfully archived payment',
+ 'archived_payments' => 'Successfully archived :count payments',
+ 'deleted_payment' => 'Successfully deleted payment',
+ 'deleted_payments' => 'Successfully deleted :count payments',
+ 'applied_payment' => 'Successfully applied payment',
+
+ 'created_credit' => 'Successfully created credit',
+ 'archived_credit' => 'Successfully archived credit',
+ 'archived_credits' => 'Successfully archived :count credits',
+ 'deleted_credit' => 'Successfully deleted credit',
+ 'deleted_credits' => 'Successfully deleted :count credits',
+
+ // Emails
+ 'confirmation_subject' => 'Invoice Ninja Account Confirmation',
+ 'confirmation_header' => 'Account Confirmation',
+ 'confirmation_message' => 'Please access the link below to confirm your account.',
+ 'invoice_subject' => 'New invoice :invoice',
+ 'invoice_message' => 'To view your invoice for :amount, click the link below.',
+ 'payment_subject' => 'Payment Received :invoice',
+ 'payment_message' => 'Thank you for your payment of :amount.',
+ 'email_salutation' => 'Dear :name,',
+ 'email_signature' => 'Regards,',
+ 'email_from' => 'The InvoiceNinja Team',
+ 'user_email_footer' => 'To adjust your email notification settings please visit http://www.invoiceninja.com/company/notifications',
+ 'invoice_link_message' => 'To view your client invoice click the link below:',
+ 'notification_paid_subject' => 'Invoice :invoice was paid by :client',
+ 'notification_sent_subject' => 'Invoice :invoice was sent to :client',
+ 'notification_viewed_subject' => 'Invoice :invoice was viewed by :client',
+ 'notification_paid' => 'A payment of :amount was made by client :client towards Invoice :invoice.',
+ 'notification_sent' => 'The following client :client was emailed Invoice :invoice for :amount.',
+ 'notification_viewed' => 'The following client :client viewed Invoice :invoice for :amount.',
+ 'reset_password' => 'You can reset your account password by clicking the following link:',
+ 'reset_password_footer' => 'If you did not request this password reset please email our support: ' . CONTACT_EMAIL,
+
+ // Payment page
+ 'secure_payment' => 'Secure Payment',
+ 'card_number' => 'Card number',
+ 'expiration_month' => 'Expiration month',
+ 'expiration_year' => 'Expiration year',
+ 'cvv' => 'CVV',
+
+ // Security alerts
+ 'confide' => array(
+ 'too_many_attempts' => 'Too many attempts. Try again in few minutes.',
+ 'wrong_credentials' => 'Incorrect email or password.',
+ 'confirmation' => 'Your account has been confirmed!',
+ 'wrong_confirmation' => 'Wrong confirmation code.',
+ 'password_forgot' => 'The information regarding password reset was sent to your email.',
+ 'password_reset' => 'Your password has been changed successfully.',
+ 'wrong_password_reset' => 'Invalid password. Try again',
+ ),
+
+ // Pro Plan
+ 'pro_plan' => [
+ 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the pro plan',
+ 'remove_logo_link' => 'Click here',
+ ],
+
+
+);
diff --git a/app/lang/fr/texts.php b/app/lang/fr/texts.php
index 37dc8e1df81d..0c0d220181d6 100644
--- a/app/lang/fr/texts.php
+++ b/app/lang/fr/texts.php
@@ -50,5 +50,249 @@ return array(
'invoice_design_id' => 'Design', //if you speak about invoice's design -> "Modèle"
'terms' => 'Conditions',
'your_invoice' => 'Votre Facture',
+
+ 'remove_contact' => 'Remove contact',
+ 'add_contact' => 'Add contact',
+ 'create_new_client' => 'Create new client',
+ 'edit_client_details' => 'Edit client details',
+ 'enable' => 'Enable',
+ 'learn_more' => 'Learn more',
+ 'manage_rates' => 'Manage rates',
+ 'note_to_client' => 'Note to client',
+ 'invoice_terms' => 'Invoice terms',
+ 'save_as_default_terms' => 'Save as default terms',
+ 'download_pdf' => 'Download PDF',
+ 'pay_now' => 'Pay Now',
+ 'save_invoice' => 'Save Invoice',
+ 'clone_invoice' => 'Clone Invoice',
+ 'archive_invoice' => 'Archive Invoice',
+ 'delete_invoice' => 'Delete Invoice',
+ 'email_invoice' => 'Email Invoice',
+ 'enter_payment' => 'Enter Payment',
+ 'tax_rates' => 'Tax Rates',
+ 'rate' => 'Rate',
+ 'settings' => 'Settings',
+ 'enable_invoice_tax' => 'Enable specifying an invoice tax ',
+ 'enable_line_item_tax' => 'Enable specifying line item taxes ',
+
+ // navigation
+ 'dashboard' => 'Dashboard',
+ 'clients' => 'Clients',
+ 'invoices' => 'Invoices',
+ 'payments' => 'Payments',
+ 'credits' => 'Credits',
+ 'history' => 'History',
+ 'search' => 'Search',
+ 'sign_up' => 'Sign Up',
+ 'guest' => 'Guest',
+ 'company_details' => 'Company Details',
+ 'online_payments' => 'Online Payments',
+ 'notifications' => 'Notifications',
+ 'import_export' => 'Import/Export',
+ 'done' => 'Done',
+ 'save' => 'Save',
+ 'create' => 'Create',
+ 'upload' => 'Upload',
+ 'import' => 'Import',
+ 'download' => 'Download',
+ 'cancel' => 'Cancel',
+ 'provide_email' => 'Please provide a valid email address',
+ 'powered_by' => 'Powered by',
+ 'no_items' => 'No items',
+
+ // recurring invoices
+ 'recurring_invoices' => 'Recurring Invoices',
+ 'recurring_help' => 'Automatically send clients the same invoices weekly, bi-monthly, monthly, quarterly or annually.
+ Use :MONTH, :QUARTER or :YEAR for dynamic dates. Basic math works as well, for example :MONTH-1.
+ Examples of dynamic invoice variables:
+
+ "Gym membership for the month of :MONTH" => "Gym membership for the month of July"
+ ":YEAR+1 yearly subscription" => "2015 Yearly Subscription"
+ "Retainer payment for :QUARTER+1" => "Retainer payment for Q2"
+ ',
+
+ // dashboard
+ 'in_total_revenue' => 'in total revenue',
+ 'billed_client' => 'billed client',
+ 'billed_clients' => 'billed clients',
+ 'active_client' => 'active client',
+ 'active_clients' => 'active clients',
+ 'invoices_past_due' => 'Invoices Past Due',
+ 'upcoming_invoices' => 'Upcoming invoices',
+ 'average_invoice' => 'Average invoice',
+ // list pages
+ 'archive' => 'Archive',
+ 'delete' => 'Delete',
+ 'archive_client' => 'Archive client',
+ 'delete_client' => 'Delete client',
+ 'archive_payment' => 'Archive payment',
+ 'delete_payment' => 'Delete payment',
+ 'archive_credit' => 'Archive credit',
+ 'delete_credit' => 'Delete credit',
+ 'show_archived_deleted' => 'Show archived/deleted',
+ 'filter' => 'Filter',
+ 'new_client' => 'New Client',
+ 'new_invoice' => 'New Invoice',
+ 'new_payment' => 'New Payment',
+ 'new_credit' => 'New Credit',
+ 'contact' => 'Contact',
+ 'date_created' => 'Date Created',
+ 'last_login' => 'Last Login',
+ 'balance' => 'Balance',
+ 'action' => 'Action',
+ 'status' => 'Status',
+ 'invoice_total' => 'Invoice Total',
+ 'frequency' => 'Frequency',
+ 'start_date' => 'Start Date',
+ 'end_date' => 'End Date',
+ 'transaction_reference' => 'Transaction Reference',
+ 'method' => 'Method',
+ 'payment_amount' => 'Payment Amount',
+ 'payment_date' => 'Payment Date',
+ 'credit_amount' => 'Credit Amount',
+ 'credit_balance' => 'Credit Balance',
+ 'credit_date' => 'Credit Date',
+ 'empty_table' => 'No data available in table',
+ 'select' => 'Select',
+ 'edit_client' => 'Edit Client',
+ 'edit_invoice' => 'Edit Invoice',
+
+ // client view page
+ 'create_invoice' => 'Create Invoice',
+ 'enter_credit' => 'Enter Credit',
+ 'last_logged_in' => 'Last logged in',
+ 'details' => 'Details',
+ 'standing' => 'Standing',
+ 'credit' => 'Credit',
+ 'activity' => 'Activity',
+ 'date' => 'Date',
+ 'message' => 'Message',
+ 'adjustment' => 'Adjustment',
+ 'are_you_sure' => 'Are you sure?',
+
+ // payment pages
+ 'payment_type_id' => 'Payment type',
+ 'amount' => 'Amount',
+
+ // account/company pages
+ 'work_email' => 'Email',
+ 'language_id' => 'Language',
+ 'timezone_id' => 'Timezone',
+ 'date_format_id' => 'Date format',
+ 'datetime_format_id' => 'Date/Time Format',
+ 'users' => 'Users',
+ 'localization' => 'Localization',
+ 'remove_logo' => 'Remove logo',
+ 'logo_help' => 'Supported: JPEG, GIF and PNG. Recommended height: 120px',
+ 'payment_gateway' => 'Payment Gateway',
+ 'gateway_id' => 'Provider',
+ 'email_notifications' => 'Email Notifications',
+ 'email_sent' => 'Email me when an invoice is sent ',
+ 'email_viewed' => 'Email me when an invoice is viewed ',
+ 'email_paid' => 'Email me when an invoice is paid ',
+ 'site_updates' => 'Site Updates',
+ 'custom_messages' => 'Custom Messages',
+ 'default_invoice_terms' => 'Set default invoice terms',
+ 'default_email_footer' => 'Set default email signature',
+ 'import_clients' => 'Import Client Data',
+ 'csv_file' => 'Select CSV file',
+ 'export_clients' => 'Export Client Data',
+ 'select_file' => 'Please select a file',
+ 'first_row_headers' => 'Use first row as headers',
+ 'column' => 'Column',
+ 'sample' => 'Sample',
+ 'import_to' => 'Import to',
+ 'client_will_create' => 'client will be created',
+ 'clients_will_create' => 'clients will be created',
+
+ // application messages
+ 'created_client' => 'Successfully created client',
+ 'created_clients' => 'Successfully created :count clients',
+ 'updated_settings' => 'Successfully updated settings',
+ 'removed_logo' => 'Successfully removed logo',
+ 'sent_message' => 'Successfully sent message',
+ 'invoice_error' => 'Please make sure to select a client and correct any errors',
+ 'limit_clients' => 'Sorry, this will exceed the limit of :count clients',
+ 'payment_error' => 'There was an error processing your payment. Please try again later.',
+ 'registration_required' => 'Please sign up to email an invoice',
+ 'confirmation_required' => 'Please confirm your email address',
+
+ 'updated_client' => 'Successfully updated client',
+ 'created_client' => 'Successfully created client',
+ 'archived_client' => 'Successfully archived client',
+ 'archived_clients' => 'Successfully archived :count clients',
+ 'deleted_client' => 'Successfully deleted client',
+ 'deleted_clients' => 'Successfully deleted :count clients',
+
+ 'updated_invoice' => 'Successfully updated invoice',
+ 'created_invoice' => 'Successfully created invoice',
+ 'cloned_invoice' => 'Successfully cloned invoice',
+ 'emailed_invoice' => 'Successfully emailed invoice',
+ 'and_created_client' => 'and created client',
+ 'archived_invoice' => 'Successfully archived credit',
+ 'archived_invoices' => 'Successfully archived :count credits',
+ 'deleted_invoice' => 'Successfully deleted credit',
+ 'deleted_invoices' => 'Successfully deleted :count credits',
+
+ 'created_payment' => 'Successfully created payment',
+ 'archived_payment' => 'Successfully archived payment',
+ 'archived_payments' => 'Successfully archived :count payments',
+ 'deleted_payment' => 'Successfully deleted payment',
+ 'deleted_payments' => 'Successfully deleted :count payments',
+ 'applied_payment' => 'Successfully applied payment',
+
+ 'created_credit' => 'Successfully created credit',
+ 'archived_credit' => 'Successfully archived credit',
+ 'archived_credits' => 'Successfully archived :count credits',
+ 'deleted_credit' => 'Successfully deleted credit',
+ 'deleted_credits' => 'Successfully deleted :count credits',
+
+ // Emails
+ 'confirmation_subject' => 'Invoice Ninja Account Confirmation',
+ 'confirmation_header' => 'Account Confirmation',
+ 'confirmation_message' => 'Please access the link below to confirm your account.',
+ 'invoice_subject' => 'New invoice :invoice',
+ 'invoice_message' => 'To view your invoice for :amount, click the link below.',
+ 'payment_subject' => 'Payment Received :invoice',
+ 'payment_message' => 'Thank you for your payment of :amount.',
+ 'email_salutation' => 'Dear :name,',
+ 'email_signature' => 'Regards,',
+ 'email_from' => 'The InvoiceNinja Team',
+ 'user_email_footer' => 'To adjust your email notification settings please visit http://www.invoiceninja.com/company/notifications',
+ 'invoice_link_message' => 'To view your client invoice click the link below:',
+ 'notification_paid_subject' => 'Invoice :invoice was paid by :client',
+ 'notification_sent_subject' => 'Invoice :invoice was sent to :client',
+ 'notification_viewed_subject' => 'Invoice :invoice was viewed by :client',
+ 'notification_paid' => 'A payment of :amount was made by client :client towards Invoice :invoice.',
+ 'notification_sent' => 'The following client :client was emailed Invoice :invoice for :amount.',
+ 'notification_viewed' => 'The following client :client viewed Invoice :invoice for :amount.',
+ 'reset_password' => 'You can reset your account password by clicking the following link:',
+ 'reset_password_footer' => 'If you did not request this password reset please email our support: ' . CONTACT_EMAIL,
+
+ // Payment page
+ 'secure_payment' => 'Secure Payment',
+ 'card_number' => 'Card number',
+ 'expiration_month' => 'Expiration month',
+ 'expiration_year' => 'Expiration year',
+ 'cvv' => 'CVV',
+
+ // Security alerts
+ 'confide' => array(
+ 'too_many_attempts' => 'Too many attempts. Try again in few minutes.',
+ 'wrong_credentials' => 'Incorrect email or password.',
+ 'confirmation' => 'Your account has been confirmed!',
+ 'wrong_confirmation' => 'Wrong confirmation code.',
+ 'password_forgot' => 'The information regarding password reset was sent to your email.',
+ 'password_reset' => 'Your password has been changed successfully.',
+ 'wrong_password_reset' => 'Invalid password. Try again',
+ ),
+
+ // Pro Plan
+ 'pro_plan' => [
+ 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the pro plan',
+ 'remove_logo_link' => 'Click here',
+ ],
+
+
);
diff --git a/app/lang/it/texts.php b/app/lang/it/texts.php
index 10f5d738c39a..e8ed6ee7c3e8 100644
--- a/app/lang/it/texts.php
+++ b/app/lang/it/texts.php
@@ -50,5 +50,250 @@ return array(
'invoice_design_id' => 'Design',
'terms' => 'Terms',
'your_invoice' => 'Your Invoice',
+
+ 'remove_contact' => 'Remove contact',
+ 'add_contact' => 'Add contact',
+ 'create_new_client' => 'Create new client',
+ 'edit_client_details' => 'Edit client details',
+ 'enable' => 'Enable',
+ 'learn_more' => 'Learn more',
+ 'manage_rates' => 'Manage rates',
+ 'note_to_client' => 'Note to client',
+ 'invoice_terms' => 'Invoice terms',
+ 'save_as_default_terms' => 'Save as default terms',
+ 'download_pdf' => 'Download PDF',
+ 'pay_now' => 'Pay Now',
+ 'save_invoice' => 'Save Invoice',
+ 'clone_invoice' => 'Clone Invoice',
+ 'archive_invoice' => 'Archive Invoice',
+ 'delete_invoice' => 'Delete Invoice',
+ 'email_invoice' => 'Email Invoice',
+ 'enter_payment' => 'Enter Payment',
+ 'tax_rates' => 'Tax Rates',
+ 'rate' => 'Rate',
+ 'settings' => 'Settings',
+ 'enable_invoice_tax' => 'Enable specifying an invoice tax ',
+ 'enable_line_item_tax' => 'Enable specifying line item taxes ',
+
+ // navigation
+ 'dashboard' => 'Dashboard',
+ 'clients' => 'Clients',
+ 'invoices' => 'Invoices',
+ 'payments' => 'Payments',
+ 'credits' => 'Credits',
+ 'history' => 'History',
+ 'search' => 'Search',
+ 'sign_up' => 'Sign Up',
+ 'guest' => 'Guest',
+ 'company_details' => 'Company Details',
+ 'online_payments' => 'Online Payments',
+ 'notifications' => 'Notifications',
+ 'import_export' => 'Import/Export',
+ 'done' => 'Done',
+ 'save' => 'Save',
+ 'create' => 'Create',
+ 'upload' => 'Upload',
+ 'import' => 'Import',
+ 'download' => 'Download',
+ 'cancel' => 'Cancel',
+ 'provide_email' => 'Please provide a valid email address',
+ 'powered_by' => 'Powered by',
+ 'no_items' => 'No items',
+
+ // recurring invoices
+ 'recurring_invoices' => 'Recurring Invoices',
+ 'recurring_help' => 'Automatically send clients the same invoices weekly, bi-monthly, monthly, quarterly or annually.
+ Use :MONTH, :QUARTER or :YEAR for dynamic dates. Basic math works as well, for example :MONTH-1.
+ Examples of dynamic invoice variables:
+
+ "Gym membership for the month of :MONTH" => "Gym membership for the month of July"
+ ":YEAR+1 yearly subscription" => "2015 Yearly Subscription"
+ "Retainer payment for :QUARTER+1" => "Retainer payment for Q2"
+ ',
+
+ // dashboard
+ 'in_total_revenue' => 'in total revenue',
+ 'billed_client' => 'billed client',
+ 'billed_clients' => 'billed clients',
+ 'active_client' => 'active client',
+ 'active_clients' => 'active clients',
+ 'invoices_past_due' => 'Invoices Past Due',
+ 'upcoming_invoices' => 'Upcoming invoices',
+ 'average_invoice' => 'Average invoice',
+
+ // list pages
+ 'archive' => 'Archive',
+ 'delete' => 'Delete',
+ 'archive_client' => 'Archive client',
+ 'delete_client' => 'Delete client',
+ 'archive_payment' => 'Archive payment',
+ 'delete_payment' => 'Delete payment',
+ 'archive_credit' => 'Archive credit',
+ 'delete_credit' => 'Delete credit',
+ 'show_archived_deleted' => 'Show archived/deleted',
+ 'filter' => 'Filter',
+ 'new_client' => 'New Client',
+ 'new_invoice' => 'New Invoice',
+ 'new_payment' => 'New Payment',
+ 'new_credit' => 'New Credit',
+ 'contact' => 'Contact',
+ 'date_created' => 'Date Created',
+ 'last_login' => 'Last Login',
+ 'balance' => 'Balance',
+ 'action' => 'Action',
+ 'status' => 'Status',
+ 'invoice_total' => 'Invoice Total',
+ 'frequency' => 'Frequency',
+ 'start_date' => 'Start Date',
+ 'end_date' => 'End Date',
+ 'transaction_reference' => 'Transaction Reference',
+ 'method' => 'Method',
+ 'payment_amount' => 'Payment Amount',
+ 'payment_date' => 'Payment Date',
+ 'credit_amount' => 'Credit Amount',
+ 'credit_balance' => 'Credit Balance',
+ 'credit_date' => 'Credit Date',
+ 'empty_table' => 'No data available in table',
+ 'select' => 'Select',
+ 'edit_client' => 'Edit Client',
+ 'edit_invoice' => 'Edit Invoice',
+
+ // client view page
+ 'create_invoice' => 'Create Invoice',
+ 'enter_credit' => 'Enter Credit',
+ 'last_logged_in' => 'Last logged in',
+ 'details' => 'Details',
+ 'standing' => 'Standing',
+ 'credit' => 'Credit',
+ 'activity' => 'Activity',
+ 'date' => 'Date',
+ 'message' => 'Message',
+ 'adjustment' => 'Adjustment',
+ 'are_you_sure' => 'Are you sure?',
+
+ // payment pages
+ 'payment_type_id' => 'Payment type',
+ 'amount' => 'Amount',
+
+ // account/company pages
+ 'work_email' => 'Email',
+ 'language_id' => 'Language',
+ 'timezone_id' => 'Timezone',
+ 'date_format_id' => 'Date format',
+ 'datetime_format_id' => 'Date/Time Format',
+ 'users' => 'Users',
+ 'localization' => 'Localization',
+ 'remove_logo' => 'Remove logo',
+ 'logo_help' => 'Supported: JPEG, GIF and PNG. Recommended height: 120px',
+ 'payment_gateway' => 'Payment Gateway',
+ 'gateway_id' => 'Provider',
+ 'email_notifications' => 'Email Notifications',
+ 'email_sent' => 'Email me when an invoice is sent ',
+ 'email_viewed' => 'Email me when an invoice is viewed ',
+ 'email_paid' => 'Email me when an invoice is paid ',
+ 'site_updates' => 'Site Updates',
+ 'custom_messages' => 'Custom Messages',
+ 'default_invoice_terms' => 'Set default invoice terms',
+ 'default_email_footer' => 'Set default email signature',
+ 'import_clients' => 'Import Client Data',
+ 'csv_file' => 'Select CSV file',
+ 'export_clients' => 'Export Client Data',
+ 'select_file' => 'Please select a file',
+ 'first_row_headers' => 'Use first row as headers',
+ 'column' => 'Column',
+ 'sample' => 'Sample',
+ 'import_to' => 'Import to',
+ 'client_will_create' => 'client will be created',
+ 'clients_will_create' => 'clients will be created',
+
+ // application messages
+ 'created_client' => 'Successfully created client',
+ 'created_clients' => 'Successfully created :count clients',
+ 'updated_settings' => 'Successfully updated settings',
+ 'removed_logo' => 'Successfully removed logo',
+ 'sent_message' => 'Successfully sent message',
+ 'invoice_error' => 'Please make sure to select a client and correct any errors',
+ 'limit_clients' => 'Sorry, this will exceed the limit of :count clients',
+ 'payment_error' => 'There was an error processing your payment. Please try again later.',
+ 'registration_required' => 'Please sign up to email an invoice',
+ 'confirmation_required' => 'Please confirm your email address',
+
+ 'updated_client' => 'Successfully updated client',
+ 'created_client' => 'Successfully created client',
+ 'archived_client' => 'Successfully archived client',
+ 'archived_clients' => 'Successfully archived :count clients',
+ 'deleted_client' => 'Successfully deleted client',
+ 'deleted_clients' => 'Successfully deleted :count clients',
+
+ 'updated_invoice' => 'Successfully updated invoice',
+ 'created_invoice' => 'Successfully created invoice',
+ 'cloned_invoice' => 'Successfully cloned invoice',
+ 'emailed_invoice' => 'Successfully emailed invoice',
+ 'and_created_client' => 'and created client',
+ 'archived_invoice' => 'Successfully archived credit',
+ 'archived_invoices' => 'Successfully archived :count credits',
+ 'deleted_invoice' => 'Successfully deleted credit',
+ 'deleted_invoices' => 'Successfully deleted :count credits',
+
+ 'created_payment' => 'Successfully created payment',
+ 'archived_payment' => 'Successfully archived payment',
+ 'archived_payments' => 'Successfully archived :count payments',
+ 'deleted_payment' => 'Successfully deleted payment',
+ 'deleted_payments' => 'Successfully deleted :count payments',
+ 'applied_payment' => 'Successfully applied payment',
+
+ 'created_credit' => 'Successfully created credit',
+ 'archived_credit' => 'Successfully archived credit',
+ 'archived_credits' => 'Successfully archived :count credits',
+ 'deleted_credit' => 'Successfully deleted credit',
+ 'deleted_credits' => 'Successfully deleted :count credits',
+
+ // Emails
+ 'confirmation_subject' => 'Invoice Ninja Account Confirmation',
+ 'confirmation_header' => 'Account Confirmation',
+ 'confirmation_message' => 'Please access the link below to confirm your account.',
+ 'invoice_subject' => 'New invoice :invoice',
+ 'invoice_message' => 'To view your invoice for :amount, click the link below.',
+ 'payment_subject' => 'Payment Received :invoice',
+ 'payment_message' => 'Thank you for your payment of :amount.',
+ 'email_salutation' => 'Dear :name,',
+ 'email_signature' => 'Regards,',
+ 'email_from' => 'The InvoiceNinja Team',
+ 'user_email_footer' => 'To adjust your email notification settings please visit http://www.invoiceninja.com/company/notifications',
+ 'invoice_link_message' => 'To view your client invoice click the link below:',
+ 'notification_paid_subject' => 'Invoice :invoice was paid by :client',
+ 'notification_sent_subject' => 'Invoice :invoice was sent to :client',
+ 'notification_viewed_subject' => 'Invoice :invoice was viewed by :client',
+ 'notification_paid' => 'A payment of :amount was made by client :client towards Invoice :invoice.',
+ 'notification_sent' => 'The following client :client was emailed Invoice :invoice for :amount.',
+ 'notification_viewed' => 'The following client :client viewed Invoice :invoice for :amount.',
+ 'reset_password' => 'You can reset your account password by clicking the following link:',
+ 'reset_password_footer' => 'If you did not request this password reset please email our support: ' . CONTACT_EMAIL,
+
+ // Payment page
+ 'secure_payment' => 'Secure Payment',
+ 'card_number' => 'Card number',
+ 'expiration_month' => 'Expiration month',
+ 'expiration_year' => 'Expiration year',
+ 'cvv' => 'CVV',
+
+ // Security alerts
+ 'confide' => array(
+ 'too_many_attempts' => 'Too many attempts. Try again in few minutes.',
+ 'wrong_credentials' => 'Incorrect email or password.',
+ 'confirmation' => 'Your account has been confirmed!',
+ 'wrong_confirmation' => 'Wrong confirmation code.',
+ 'password_forgot' => 'The information regarding password reset was sent to your email.',
+ 'password_reset' => 'Your password has been changed successfully.',
+ 'wrong_password_reset' => 'Invalid password. Try again',
+ ),
+
+ // Pro Plan
+ 'pro_plan' => [
+ 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the pro plan',
+ 'remove_logo_link' => 'Click here',
+ ],
+
+
);
\ No newline at end of file
diff --git a/app/lang/pt_BR/texts.php b/app/lang/pt_BR/texts.php
index a405467cfeb4..880480d7d669 100644
--- a/app/lang/pt_BR/texts.php
+++ b/app/lang/pt_BR/texts.php
@@ -26,28 +26,261 @@ return array(
'private_notes' => 'Notas Privadas',
// invoice
- 'invoice' => 'Invoice',
- 'client' => 'Client',
- 'invoice_date' => 'Invoice Date',
- 'due_date' => 'Due Date',
- 'invoice_number' => 'Invoice Number',
- 'invoice_number_short' => 'Invoice #',
- 'po_number' => 'PO Number',
- 'po_number_short' => 'PO #',
- 'frequency_id' => 'How often',
- 'discount' => 'Discount',
- 'taxes' => 'Taxes',
- 'tax' => 'Tax',
+ 'invoice' => 'Fatura',
+ 'client' => 'Cliente',
+ 'invoice_date' => 'Data da Fatura',
+ 'due_date' => 'Data de Vencimento',
+ 'invoice_number' => 'Número da Fatura',
+ 'invoice_number_short' => 'Fatura #',
+ 'po_number' => 'Núm. Ordem de Compra',
+ 'po_number_short' => 'OC #',
+ 'frequency_id' => 'Quantas vezes',
+ 'discount' => 'Desconto',
+ 'taxes' => 'Taxas',
+ 'tax' => 'Taxa',
'item' => 'Item',
- 'description' => 'Description',
- 'unit_cost' => 'Unit Cost',
- 'quantity' => 'Quantity',
- 'line_total' => 'Line Total',
+ 'description' => 'Descrição',
+ 'unit_cost' => 'Custo Unitário',
+ 'quantity' => 'Quantidade',
+ 'line_total' => 'Linha Total',
'subtotal' => 'Subtotal',
- 'paid_to_date' => 'Paid to Date',
- 'balance_due' => 'Balance Due',
+ 'paid_to_date' => 'Pagamento até',
+ 'balance_due' => 'Saldo Devedor',
'invoice_design_id' => 'Design',
- 'terms' => 'Terms',
- 'your_invoice' => 'Your Invoice',
+ 'terms' => 'Termos',
+ 'your_invoice' => 'Sua Fatura',
+
+ 'remove_contact' => 'Remover contato',
+ 'add_contact' => 'Adicionar contato',
+ 'create_new_client' => 'Criar novo cliente',
+ 'edit_client_details' => 'Editar detalhes do cliente',
+ 'enable' => 'Habilitar',
+ 'learn_more' => 'Aprender mais',
+ 'manage_rates' => 'Gerenciar impostos',
+ 'note_to_client' => 'Nota para o cliente',
+ 'invoice_terms' => 'Termos da Fatura',
+ 'save_as_default_terms' => 'Salvar como termo padrão',
+ 'download_pdf' => 'Baixar PDF',
+ 'pay_now' => 'Pagar agora',
+ 'save_invoice' => 'Salvar Fatura',
+ 'clone_invoice' => 'Clonar Fatura',
+ 'archive_invoice' => 'Arquivar Fatura',
+ 'delete_invoice' => 'Apagar Fatura',
+ 'email_invoice' => 'Enviar Fatura',
+ 'enter_payment' => 'Entre com o Pagamento',
+ 'tax_rates' => 'Taxas de Impostos',
+ 'rate' => 'Imposto',
+ 'settings' => 'Configurações',
+ 'enable_invoice_tax' => 'Permitir especificar a taxa da fatura ',
+ 'enable_line_item_tax' => 'Permitir especificar o item da linha de taxas ',
+
+ // navigation
+ 'dashboard' => 'Painel de Controle',
+ 'clients' => 'Clientes',
+ 'invoices' => 'Faturas',
+ 'payments' => 'Pagamentos',
+ 'credits' => 'Créditos',
+ 'history' => 'Histórico',
+ 'search' => 'Pesquisa',
+ 'sign_up' => 'Cadastrar',
+ 'guest' => 'Convidado',
+ 'company_details' => 'Detalhes da Empresa',
+ 'online_payments' => 'Pagamentos Online',
+ 'notifications' => 'Notificações',
+ 'import_export' => 'Importar/Exportar',
+ 'done' => 'Feito',
+ 'save' => 'Salvar',
+ 'create' => 'Criar',
+ 'upload' => 'Upload',
+ 'import' => 'Importar',
+ 'download' => 'Download',
+ 'cancel' => 'Cancelar',
+ 'provide_email' => 'Favor fornecer um endereço de e-mail válido',
+ 'powered_by' => 'Powered by',
+ 'no_items' => 'Sem itens',
+
+ // recurring invoices
+ 'recurring_invoices' => 'Faturas Recorrentes',
+ 'recurring_help' => 'Enviar automaticamente aos clientes as mesmas faturas semanalmente, mensalmente, bimenstralmente, trimestralmente ou anualmente.
+ Use :MONTH, :QUARTER ou :YEAR para datas dinâmicas. Matemática básica também funciona, por exemplo :MONTH-1.
+ Exemplo de variáveis de uma fatura dinâmica:
+
+ "Mensalidade da academia para o mês de :MONTH" => "Mensalidade da academia para o mês de Julho"
+ "Plano anual de :YEAR+1" => "Plano anual de 2015"
+ "Pagamento retido para :QUARTER+1" => "Pagamento retido para Q2"
+ ',
+
+ // dashboard
+ 'in_total_revenue' => 'no total de rendimento',
+ 'billed_client' => 'cliente faturado',
+ 'billed_clients' => 'clientes faturados',
+ 'active_client' => 'cliente ativo',
+ 'active_clients' => 'clientes ativos',
+ 'invoices_past_due' => 'Faturas Vencidas',
+ 'upcoming_invoices' => 'Próximas Faturas',
+ 'average_invoice' => 'Média da fatura',
+
+ // list pages
+ 'archive' => 'Arquivos',
+ 'delete' => 'Apagar',
+ 'archive_client' => 'Arquivar cliente',
+ 'delete_client' => 'Apagar cliente',
+ 'archive_payment' => 'Arquivar pagamento',
+ 'delete_payment' => 'Apagar pagamento',
+ 'archive_credit' => 'Arquivar crédito',
+ 'delete_credit' => 'Apagar crédito',
+ 'show_archived_deleted' => 'Mostrar arquivados/apagados',
+ 'filter' => 'Filtrar',
+ 'new_client' => 'Novo Cliente',
+ 'new_invoice' => 'Nova Fatura',
+ 'new_payment' => 'Novo Pagamento',
+ 'new_credit' => 'Novo Crédito',
+ 'contact' => 'Contato',
+ 'date_created' => 'Data de Criação',
+ 'last_login' => 'Último Login',
+ 'balance' => 'Balanço',
+ 'action' => 'Ação',
+ 'status' => 'Status',
+ 'invoice_total' => 'Total da Fatura',
+ 'frequency' => 'Frequência',
+ 'start_date' => 'Data Inicial',
+ 'end_date' => 'Data Final',
+ 'transaction_reference' => 'Referência da Transação',
+ 'method' => 'Método',
+ 'payment_amount' => 'Qtde do Pagamento',
+ 'payment_date' => 'Data do Pagamento',
+ 'credit_amount' => 'Qtde do Crédito',
+ 'credit_balance' => 'Balanço do Crédito',
+ 'credit_date' => 'Data do Crédito',
+ 'empty_table' => 'Sem data disponível na tabela',
+ 'select' => 'Selecionar',
+ 'edit_client' => 'Editar Cliente',
+ 'edit_invoice' => 'Editar Fatura',
+
+ // client view page
+ 'create_invoice' => 'Criar Fatura',
+ 'enter_credit' => 'Digitar Crédito',
+ 'last_logged_in' => 'Último login em',
+ 'details' => 'Detalhes',
+ 'standing' => 'Constante',
+ 'credit' => 'Crédito',
+ 'activity' => 'Atividade',
+ 'date' => 'Data',
+ 'message' => 'Mensagem',
+ 'adjustment' => 'Ajustes',
+ 'are_you_sure' => 'Você tem certeza?',
+
+ // payment pages
+ 'payment_type_id' => 'Tipo de pagamento',
+ 'amount' => 'Quantidade',
+
+ // account/company pages
+ 'work_email' => 'Email',
+ 'language_id' => 'Idioma',
+ 'timezone_id' => 'Fuso Horário',
+ 'date_format_id' => 'Formato da Data',
+ 'datetime_format_id' => 'Formato da Data/Hora',
+ 'users' => 'Usuários',
+ 'localization' => 'Localização',
+ 'remove_logo' => 'Remover logo',
+ 'logo_help' => 'Suportados: JPEG, GIF and PNG. Altura recomendada: 120px',
+ 'payment_gateway' => 'Provedor de Pagamento',
+ 'gateway_id' => 'Provedor',
+ 'email_notifications' => 'Notificações por Email',
+ 'email_sent' => 'Me avise por email quando a fatura for enviada ',
+ 'email_viewed' => 'Me avise por email quando a fatura for visualizada ',
+ 'email_paid' => 'Me avise por email quando a fatura for paga ',
+ 'site_updates' => 'Atualizações do Site',
+ 'custom_messages' => 'Mensagens Customizadas',
+ 'default_invoice_terms' => 'Definir termos padrões da fatura',
+ 'default_email_footer' => 'Definir assinatura de email padrão',
+ 'import_clients' => 'Importar Dados do Cliente',
+ 'csv_file' => 'Selecionar arquivo CSV',
+ 'export_clients' => 'Exportar Dados do Cliente',
+ 'select_file' => 'Favor selecionar um arquivo',
+ 'first_row_headers' => 'Usar as primeiras linhas como cabeçalho',
+ 'column' => 'Coluna',
+ 'sample' => 'Exemplo',
+ 'import_to' => 'Importar para',
+ 'client_will_create' => 'cliente será criado',
+ 'clients_will_create' => 'clientes serão criados',
+
+ // application messages
+ 'created_client' => 'Cliente criado com sucesso',
+ 'created_clients' => ':count clientes criados com sucesso',
+ 'updated_settings' => 'Configurações atualizadas com sucesso',
+ 'removed_logo' => 'Logo removida com sucesso',
+ 'sent_message' => 'Mensagem enviada com sucesso',
+ 'invoice_error' => 'Verifique se você selecionou algum cliente e que não há nenhum outro erro',
+ 'limit_clients' => 'Desculpe, isto irá exceder o limite de :count clientes',
+ 'payment_error' => 'Ocorreu um erro ao processar o pagamento. Por favor tente novamente mais tarde.',
+ 'registration_required' => 'Favor logar-se para enviar uma fatura por email',
+ 'confirmation_required' => 'Favor confirmar o seu endereço de email',
+
+ 'updated_client' => 'Cliente atualizado com sucesso',
+ 'created_client' => 'Cliente criado com sucesso',
+ 'archived_client' => 'Cliente arquivado com sucesso',
+ 'archived_clients' => ':count clientes arquivados com sucesso',
+ 'deleted_client' => 'Clientes removidos com sucesso',
+ 'deleted_clients' => ':count clientes removidos com sucesso',
+
+ 'updated_invoice' => 'Fatura atualizado com sucesso',
+ 'created_invoice' => 'Fatura criada com sucesso',
+ 'cloned_invoice' => 'Fatura clonada com sucesso',
+ 'emailed_invoice' => 'Fatura enviada por email com sucesso',
+ 'and_created_client' => 'e o cliente foi criado',
+ 'archived_invoice' => 'Crédito arquivado com sucesso',
+ 'archived_invoices' => ':count créditos arquivados com sucesso',
+ 'deleted_invoice' => 'Créditos apagados com sucesso',
+ 'deleted_invoices' => ':count créditos apagados com sucesso',
+
+ 'created_payment' => 'Pagamento criado com sucesso',
+ 'archived_payment' => 'Pagamento arquivado com sucesso',
+ 'archived_payments' => ':count pagamentos arquivados com sucesso',
+ 'deleted_payment' => 'Pagamento apagado com sucesso',
+ 'deleted_payments' => ':count pagamentos apagados com sucesso',
+ 'applied_payment' => 'Pagamentos aplicados com sucesso',
+
+ 'created_credit' => 'Crédito criado com sucesso',
+ 'archived_credit' => 'Crédito arquivado com sucesso',
+ 'archived_credits' => ':count créditos arquivados com sucesso',
+ 'deleted_credit' => 'Crédito apagado com sucesso',
+ 'deleted_credits' => ':count créditos apagados com sucesso',
+
+ // Emails
+ 'confirmation_subject' => 'Confirmação de Conta do Invoice Ninja',
+ 'confirmation_header' => 'Confirmação de Conta',
+ 'confirmation_message' => 'Favor acessar o link abaixo para confirmar a sua conta.',
+ 'invoice_subject' => 'Nova fatura :invoice',
+ 'invoice_message' => 'Para visualizar a sua fatura de :amount, clique no link abaixo.',
+ 'payment_subject' => 'Recebido Pagamento de :invoice',
+ 'payment_message' => 'Obrigado pelo seu pagamento de :amount.',
+ 'email_salutation' => 'Caro :name,',
+ 'email_signature' => 'Até mais,',
+ 'email_from' => 'Equipe InvoiceNinja',
+ 'user_email_footer' => 'Para ajustar suas configurações de notificações de email acesse http://www.invoiceninja.com/company/notifications',
+ 'invoice_link_message' => 'Para visualizar a fatura do seu cliente clique no link abaixo:',
+ 'notification_paid_subject' => 'Fatura :invoice foi pago por :client',
+ 'notification_sent_subject' => 'Fatura :invoice foi enviado por :client',
+ 'notification_viewed_subject' => 'Fatura :invoice foi visualizada por :client',
+ 'notification_paid' => 'Um pagamento de :amount foi realizado pelo cliente :client através da fatura :invoice.',
+ 'notification_sent' => 'O cliente :client foi notificado por email referente à fatura :invoice de :amount.',
+ 'notification_viewed' => 'O cliente :client visualizou a fatura :invoice de :amount.',
+ 'reset_password' => 'Você pode redefinir a sua senha clicando no seguinte link:',
+ 'reset_password_footer' => 'Se você não solicitou a redefinição de sua senha por favor envie um email para o nosso suporte: ' . CONTACT_EMAIL,
+
+ // Payment page
+ 'secure_payment' => 'Pagamento Seguro',
+ 'card_number' => 'Número do cartão',
+ 'expiration_month' => 'Mês de expiração',
+ 'expiration_year' => 'Ano de expiração',
+ 'cvv' => 'CVV',
+
+ // Pro Plan
+ 'pro_plan' => [
+ 'remove_logo' => ':link to remove the Invoice Ninja logo by joining the pro plan',
+ 'remove_logo_link' => 'Click here',
+ ],
+
);
diff --git a/app/libraries/utils.php b/app/libraries/utils.php
index fa4cf0319c19..1ea423a8db84 100755
--- a/app/libraries/utils.php
+++ b/app/libraries/utils.php
@@ -5,6 +5,11 @@ class Utils
public static function isProd()
{
return App::environment() == ENV_PRODUCTION;
+ }
+
+ public static function isNinjaProd()
+ {
+ return $_SERVER['SERVER_NAME'] == 'www.invoiceninja.com';
}
public static function basePath()
@@ -35,7 +40,7 @@ class Utils
{
if (!$message)
{
- $message = "An error occurred, please try again later";
+ $message = "An error occurred, please try again later.";
}
static::logError($message . ' ' . $exception);
@@ -122,9 +127,9 @@ class Utils
public static function pluralize($string, $count)
{
- $string = str_replace('?', $count, $string);
- $field = $count == 1 ? $string : $string . 's';
- return trans("texts.$field");
+ $field = $count == 1 ? $string : $string . 's';
+ $string = trans("texts.$field", ['count' => $count]);
+ return $string;
}
public static function toArray($data)
diff --git a/app/models/Account.php b/app/models/Account.php
index c69e78137659..bc500de3d6f0 100755
--- a/app/models/Account.php
+++ b/app/models/Account.php
@@ -39,6 +39,11 @@ class Account extends Eloquent
return $this->belongsTo('Timezone');
}
+ public function language()
+ {
+ return $this->belongsTo('Language');
+ }
+
public function date_format()
{
return $this->belongsTo('DateFormat');
@@ -158,15 +163,22 @@ class Account extends Eloquent
}
}
+ public function getLocale()
+ {
+ $language = Language::remember(DEFAULT_QUERY_CACHE)->where('id', '=', $this->account->language_id)->first();
+ return $language->locale;
+ }
+
public function loadLocalizationSettings()
{
- $this->load('timezone', 'date_format', 'datetime_format');
+ $this->load('timezone', 'date_format', 'datetime_format', 'language');
Session::put(SESSION_TIMEZONE, $this->timezone ? $this->timezone->name : DEFAULT_TIMEZONE);
Session::put(SESSION_DATE_FORMAT, $this->date_format ? $this->date_format->format : DEFAULT_DATE_FORMAT);
Session::put(SESSION_DATE_PICKER_FORMAT, $this->date_format ? $this->date_format->picker_format : DEFAULT_DATE_PICKER_FORMAT);
Session::put(SESSION_DATETIME_FORMAT, $this->datetime_format ? $this->datetime_format->format : DEFAULT_DATETIME_FORMAT);
Session::put(SESSION_CURRENCY, $this->currency_id ? $this->currency_id : DEFAULT_CURRENCY);
+ Session::put(SESSION_LOCALE, $this->language_id ? $this->language->locale : DEFUALT_LOCALE);
}
public function getInvoiceLabels()
diff --git a/app/models/Activity.php b/app/models/Activity.php
index 5cb9b861b3ca..71eca81be24e 100755
--- a/app/models/Activity.php
+++ b/app/models/Activity.php
@@ -423,7 +423,7 @@ class Activity extends Eloquent
}
$activity = Activity::getBlank();
- $activity->client_id = $client->id;
+ $activity->client_id = $credit->client_id;
$activity->credit_id = $credit->id;
$activity->activity_type_id = ACTIVITY_TYPE_ARCHIVE_CREDIT;
$activity->message = Utils::encodeActivity(Auth::user(), 'archived ' . Utils::formatMoney($credit->balance, $credit->client->currency_id) . ' credit');
diff --git a/app/models/User.php b/app/models/User.php
index f9fb73acb83b..caa76ec1ed00 100755
--- a/app/models/User.php
+++ b/app/models/User.php
@@ -104,10 +104,25 @@ class User extends ConfideUser implements UserInterface, RemindableInterface
}
}
- public function getLocale()
+ public function isPro()
{
- $language = Language::remember(DEFAULT_QUERY_CACHE)->where('id', '=', $this->account->language_id)->first();
- return $language->locale;
+ if (!Auth::check())
+ {
+ return false;
+ }
+
+ $datePaid = $this->account->pro_plan_paid;
+
+ if (!$datePaid || $datePaid == '0000-00-00')
+ {
+ return false;
+ }
+
+ $today = new DateTime('now');
+ $datePaid = DateTime::createFromFormat('Y-m-d', $datePaid);
+ $interval = $today->diff($datePaid);
+
+ return $interval->y == 0;
}
public function showGreyBackground()
diff --git a/app/ninja/mailers/ContactMailer.php b/app/ninja/mailers/ContactMailer.php
index d25dc657a46b..d10405a32c95 100755
--- a/app/ninja/mailers/ContactMailer.php
+++ b/app/ninja/mailers/ContactMailer.php
@@ -14,7 +14,7 @@ class ContactMailer extends Mailer {
public function sendInvoice(Invoice $invoice)
{
$view = 'invoice';
- $subject = 'New invoice ' . $invoice->invoice_number;
+ $subject = trans('texts.invoice_subject', ['invoice' => $invoice->invoice_number]);
$invoice->load('invitations', 'client', 'account');
@@ -57,7 +57,7 @@ class ContactMailer extends Mailer {
public function sendPaymentConfirmation(Payment $payment)
{
$view = 'payment_confirmation';
- $subject = 'Payment Received ' . $payment->invoice->invoice_number;
+ $subject = trans('texts.payment_subject', ['invoice' => $payment->invoice->invoice_number]);
$data = [
'accountName' => $payment->account->getDisplayName(),
diff --git a/app/ninja/mailers/UserMailer.php b/app/ninja/mailers/UserMailer.php
index 4cc7ac65f4bf..ed5f2f3dfd03 100755
--- a/app/ninja/mailers/UserMailer.php
+++ b/app/ninja/mailers/UserMailer.php
@@ -16,7 +16,7 @@ class UserMailer extends Mailer {
}
$view = 'confirm';
- $subject = 'Invoice Ninja Account Confirmation';
+ $subject = trans('texts.confirmation_subject');
$data = [
'user' => $user
@@ -48,20 +48,7 @@ class UserMailer extends Mailer {
$data['paymentAmount'] = Utils::formatMoney($payment->amount, $invoice->client->currency_id);
}
- if ($type == 'paid')
- {
- $action = 'paid by';
- }
- else if ($type == 'sent')
- {
- $action = 'sent to';
- }
- else
- {
- $action = 'viewed by';
- }
-
- $subject = "Invoice {$invoice->invoice_number} was $action {$invoice->client->getDisplayName()}";
+ $subject = trans('texts.notification_'.$type.'_subject', ['invoice'=>$invoice->invoice_number, 'client'=>$invoice->client->getDisplayName()]);
$this->sendTo($user->email, CONTACT_EMAIL, CONTACT_NAME, $subject, $view, $data);
}
diff --git a/app/ninja/repositories/InvoiceRepository.php b/app/ninja/repositories/InvoiceRepository.php
index 5f31ab7cc2c0..d3ae3497748e 100755
--- a/app/ninja/repositories/InvoiceRepository.php
+++ b/app/ninja/repositories/InvoiceRepository.php
@@ -176,8 +176,16 @@ class InvoiceRepository
$total += $total * $invoice->tax_rate / 100;
- $invoice->amount = $total;
- $invoice->balance = $total;
+ if ($publicId)
+ {
+ $invoice->balance = $total - ($invoice->amount - $invoice->balance);
+ }
+ else
+ {
+ $invoice->balance = $total;
+ }
+
+ $invoice->amount = $total;
$invoice->save();
$invoice->invoice_items()->forceDelete();
diff --git a/app/routes.php b/app/routes.php
index 0109ed9bf9fb..0ed60c8c673a 100755
--- a/app/routes.php
+++ b/app/routes.php
@@ -1,6 +1,5 @@
'auth'), function()
Route::get('force_inline_pdf', 'UserController@forcePDFJS');
Route::get('account/getSearchData', array('as' => 'getSearchData', 'uses' => 'AccountController@getSearchData'));
+ Route::get('account/enable_pro_plan', 'AccountController@enableProPlan');
Route::get('company/{section?}', 'AccountController@showSection');
Route::post('company/{section?}', 'AccountController@doSection');
Route::post('user/setTheme', 'UserController@setTheme');
@@ -159,7 +161,7 @@ HTML::macro('breadcrumbs', function() {
$crumb = trim($crumbs[$i]);
if (!$crumb) continue;
if ($crumb == 'company') return '';
- $name = ucwords($crumb);
+ $name = trans("texts.$crumb");
if ($i==count($crumbs)-1)
{
$str .= "$name ";
@@ -226,6 +228,7 @@ define('SESSION_DATE_FORMAT', 'dateFormat');
define('SESSION_DATE_PICKER_FORMAT', 'datePickerFormat');
define('SESSION_DATETIME_FORMAT', 'datetimeFormat');
define('SESSION_COUNTER', 'sessionCounter');
+define('SESSION_LOCALE', 'sessionLocale');
define('DEFAULT_TIMEZONE', 'US/Eastern');
define('DEFAULT_CURRENCY', 1); // US Dollar
@@ -233,8 +236,10 @@ define('DEFAULT_DATE_FORMAT', 'M j, Y');
define('DEFAULT_DATE_PICKER_FORMAT', 'M d, yyyy');
define('DEFAULT_DATETIME_FORMAT', 'F j, Y, g:i a');
define('DEFAULT_QUERY_CACHE', 120); // minutes
+define('DEFUALT_LOCALE', 'en');
define('GATEWAY_PAYPAL_EXPRESS', 17);
+define('NINJA_ACCOUNT_KEY', 'zg4ylmzDkdkPOT8yoKQw9LTWaoZJx79h');
if (Auth::check() && !Session::has(SESSION_TIMEZONE))
diff --git a/app/views/accounts/details.blade.php b/app/views/accounts/details.blade.php
index bf8df2a95763..823f5743e1a1 100755
--- a/app/views/accounts/details.blade.php
+++ b/app/views/accounts/details.blade.php
@@ -25,53 +25,53 @@
- {{ Former::legend('Details') }}
+ {{ Former::legend('details') }}
{{ Former::text('name') }}
- {{ Former::text('work_email')->label('Email') }}
- {{ Former::text('work_phone')->label('Phone') }}
- {{ Former::file('logo')->max(2, 'MB')->accept('image')->inlineHelp('Supported: JPEG, GIF and PNG. Recommended height: 120px') }}
+ {{ Former::text('work_email') }}
+ {{ Former::text('work_phone') }}
+ {{ Former::file('logo')->max(2, 'MB')->accept('image')->inlineHelp(trans('texts.logo_help')) }}
@if (file_exists($account->getLogoPath()))
{{ HTML::image($account->getLogoPath(), "Logo") }}
- Remove logo
+ {{ trans('texts.remove_logo') }}
@endif
- {{ Former::select('size_id')->addOption('','')->label('Size')
+ {{ Former::select('size_id')->addOption('','')
->fromQuery($sizes, 'name', 'id') }}
- {{ Former::select('industry_id')->addOption('','')->label('Industry')
+ {{ Former::select('industry_id')->addOption('','')
->fromQuery($industries, 'name', 'id') }}
- {{ Former::legend('Address') }}
- {{ Former::text('address1')->label('Street') }}
- {{ Former::text('address2')->label('Apt/Suite') }}
+ {{ Former::legend('address') }}
+ {{ Former::text('address1') }}
+ {{ Former::text('address2') }}
{{ Former::text('city') }}
- {{ Former::text('state')->label('State/Province') }}
+ {{ Former::text('state') }}
{{ Former::text('postal_code') }}
- {{ Former::select('country_id')->addOption('','')->label('Country')
+ {{ Former::select('country_id')->addOption('','')
->fromQuery($countries, 'name', 'id') }}
- {{ Former::legend('Users') }}
+ {{ Former::legend('users') }}
{{ Former::text('first_name') }}
{{ Former::text('last_name') }}
{{ Former::text('email') }}
{{ Former::text('phone') }}
- {{ Former::legend('Localization') }}
- {{ Former::select('language_id')->addOption('','')->label('Language')
+ {{ Former::legend('localization') }}
+ {{ Former::select('language_id')->addOption('','')
->fromQuery($languages, 'name', 'id') }}
- {{ Former::select('currency_id')->addOption('','')->label('Currency')
+ {{ Former::select('currency_id')->addOption('','')
->fromQuery($currencies, 'name', 'id') }}
- {{ Former::select('timezone_id')->addOption('','')->label('Timezone')
+ {{ Former::select('timezone_id')->addOption('','')
->fromQuery($timezones, 'location', 'id') }}
- {{ Former::select('date_format_id')->addOption('','')->label('Date Format')
+ {{ Former::select('date_format_id')->addOption('','')
->fromQuery($dateFormats, 'label', 'id') }}
- {{ Former::select('datetime_format_id')->addOption('','')->label('Date/Time Format')
+ {{ Former::select('datetime_format_id')->addOption('','')
->fromQuery($datetimeFormats, 'label', 'id') }}
@@ -79,7 +79,7 @@
- {{ Button::lg_success_submit('Save')->append_with_icon('floppy-disk') }}
+ {{ Button::lg_success_submit(trans('texts.save'))->append_with_icon('floppy-disk') }}
{{ Former::close() }}
@@ -95,7 +95,7 @@
});
function deleteLogo() {
- if (confirm('Are you sure?')) {
+ if (confirm("{{ trans('texts.are_you_sure') }}")) {
$('.removeLogoForm').submit();
}
}
diff --git a/app/views/accounts/import_export.blade.php b/app/views/accounts/import_export.blade.php
index 1f1e21d030ac..e9a72ee1b2cd 100755
--- a/app/views/accounts/import_export.blade.php
+++ b/app/views/accounts/import_export.blade.php
@@ -4,14 +4,14 @@
@parent
{{ Former::open_for_files('company/import_map')->addClass('col-md-9 col-md-offset-1') }}
- {{ Former::legend('Import Client Data') }}
- {{ Former::file('file')->label('Select CSV file') }}
- {{ Former::actions( Button::lg_info_submit('Upload')->append_with_icon('open') ) }}
+ {{ Former::legend('import_clients') }}
+ {{ Former::file('file')->label(trans('texts.csv_file')) }}
+ {{ Former::actions( Button::lg_info_submit(trans('texts.upload'))->append_with_icon('open') ) }}
{{ Former::close() }}
{{ Former::open('company/export')->addClass('col-md-9 col-md-offset-1') }}
- {{ Former::legend('Export Client Data') }}
- {{ Former::actions( Button::lg_primary_submit('Download')->append_with_icon('download-alt') ) }}
+ {{ Former::legend('export_clients') }}
+ {{ Former::actions( Button::lg_primary_submit(trans('texts.download'))->append_with_icon('download-alt') ) }}
{{ Former::close() }}
@stop
\ No newline at end of file
diff --git a/app/views/accounts/import_map.blade.php b/app/views/accounts/import_map.blade.php
index d56146bf95e2..e667cacbcc47 100755
--- a/app/views/accounts/import_map.blade.php
+++ b/app/views/accounts/import_map.blade.php
@@ -4,20 +4,20 @@
@parent
{{ Former::open('company/import_export') }}
- {{ Former::legend('Import Clients') }}
+ {{ Former::legend('import_clients') }}
@if ($headers)
- Use first row as headers
+ {{ trans('texts.first_row_headers') }}
- Column
- Sample
- Import To
+ {{ trans('texts.column') }}
+ {{ trans('texts.sample') }}
+ {{ trans('texts.import_to') }}
@for ($i=0; $i
@@ -55,11 +55,11 @@
{
if (num == 1)
{
- $('#numClients').html('1 client will be created');
+ $('#numClients').html("1 {{ trans('texts.client_will_create') }}");
}
else
{
- $('#numClients').html(num + ' clients will be created');
+ $('#numClients').html(num + " {{ trans('texts.clients_will_create') }}");
}
}
diff --git a/app/views/accounts/notifications.blade.php b/app/views/accounts/notifications.blade.php
index 40ae1af08e6e..46a226bd2e12 100755
--- a/app/views/accounts/notifications.blade.php
+++ b/app/views/accounts/notifications.blade.php
@@ -9,12 +9,12 @@
{{ Former::populateField('notify_viewed', intval(Auth::user()->notify_viewed)) }}
{{ Former::populateField('notify_paid', intval(Auth::user()->notify_paid)) }}
- {{ Former::legend('Email Notifications') }}
- {{ Former::checkbox('notify_sent')->label(' ')->text('Email me when an invoice is sent ') }}
- {{ Former::checkbox('notify_viewed')->label(' ')->text('Email me when an invoice is viewed ') }}
- {{ Former::checkbox('notify_paid')->label(' ')->text('Email me when an invoice is paid ') }}
+ {{ Former::legend('email_notifications') }}
+ {{ Former::checkbox('notify_sent')->label(' ')->text(trans('texts.email_sent')) }}
+ {{ Former::checkbox('notify_viewed')->label(' ')->text(trans('texts.email_viewed')) }}
+ {{ Former::checkbox('notify_paid')->label(' ')->text(trans('texts.email_paid')) }}
- {{ Former::legend('Site Updates') }}
+ {{ Former::legend('site_updates') }}
@@ -36,11 +36,11 @@
- {{ Former::legend('Custom Messages') }}
- {{ Former::textarea('invoice_terms')->label('Set default invoice terms') }}
- {{ Former::textarea('email_footer')->label('Set default email signature') }}
+ {{ Former::legend('custom_messages') }}
+ {{ Former::textarea('invoice_terms')->label(trans('texts.default_invoice_terms')) }}
+ {{ Former::textarea('email_footer')->label(trans('texts.default_email_footer')) }}
- {{ Former::actions( Button::lg_success_submit('Save')->append_with_icon('floppy-disk') ) }}
+ {{ Former::actions( Button::lg_success_submit(trans('texts.save'))->append_with_icon('floppy-disk') ) }}
{{ Former::close() }}
@stop
\ No newline at end of file
diff --git a/app/views/clients/edit.blade.php b/app/views/clients/edit.blade.php
index 75c976d05f94..f957e1802659 100755
--- a/app/views/clients/edit.blade.php
+++ b/app/views/clients/edit.blade.php
@@ -8,7 +8,7 @@
@section('content')
-
+
{{ Former::open($url)->addClass('col-md-12 main_form')->method($method)->rules(array(
'email' => 'email|required'
)); }}
@@ -25,8 +25,8 @@
{{ Former::text('name')->data_bind("attr { placeholder: placeholderName }") }}
{{ Former::text('website') }}
{{ Former::text('work_phone') }}
-
-
+
+
{{ Former::legend('address') }}
{{ Former::text('address1') }}
{{ Former::text('address2') }}
diff --git a/app/views/clients/show.blade.php b/app/views/clients/show.blade.php
index c8b5a852954a..328541670489 100755
--- a/app/views/clients/show.blade.php
+++ b/app/views/clients/show.blade.php
@@ -11,13 +11,13 @@
{{ Former::text('id')->value($client->public_id) }}
- {{ DropdownButton::normal('Edit Client',
+ {{ DropdownButton::normal(trans('texts.edit_client'),
Navigation::links(
[
- ['Edit Client', URL::to('clients/' . $client->public_id . '/edit')],
+ [trans('texts.edit_client'), URL::to('clients/' . $client->public_id . '/edit')],
[Navigation::DIVIDER],
- ['Archive Client', "javascript:onArchiveClick()"],
- ['Delete Client', "javascript:onDeleteClick()"],
+ [trans('texts.archive_client'), "javascript:onArchiveClick()"],
+ [trans('texts.delete_client'), "javascript:onDeleteClick()"],
]
)
, ['id'=>'normalDropDown'])->split(); }}
@@ -25,9 +25,9 @@
{{ DropdownButton::primary('Create Invoice',
Navigation::links(
[
- ['Create Invoice', URL::to('invoices/create/' . $client->public_id )],
- ['Enter Payment', URL::to('payments/create/' . $client->public_id )],
- ['Enter Credit', URL::to('credits/create/' . $client->public_id )],
+ [trans('texts.create_invoice'), URL::to('invoices/create/' . $client->public_id )],
+ [trans('texts.enter_payment'), URL::to('payments/create/' . $client->public_id )],
+ [trans('texts.enter_credit'), URL::to('credits/create/' . $client->public_id )],
]
)
, ['id'=>'primaryDropDown'])->split(); }}
@@ -39,43 +39,43 @@
{{ $client->getDisplayName() }}
@if ($client->last_login > 0)
- Last logged in {{ Utils::timestampToDateTimeString(strtotime($client->last_login)); }}
+ {{ trans('texts.last_logged_in') }} {{ Utils::timestampToDateTimeString(strtotime($client->last_login)); }}
@endif
-
Details
+
{{ trans('texts.details') }}
{{ $client->getAddress() }}
{{ $client->getPhone() }}
{{ $client->getNotes() }}
{{ $client->getIndustry() }}
{{ $client->getWebsite() }}
-
{{ $client->payment_terms ? "Payment terms: Net " . $client->payment_terms : '' }}
+
{{ $client->payment_terms ? trans('texts.payment_terms') . ": Net " . $client->payment_terms : '' }}
-
Contacts
+ {{ trans('texts.contacts') }}
@foreach ($client->contacts as $contact)
{{ $contact->getDetails() }}
@endforeach
-
Standing
+ {{ trans('texts.standing') }}
- Paid to Date
+ {{ trans('texts.paid_to_date') }}
{{ Utils::formatMoney($client->paid_to_date, $client->currency_id); }}
- Balance
+ {{ trans('texts.balance') }}
{{ Utils::formatMoney($client->balance, $client->currency_id); }}
@if ($credit > 0)
- Credit
+ {{ trans('texts.credit') }}
{{ Utils::formatMoney($credit, $client->currency_id); }}
@endif
@@ -88,10 +88,10 @@
- {{ HTML::tab_link('#activity', 'Activity', true) }}
- {{ HTML::tab_link('#invoices', 'Invoices') }}
- {{ HTML::tab_link('#payments', 'Payments') }}
- {{ HTML::tab_link('#credits', 'Credits') }}
+ {{ HTML::tab_link('#activity', trans('texts.activity'), true) }}
+ {{ HTML::tab_link('#invoices', trans('texts.invoices')) }}
+ {{ HTML::tab_link('#payments', trans('texts.payments')) }}
+ {{ HTML::tab_link('#credits', trans('texts.credits')) }}
@@ -99,7 +99,11 @@
{{ Datatable::table()
- ->addColumn('Date', 'Message', 'Balance', 'Adjustment')
+ ->addColumn(
+ trans('texts.date'),
+ trans('texts.message'),
+ trans('texts.balance'),
+ trans('texts.adjustment'))
->setUrl(url('api/activities/'. $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
@@ -112,7 +116,11 @@
@if ($hasRecurringInvoices)
{{ Datatable::table()
- ->addColumn('How Often', 'Start Date', 'End Date', 'Invoice Total')
+ ->addColumn(
+ trans('texts.frequency_id'),
+ trans('texts.start_date'),
+ trans('texts.end_date'),
+ trans('texts.invoice_total'))
->setUrl(url('api/recurring_invoices/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
@@ -121,7 +129,13 @@
@endif
{{ Datatable::table()
- ->addColumn('Invoice Number', 'Invoice Date', 'Invoice Total', 'Balance Due', 'Due Date', 'Status')
+ ->addColumn(
+ trans('texts.invoice_number'),
+ trans('texts.invoice_date'),
+ trans('texts.invoice_total'),
+ trans('texts.balance_due'),
+ trans('texts.due_date'),
+ trans('texts.status'))
->setUrl(url('api/invoices/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
@@ -132,7 +146,12 @@
{{ Datatable::table()
- ->addColumn('Invoice', 'Transaction Reference', 'Method', 'Payment Amount', 'Payment Date')
+ ->addColumn(
+ trans('texts.invoice'),
+ trans('texts.transaction_reference'),
+ trans('texts.method'),
+ trans('texts.payment_amount'),
+ trans('texts.payment_date'))
->setUrl(url('api/payments/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
@@ -143,7 +162,11 @@
{{ Datatable::table()
- ->addColumn('Credit Amount', 'Credit Balance', 'Credit Date', 'Private Notes')
+ ->addColumn(
+ trans('texts.credit_amount'),
+ trans('texts.credit_balance'),
+ trans('texts.credit_date'),
+ trans('texts.private_notes'))
->setUrl(url('api/credits/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
@@ -170,7 +193,7 @@
}
function onDeleteClick() {
- if (confirm('Are you sure you want to delete this client?')) {
+ if (confirm("{{ trans('texts.are_you_sure') }}")) {
$('#action').val('delete');
$('.mainForm').submit();
}
diff --git a/app/views/credits/edit.blade.php b/app/views/credits/edit.blade.php
index 047f792dfd68..0ad2be8217cd 100755
--- a/app/views/credits/edit.blade.php
+++ b/app/views/credits/edit.blade.php
@@ -19,7 +19,7 @@
{{ Former::select('client')->addOption('', '')->addGroupClass('client-select') }}
{{ Former::text('amount') }}
{{ Former::text('credit_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append(' ') }}
- {{-- Former::select('currency_id')->addOption('','')->label('Currency')
+ {{-- Former::select('currency_id')->addOption('','')
->fromQuery($currencies, 'name', 'id')->select(Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY)) --}}
{{ Former::textarea('private_notes') }}
@@ -29,8 +29,8 @@
- {{ Button::lg_primary_submit_success('Save')->append_with_icon('floppy-disk') }}
- {{ Button::lg_default_link('credits/' . ($credit ? $credit->public_id : ''), 'Cancel')->append_with_icon('remove-circle'); }}
+ {{ Button::lg_primary_submit_success(trans('texts.save'))->append_with_icon('floppy-disk') }}
+ {{ Button::lg_default_link('credits/' . ($credit ? $credit->public_id : ''), trans('texts.cancel'))->append_with_icon('remove-circle'); }}
{{ Former::close() }}
@@ -54,10 +54,7 @@
$clientSelect.combobox();
-
-
$('#currency_id').combobox();
-
$('#credit_date').datepicker('update', new Date({{ strtotime(Utils::today()) * 1000 }}));
});
diff --git a/app/views/emails/confirm_html.blade.php b/app/views/emails/confirm_html.blade.php
index 2bfdee858910..23ccaa641dcb 100755
--- a/app/views/emails/confirm_html.blade.php
+++ b/app/views/emails/confirm_html.blade.php
@@ -1,8 +1,9 @@
-
{{ Lang::get('confide::confide.email.account_confirmation.subject') }}
+
{{ trans('texts.confirmation_header') }}
-
{{ Lang::get('confide::confide.email.account_confirmation.body') }}
+{{ trans('texts.confirmation_message') }}
{{{ URL::to("user/confirm/{$user->confirmation_code}") }}}
-
+
-
{{ Lang::get('confide::confide.email.account_confirmation.farewell') }}
+{{ trans('texts.email_signature') }}
+{{ trans('texts.email_from') }}
\ No newline at end of file
diff --git a/app/views/emails/confirm_text.blade.php b/app/views/emails/confirm_text.blade.php
index e21261708ecb..b68919b92961 100644
--- a/app/views/emails/confirm_text.blade.php
+++ b/app/views/emails/confirm_text.blade.php
@@ -1,6 +1,7 @@
-{{ Lang::get('confide::confide.email.account_confirmation.subject') }}
+{{ trans('texts.confirmation_header') }}
-{{ Lang::get('confide::confide.email.account_confirmation.body') }}
+{{ trans('texts.confirmation_message') }}
{{{ URL::to("user/confirm/{$user->confirmation_code}") }}}
-{{ Lang::get('confide::confide.email.account_confirmation.farewell') }}
\ No newline at end of file
+{{ trans('texts.email_signature') }}
+{{ trans('texts.email_from') }}
\ No newline at end of file
diff --git a/app/views/emails/contact_html.blade.php b/app/views/emails/contact_html.blade.php
index 63c698ef0734..6ea25fd2b4c8 100644
--- a/app/views/emails/contact_html.blade.php
+++ b/app/views/emails/contact_html.blade.php
@@ -1,3 +1,3 @@
Name: {{ $name }}
Email: {{ $email }}
-Message: {{ $text }}
+Message: {{ nl2br($text) }}
diff --git a/app/views/emails/contact_text.blade.php b/app/views/emails/contact_text.blade.php
index 0cec278d3ef1..628d256f35b3 100644
--- a/app/views/emails/contact_text.blade.php
+++ b/app/views/emails/contact_text.blade.php
@@ -1,4 +1,4 @@
Name: {{ $name }}
Email: {{ $email }}
-Message: {{ $text }}
+Message: {{ $text }}
\ No newline at end of file
diff --git a/app/views/emails/invoice_html.blade.php b/app/views/emails/invoice_html.blade.php
index 129f7bf15c7a..a8b8627b302c 100755
--- a/app/views/emails/invoice_html.blade.php
+++ b/app/views/emails/invoice_html.blade.php
@@ -1,5 +1,5 @@
-
+
@@ -7,14 +7,13 @@
{{ $clientName }},
- To view your invoice for {{ $invoiceAmount }}, click the link below:
-
+ {{ trans('texts.invoice_message', ['amount' => $invoiceAmount]) }}
{{ $link }}
@if ($emailFooter)
{{ nl2br($emailFooter) }}
@else
- Best regards,
+ {{ trans('texts.email_signature') }}
{{ $accountName }}
@endif
diff --git a/app/views/emails/invoice_paid_html.blade.php b/app/views/emails/invoice_paid_html.blade.php
index 5e8a50a84523..ce34e1b134e2 100755
--- a/app/views/emails/invoice_paid_html.blade.php
+++ b/app/views/emails/invoice_paid_html.blade.php
@@ -1,22 +1,21 @@
-
+
- Dear {{ $userName }},
+ {{ trans('texts.email_salutation', ['name' => $userName]) }}
- A payment of {{ $paymentAmount }} was made by client {{ $clientName }} towards invoice {{ $invoiceNumber }}.
+ {{ trans('texts.notification_paid', ['amount' => $paymentAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }}
- To view your client invoice click the link below:
+ {{ trans('texts.invoice_link_message') }}
{{ $invoiceLink }}
-
- To adjust your email notification settings please
click here .
-
- Regards,
-
- The InvoiceNinja Team
+
+ {{ trans('texts.email_signature') }}
+ {{ trans('texts.email_from') }}
+ {{ trans('texts.user_email_footer') }}
+
\ No newline at end of file
diff --git a/app/views/emails/invoice_paid_text.blade.php b/app/views/emails/invoice_paid_text.blade.php
index c3f6bce68327..0c7b8bd5b337 100755
--- a/app/views/emails/invoice_paid_text.blade.php
+++ b/app/views/emails/invoice_paid_text.blade.php
@@ -1,9 +1,11 @@
-Dear {{ $userName }},
+{{ trans('texts.email_salutation', ['name' => $userName]) }}
-A payment of {{ $paymentAmount }} was made by client {{ $clientName }} towards invoice {{ $invoiceNumber }}.
+{{ trans('texts.notification_paid', ['amount' => $paymentAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }}
-
-To view your client invoice click the link below:
+{{ trans('texts.invoice_link_message') }}
{{ $invoiceLink }}
-To adjust your email notification settings please visit http://www.invoiceninja.com/company/notifications
+{{ trans('texts.email_signature') }}
+{{ trans('texts.email_from') }}
+
+{{ trans('texts.user_email_footer') }}
\ No newline at end of file
diff --git a/app/views/emails/invoice_sent_html.blade.php b/app/views/emails/invoice_sent_html.blade.php
index a3c17243d082..6325461a2fac 100755
--- a/app/views/emails/invoice_sent_html.blade.php
+++ b/app/views/emails/invoice_sent_html.blade.php
@@ -1,19 +1,18 @@
-
+
- Dear {{ $userName }},
+ {{ trans('texts.email_salutation', ['name' => $userName]) }}
- The following client {{ $clientName }} was emailed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.
+ {{ trans('texts.notification_sent', ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }}
- Regards,
-
- The InvoiceNinja Team
-
- To adjust your email notification settings please
click here .
+ {{ trans('texts.email_signature') }}
+ {{ trans('texts.email_from') }}
+
+ {{ trans('texts.user_email_footer') }}
\ No newline at end of file
diff --git a/app/views/emails/invoice_sent_text.blade.php b/app/views/emails/invoice_sent_text.blade.php
index e78b3d2cacf4..220510138c54 100755
--- a/app/views/emails/invoice_sent_text.blade.php
+++ b/app/views/emails/invoice_sent_text.blade.php
@@ -1,5 +1,8 @@
-Dear {{ $userName }},
+{{ trans('texts.email_salutation', ['name' => $userName]) }}
-The following client {{ $clientName }} was emailed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.
+{{ trans('texts.notification_sent', ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }}
-To adjust your email notification settings visit this link http://www.invoiceninja.com/company/notifications
\ No newline at end of file
+{{ trans('texts.email_signature') }}
+{{ trans('texts.email_from') }}
+
+{{ trans('texts.user_email_footer') }}
\ No newline at end of file
diff --git a/app/views/emails/invoice_text.blade.php b/app/views/emails/invoice_text.blade.php
index 76cdbb72640a..16b24b83d2a6 100755
--- a/app/views/emails/invoice_text.blade.php
+++ b/app/views/emails/invoice_text.blade.php
@@ -1,12 +1,11 @@
{{ $clientName }},
-To view your invoice for {{ $invoiceAmount }}, click the link below:
-
+{{ trans('texts.invoice_message', ['amount' => $invoiceAmount]) }}
{{ $link }}
@if ($emailFooter)
{{ $emailFooter }}
@else
-Best regards,
+{{ trans('texts.email_signature') }}
{{ $accountName }}
@endif
\ No newline at end of file
diff --git a/app/views/emails/invoice_viewed_html.blade.php b/app/views/emails/invoice_viewed_html.blade.php
index 41a239b0dd12..6908c66d01cf 100755
--- a/app/views/emails/invoice_viewed_html.blade.php
+++ b/app/views/emails/invoice_viewed_html.blade.php
@@ -5,15 +5,14 @@
- Dear {{ $userName }},
+ {{ trans('texts.email_salutation', ['name' => $userName]) }}
- The following client {{ $clientName }} viewed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount}}.
+ {{ trans('texts.notification_viewed', ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }}
- Regards,
-
- The InvoiceNinja Team
-
- To adjust your email notification settings please
click here .
+ {{ trans('texts.email_signature') }}
+ {{ trans('texts.email_from') }}
+
+ {{ trans('texts.user_email_footer') }}
\ No newline at end of file
diff --git a/app/views/emails/invoice_viewed_text.blade.php b/app/views/emails/invoice_viewed_text.blade.php
index d194c8e1e87f..380eaf11451b 100755
--- a/app/views/emails/invoice_viewed_text.blade.php
+++ b/app/views/emails/invoice_viewed_text.blade.php
@@ -1,9 +1,8 @@
-Dear {{ $userName }},
+{{ trans('texts.email_salutation', ['name' => $userName]) }}
-The following client {{ $clientName }} viewed Invoice {{ $invoiceNumber }} for {{ $invoiceAmount }}.
+{{ trans('texts.notification_viewed', ['amount' => $invoiceAmount, 'client' => $clientName, 'invoice' => $invoiceNumber]) }}
-Regards,
+{{ trans('texts.email_signature') }}
+{{ trans('texts.email_from') }}
-The InvoiceNinja Team
-
-To adjust your email notification settings visit this link http://www.invoiceninja.com/company/notifications
\ No newline at end of file
+{{ trans('texts.user_email_footer') }}
\ No newline at end of file
diff --git a/app/views/emails/passwordreset_html.blade.php b/app/views/emails/passwordreset_html.blade.php
index fd259d328e83..52ad2763ed5f 100644
--- a/app/views/emails/passwordreset_html.blade.php
+++ b/app/views/emails/passwordreset_html.blade.php
@@ -1,8 +1,9 @@
-Hi there! {{ $user->username }}
+{{ trans('texts.email_salutation', ['name' => $user->username]) }}
-You can reset your account password by clicking the following link {{{ (Confide::checkAction('UserController@reset_password', array($token))) ? : URL::to('user/reset/'.$token) }}}
+{{ trans('texts.reset_password') }}
+{{{ (Confide::checkAction('UserController@reset_password', array($token))) ? : URL::to('user/reset/'.$token) }}}
-Regards,
-The InvoiceNinja Team
+{{ trans('texts.email_signature') }}
+{{ trans('texts.email_from') }}
-If you did not request this password reset please email our support: admin@invoiceninja.com
+{{ trans('texts.reset_password_footer') }}
\ No newline at end of file
diff --git a/app/views/emails/payment_confirmation_html.blade.php b/app/views/emails/payment_confirmation_html.blade.php
index ef73ee755351..8ab71a0312bc 100644
--- a/app/views/emails/payment_confirmation_html.blade.php
+++ b/app/views/emails/payment_confirmation_html.blade.php
@@ -1,5 +1,5 @@
-
+
@@ -7,12 +7,12 @@
{{ $clientName }},
- Thank you for your payment of {{ $paymentAmount }}.
+ {{ trans('texts.payment_message', ['amount' => $paymentAmount]) }}
@if ($emailFooter)
{{ nl2br($emailFooter) }}
@else
- Best regards,
+ {{ trans('texts.email_signature') }}
{{ $accountName }}
@endif
diff --git a/app/views/emails/payment_confirmation_text.blade.php b/app/views/emails/payment_confirmation_text.blade.php
index dc5a9d7eade2..b742efb5c107 100644
--- a/app/views/emails/payment_confirmation_text.blade.php
+++ b/app/views/emails/payment_confirmation_text.blade.php
@@ -1,10 +1,10 @@
{{ $clientName }},
-Thank you for your payment of {{ $paymentAmount }}.
+{{ trans('texts.payment_message', ['amount' => $paymentAmount]) }}
@if ($emailFooter)
{{ $emailFooter }}
@else
-Best regards,
+{{ trans('texts.email_signature') }}
{{ $accountName }}
@endif
\ No newline at end of file
diff --git a/app/views/emails/welcome_html.blade.php b/app/views/emails/welcome_html.blade.php
deleted file mode 100755
index cbd24d06043d..000000000000
--- a/app/views/emails/welcome_html.blade.php
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
Welcome
-
-
-
\ No newline at end of file
diff --git a/app/views/emails/welcome_text.blade.php b/app/views/emails/welcome_text.blade.php
deleted file mode 100755
index 01f3f00c6337..000000000000
--- a/app/views/emails/welcome_text.blade.php
+++ /dev/null
@@ -1 +0,0 @@
-Welcome
\ No newline at end of file
diff --git a/app/views/header.blade.php b/app/views/header.blade.php
index 4772d57de54f..16d3744be515 100755
--- a/app/views/header.blade.php
+++ b/app/views/header.blade.php
@@ -3,507 +3,502 @@
@section('head')
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+ body {
+ /* background-color: #F6F6F6; */
+ background-color: #EEEEEE;
+ }
-
+
@stop
@section('body')
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
@if (!isset($showBreadcrumbs) || $showBreadcrumbs)
- {{ HTML::breadcrumbs() }}
+ {{ HTML::breadcrumbs() }}
@endif
@if (Session::has('warning'))
-
{{ Session::get('warning') }}
+
{{ Session::get('warning') }}
@endif
@if (Session::has('message'))
-
{{ Session::get('message') }}
+
{{ Session::get('message') }}
@endif
@if (Session::has('error'))
-
{{ Session::get('error') }}
+
{{ Session::get('error') }}
@endif
- @yield('content')
+ @yield('content')
-
-
+
+
+
+
+
- @if (!Auth::check() || !Auth::user()->registered)
-
-
-
-
+@if (!Auth::check() || !Auth::user()->registered)
+
+
+
+
-
-
-
- {{ Former::open('signup/submit')->addClass('signUpForm') }}
+
+
- @if (Auth::check())
- {{ Former::populateField('new_first_name', Auth::user()->first_name); }}
- {{ Former::populateField('new_last_name', Auth::user()->last_name); }}
- {{ Former::populateField('new_email', Auth::user()->email); }}
- @endif
+ {{ Former::open('signup/submit')->addClass('signUpForm') }}
- {{ Former::hidden('path')->value(Request::path()) }}
- {{ Former::text('new_first_name')->label('First name') }}
- {{ Former::text('new_last_name')->label('Last name') }}
- {{ Former::text('new_email')->label('Email') }}
- {{ Former::password('new_password')->label('Password') }}
+ @if (Auth::check())
+ {{ Former::populateField('new_first_name', Auth::user()->first_name); }}
+ {{ Former::populateField('new_last_name', Auth::user()->last_name); }}
+ {{ Former::populateField('new_email', Auth::user()->email); }}
+ @endif
+
+ {{ Former::hidden('path')->value(Request::path()) }}
+ {{ Former::text('new_first_name')->label('First name') }}
+ {{ Former::text('new_last_name')->label('Last name') }}
+ {{ Former::text('new_email')->label('Email') }}
+ {{ Former::password('new_password')->label('Password') }}
{{ Former::checkbox('terms_checkbox')->label(' ')->text('I agree to the Invoice Ninja
Terms of Service ') }}
- {{ Former::close() }}
+ {{ Former::close() }}
-
The email address is already regiestered
-
+
The email address is already regiestered
+
-
+
-
-
Working...
-
+
-
-
Success
- You have succesfully registered. Please visit the link in the account confirmation email to verify your email address.
-
+
+ Success
+ You have succesfully registered. Please visit the link in the account confirmation email to verify your email address.
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
Are you sure?
-
This will permanently erase your data.
-
+
- @endif
-
- @if ($_SERVER['SERVER_NAME'] != 'www.invoiceninja.com')
-
+
+
Are you sure?
+
This will permanently erase your data.
+
+
+
+
+
+
+@endif
+
+@if (!Utils::isNinjaProd())
+
+@endif
+
+
+
+
+
+
+
+
@stop
\ No newline at end of file
diff --git a/app/views/invoices/edit.blade.php b/app/views/invoices/edit.blade.php
index 8d775f793a9f..871cc4b8512e 100755
--- a/app/views/invoices/edit.blade.php
+++ b/app/views/invoices/edit.blade.php
@@ -274,6 +274,9 @@
+ @if (!Auth::user()->isPro())
+ {{ trans('texts.pro_plan.remove_logo', ['link'=>link_to('account/enable_pro_plan', trans('texts.pro_plan.remove_logo_link'))]) }}
+ @endif
@@ -471,6 +474,12 @@
$('input[name=client]').val({{ $client->public_id }});
@endif
+ /*
+ if (clients.length == 0) {
+ $('.client_select input.form-control').prop('disabled', true);
+ }
+ */
+
var $input = $('select#client');
$input.combobox().on('change', function(e) {
var clientId = parseInt($('input[name=client]').val(), 10);
@@ -481,7 +490,7 @@
model.invoice().client().country = false;
}
refreshPDF();
- }); //.trigger('change');
+ }); //.trigger('change');
$('#terms, #public_notes, #invoice_number, #invoice_date, #due_date, #po_number, #discount, #currency_id, #invoice_design_id').change(function() {
refreshPDF();
diff --git a/app/views/invoices/view.blade.php b/app/views/invoices/view.blade.php
index 628ec4774b0b..75baab885015 100755
--- a/app/views/invoices/view.blade.php
+++ b/app/views/invoices/view.blade.php
@@ -11,8 +11,8 @@
@if ($invoice->client->account->isGatewayConfigured())
- {{ Button::normal('Download PDF', array('onclick' => 'onDownloadClick()', 'class' => 'btn-lg')) }}
- {{ Button::primary_link(URL::to('payment/' . $invitation->invitation_key), 'Pay Now', array('class' => 'btn-lg pull-right')) }}
+ {{ Button::normal(trans('texts.download_pdf'), array('onclick' => 'onDownloadClick()', 'class' => 'btn-lg')) }}
+ {{ Button::primary_link(URL::to('payment/' . $invitation->invitation_key), trans('texts.pay_now'), array('class' => 'btn-lg pull-right')) }}
@else
diff --git a/app/views/payments/edit.blade.php b/app/views/payments/edit.blade.php
index 580e48ff3000..19794813ab52 100755
--- a/app/views/payments/edit.blade.php
+++ b/app/views/payments/edit.blade.php
@@ -20,10 +20,10 @@
{{ Former::select('client')->addOption('', '')->addGroupClass('client-select') }}
{{ Former::select('invoice')->addOption('', '')->addGroupClass('invoice-select') }}
{{ Former::text('amount') }}
- {{ Former::select('payment_type_id')->addOption('','')->label('Payment type')
+ {{ Former::select('payment_type_id')->addOption('','')
->fromQuery($paymentTypes, 'name', 'id') }}
{{ Former::text('payment_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append(' ') }}
- {{-- Former::select('currency_id')->addOption('','')->label('Currency')
+ {{-- Former::select('currency_id')->addOption('','')
->fromQuery($currencies, 'name', 'id')->select(Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY)) --}}
@@ -33,8 +33,8 @@
- {{ Button::lg_primary_submit_success('Save')->append_with_icon('floppy-disk') }}
- {{ Button::lg_default_link('payments/' . ($payment ? $payment->public_id : ''), 'Cancel')->append_with_icon('remove-circle'); }}
+ {{ Button::lg_primary_submit_success(trans('texts.save'))->append_with_icon('floppy-disk') }}
+ {{ Button::lg_default_link('payments/' . ($payment ? $payment->public_id : ''), trans('texts.cancel'))->append_with_icon('remove-circle'); }}
{{ Former::close() }}
@@ -49,7 +49,6 @@
populateInvoiceComboboxes({{ $clientPublicId }}, {{ $invoicePublicId }});
$('#payment_type_id').combobox();
-
$('#payment_date').datepicker('update', new Date({{ strtotime(Utils::today()) * 1000 }}));
});
diff --git a/app/views/payments/payment.blade.php b/app/views/payments/payment.blade.php
index cbeb737ee0fa..c5053e798fa3 100755
--- a/app/views/payments/payment.blade.php
+++ b/app/views/payments/payment.blade.php
@@ -32,10 +32,12 @@
- {{ Former::legend('Secure Payment') }}
+ {{ Former::legend('secure_payment') }}
{{ Former::text('first_name') }}
{{ Former::text('last_name') }}
+
+
{{ Former::text('card_number') }}
{{ Former::select('expiration_month')->addOption('','')
->addOption('01 - January', '1')
@@ -61,8 +63,10 @@
->addOption('2020', '2020')
}}
- {{ Former::text('cvv')->label('CVV') }}
+ {{ Former::text('cvv') }}
+
+
{{ Former::text('address1')->label('Street') }}
{{ Former::text('address2')->label('Apt/Suite') }}
{{ Former::text('city') }}
@@ -77,7 +81,7 @@
name); ?>
- {{ Former::actions( Button::primary_submit_lg('Pay Now - ' . Utils::formatMoney($invoice->amount, $client->currency_id) )) }}
+ {{ Former::actions( Button::primary_submit_lg(trans('texts.pay_now') . ' - ' . Utils::formatMoney($invoice->amount, $client->currency_id) )) }}
diff --git a/app/views/public/contact_us.blade.php b/app/views/public/contact_us.blade.php
index 6f9d695baff2..a044bd199df1 100644
--- a/app/views/public/contact_us.blade.php
+++ b/app/views/public/contact_us.blade.php
@@ -55,14 +55,20 @@ var contactForm = {
-
+@section('content')
+
+
+
+
+