 (Half Day), (Pół dnia)
 and year: ,i rok:
""" does not exists",""" nie istnieje"
%  Delivered,% dostarczonych
% Amount Billed,% wartości rozliczonej
% Billed,% rozliczonych
% Completed,% zamkniętych
% Delivered,% dostarczonych
% Installed,% Zainstalowanych
% Received,% Otrzymanych
% of materials billed against this Purchase Order.,% materiałów rozliczonych w ramach zamówienia
% of materials billed against this Sales Order,% materiałów rozliczonych w ramach zlecenia sprzedaży
% of materials delivered against this Delivery Note,% materiałów dostarczonych w stosunku do dowodu dostawy
% of materials delivered against this Sales Order,% materiałów dostarczonych w ramach zlecenia sprzedaży
% of materials ordered against this Material Request,% materiałów zamówionych w stosunku do zapytania o materiały
% of materials received against this Purchase Order,% materiałów otrzymanych w ramach zamówienia
%(conversion_rate_label)s is mandatory. Maybe Currency Exchange record is not created for %(from_currency)s to %(to_currency)s,% ( conversion_rate_label )s jest obowiązkowa. Może rekord wymiany waluty nie jest stworzony dla wymiany %(from_currency )s na %(to_currency )s
'Actual Start Date' can not be greater than 'Actual End Date','Actual Start Date' can not be greater than 'Actual End Date'
'Based On' and 'Group By' can not be same,'Based On' and 'Group By' can not be same
'Days Since Last Order' must be greater than or equal to zero,'Days Since Last Order' must be greater than or equal to zero
'Entries' cannot be empty,'Entries' cannot be empty
'Expected Start Date' can not be greater than 'Expected End Date','Expected Start Date' can not be greater than 'Expected End Date'
'From Date' is required,“Data od” jest wymagana
'From Date' must be after 'To Date','From Date' must be after 'To Date'
'Has Serial No' can not be 'Yes' for non-stock item,'Has Serial No' can not be 'Yes' for non-stock item
'Notification Email Addresses' not specified for recurring invoice,'Notification Email Addresses' not specified for recurring invoice
'Profit and Loss' type account {0} not allowed in Opening Entry,'Profit and Loss' type account {0} not allowed in Opening Entry
'To Case No.' cannot be less than 'From Case No.','To Case No.' cannot be less than 'From Case No.'
'To Date' is required,'To Date' is required
'Update Stock' for Sales Invoice {0} must be set,'Update Stock' for Sales Invoice {0} must be set
* Will be calculated in the transaction.,* Will be calculated in the transaction.
1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent,1 Currency = [?] FractionFor e.g. 1 USD = 100 Cent
1. To maintain the customer wise item code and to make them searchable based on their code use this option,1. To maintain the customer wise item code and to make them searchable based on their code use this option
"<a href=""#Sales Browser/Customer Group"">Add / Edit</a>","<a href=""#Sales Browser/Customer Group"">Add / Edit</a>"
"<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group"">Add / Edit</a>"
"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory"">Add / Edit</a>"
A Customer Group exists with same name please change the Customer name or rename the Customer Group,A Customer Group exists with same name please change the Customer name or rename the Customer Group
A Customer exists with same name,A Customer exists with same name
A Lead with this email id should exist,A Lead with this email id should exist
A Product or Service,Produkt lub usługa
A Supplier exists with same name,A Supplier exists with same name
A symbol for this currency. For e.g. $,A symbol for this currency. For e.g. $
AMC Expiry Date,AMC Expiry Date
Abbr,Abbr
Abbreviation cannot have more than 5 characters,Abbreviation cannot have more than 5 characters
About,About
Above Value,Above Value
Absent,Nieobecny
Acceptance Criteria,Kryteria akceptacji
Accepted,Accepted
Accepted + Rejected Qty must be equal to Received quantity for Item {0},Accepted + Rejected Qty must be equal to Received quantity for Item {0}
Accepted Quantity,Accepted Quantity
Accepted Warehouse,Accepted Warehouse
Account,Konto
Account Balance,Bilans konta
Account Created: {0},Account Created: {0}
Account Details,Szczegóły konta
Account Head,Account Head
Account Name,Nazwa konta
Account Type,Account Type
Account for the warehouse (Perpetual Inventory) will be created under this Account.,Account for the warehouse (Perpetual Inventory) will be created under this Account.
Account head {0} created,Account head {0} created
Account must be a balance sheet account,Account must be a balance sheet account
Account with child nodes cannot be converted to ledger,Account with child nodes cannot be converted to ledger
Account with existing transaction can not be converted to group.,Account with existing transaction can not be converted to group.
Account with existing transaction can not be deleted,Account with existing transaction can not be deleted
Account with existing transaction cannot be converted to ledger,Account with existing transaction cannot be converted to ledger
Account {0} cannot be a Group,Account {0} cannot be a Group
Account {0} does not belong to Company {1},Account {0} does not belong to Company {1}
Account {0} does not exist,Account {0} does not exist
Account {0} has been entered more than once for fiscal year {1},Account {0} has been entered more than once for fiscal year {1}
Account {0} is frozen,Account {0} is frozen
Account {0} is inactive,Account {0} is inactive
Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item,Account {0} must be of type 'Fixed Asset' as Item {1} is an Asset Item
Account: {0} can only be updated via \					Stock Transactions,Account: {0} can only be updated via \					Stock Transactions
Accountant,Księgowy
Accounting,Księgowość
"Accounting Entries can be made against leaf nodes, called","Accounting Entries can be made against leaf nodes, called"
"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Accounting entry frozen up to this date, nobody can do / modify entry except role specified below."
Accounting journal entries.,Accounting journal entries.
Accounts,Księgowość
Accounts Browser,Accounts Browser
Accounts Frozen Upto,Accounts Frozen Upto
Accounts Payable,Accounts Payable
Accounts Receivable,Accounts Receivable
Accounts Settings,Accounts Settings
Active,Aktywny
Active: Will extract emails from ,Active: Will extract emails from 
Activity,Aktywność
Activity Log,Dziennik aktywności
Activity Log:,Dziennik aktywności:
Activity Type,Rodzaj aktywności
Actual,Właściwy
Actual Budget,Actual Budget
Actual Completion Date,Actual Completion Date
Actual Date,Actual Date
Actual End Date,Actual End Date
Actual Invoice Date,Actual Invoice Date
Actual Posting Date,Actual Posting Date
Actual Qty,Actual Qty
Actual Qty (at source/target),Actual Qty (at source/target)
Actual Qty After Transaction,Actual Qty After Transaction
Actual Qty: Quantity available in the warehouse.,Actual Qty: Quantity available in the warehouse.
Actual Quantity,Actual Quantity
Actual Start Date,Actual Start Date
Add,Dodaj
Add / Edit Taxes and Charges,Add / Edit Taxes and Charges
Add Child,Add Child
Add Serial No,Add Serial No
Add Taxes,Add Taxes
Add Taxes and Charges,Dodaj podatki i opłaty
Add or Deduct,Add or Deduct
Add rows to set annual budgets on Accounts.,Add rows to set annual budgets on Accounts.
Add to Cart,Add to Cart
Add to calendar on this date,Add to calendar on this date
Add/Remove Recipients,Add/Remove Recipients
Address,Adres
Address & Contact,Adres i kontakt
Address & Contacts,Adres i kontakty
Address Desc,Opis adresu
Address Details,Szczegóły adresu
Address HTML,Adres HTML
Address Line 1,Address Line 1
Address Line 2,Address Line 2
Address Title,Address Title
Address Title is mandatory.,Address Title is mandatory.
Address Type,Address Type
Address master.,Address master.
Administrative Expenses,Administrative Expenses
Administrative Officer,Administrative Officer
Advance Amount,Advance Amount
Advance amount,
Advances,Advances
Advertisement,Reklama
Advertising,Reklamowanie
Aerospace,Aerospace
After Sale Installations,After Sale Installations
Against,Against
Against Account,Against Account
Against Bill {0} dated {1},Against Bill {0} dated {1}
Against Docname,Against Docname
Against Doctype,Against Doctype
Against Document Detail No,Against Document Detail No
Against Document No,Against Document No
Against Entries,Against Entries
Against Expense Account,Against Expense Account
Against Income Account,Against Income Account
Against Journal Voucher,Against Journal Voucher
Against Journal Voucher {0} does not have any unmatched {1} entry,Against Journal Voucher {0} does not have any unmatched {1} entry
Against Purchase Invoice,Against Purchase Invoice
Against Sales Invoice,Against Sales Invoice
Against Sales Order,Against Sales Order
Against Voucher,Against Voucher
Against Voucher Type,Against Voucher Type
Ageing Based On,Ageing Based On
Ageing Date is mandatory for opening entry,Ageing Date is mandatory for opening entry
Ageing date is mandatory for opening entry,
Agent,Agent
Aging Date,Aging Date
Aging Date is mandatory for opening entry,Aging Date is mandatory for opening entry
Agriculture,Agriculture
Airline,Airline
All Addresses.,Wszystkie adresy
All Contact,All Contact
All Contacts.,Wszystkie kontakty.
All Customer Contact,All Customer Contact
All Customer Groups,All Customer Groups
All Day,All Day
All Employee (Active),All Employee (Active)
All Item Groups,All Item Groups
All Lead (Open),All Lead (Open)
All Products or Services.,Wszystkie produkty i usługi.
All Sales Partner Contact,All Sales Partner Contact
All Sales Person,All Sales Person
All Supplier Contact,All Supplier Contact
All Supplier Types,All Supplier Types
All Territories,All Territories
"All export related fields like currency, conversion rate, export total, export grand total etc are available in Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc.","All export related fields like currency, conversion rate, export total, export grand total etc are available in Delivery Note, POS, Quotation, Sales Invoice, Sales Order etc."
"All import related fields like currency, conversion rate, import total, import grand total etc are available in Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc.","All import related fields like currency, conversion rate, import total, import grand total etc are available in Purchase Receipt, Supplier Quotation, Purchase Invoice, Purchase Order etc."
All items have already been invoiced,All items have already been invoiced
All items have already been transferred for this Production Order.,All items have already been transferred for this Production Order.
All these items have already been invoiced,All these items have already been invoiced
Allocate,Allocate
Allocate Amount Automatically,Allocate Amount Automatically
Allocate leaves for a period.,Allocate leaves for a period.
Allocate leaves for the year.,Allocate leaves for the year.
Allocated Amount,Allocated Amount
Allocated Budget,Allocated Budget
Allocated amount,
Allocated amount can not be negative,Allocated amount can not be negative
Allocated amount can not greater than unadusted amount,Allocated amount can not greater than unadusted amount
Allow Bill of Materials,Zezwól na zestawienie materiałowe
Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item,Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item
Allow Children,Allow Children
Allow Dropbox Access,Allow Dropbox Access
Allow Google Drive Access,Allow Google Drive Access
Allow Negative Balance,Allow Negative Balance
Allow Negative Stock,Allow Negative Stock
Allow Production Order,Allow Production Order
Allow User,Allow User
Allow Users,Allow Users
Allow the following users to approve Leave Applications for block days.,Allow the following users to approve Leave Applications for block days.
Allow user to edit Price List Rate in transactions,Allow user to edit Price List Rate in transactions
Allowance Percent,Dopuszczalny procent
Allowance for over-delivery / over-billing crossed for Item {0},Allowance for over-delivery / over-billing crossed for Item {0}
Allowed Role to Edit Entries Before Frozen Date,Allowed Role to Edit Entries Before Frozen Date
Amended From,Amended From
Amount,Wartość
Amount (Company Currency),Amount (Company Currency)
Amount <=,Amount <=
Amount >=,Amount >=
Amount to Bill,Amount to Bill
An Customer exists with same name,An Customer exists with same name
"An Item Group exists with same name, please change the item name or rename the item group","An Item Group exists with same name, please change the item name or rename the item group"
"An item exists with same name ({0}), please change the item group name or rename the item","An item exists with same name ({0}), please change the item group name or rename the item"
Analyst,Analyst
Annual,Roczny
Another Period Closing Entry {0} has been made after {1},Another Period Closing Entry {0} has been made after {1}
Another Salary Structure {0} is active for employee {0}. Please make its status 'Inactive' to proceed.,Another Salary Structure {0} is active for employee {0}. Please make its status 'Inactive' to proceed.
"Any other comments, noteworthy effort that should go in the records.","Any other comments, noteworthy effort that should go in the records."
Apparel & Accessories,Apparel & Accessories
Applicability,Applicability
Applicable For,Applicable For
Applicable Holiday List,Applicable Holiday List
Applicable Territory,Applicable Territory
Applicable To (Designation),Applicable To (Designation)
Applicable To (Employee),Applicable To (Employee)
Applicable To (Role),Applicable To (Role)
Applicable To (User),Applicable To (User)
Applicant Name,Applicant Name
Applicant for a Job.,Applicant for a Job.
Application of Funds (Assets),Application of Funds (Assets)
Applications for leave.,Applications for leave.
Applies to Company,Applies to Company
Apply On,Apply On
Appraisal,Appraisal
Appraisal Goal,Appraisal Goal
Appraisal Goals,Appraisal Goals
Appraisal Template,Appraisal Template
Appraisal Template Goal,Appraisal Template Goal
Appraisal Template Title,Appraisal Template Title
Appraisal {0} created for Employee {1} in the given date range,Appraisal {0} created for Employee {1} in the given date range
Apprentice,Apprentice
Approval Status,Approval Status
Approval Status must be 'Approved' or 'Rejected',Approval Status must be 'Approved' or 'Rejected'
Approved,Approved
Approver,Approver
Approving Role,Approving Role
Approving Role cannot be same as role the rule is Applicable To,Approving Role cannot be same as role the rule is Applicable To
Approving User,Approving User
Approving User cannot be same as user the rule is Applicable To,Approving User cannot be same as user the rule is Applicable To
Are you sure you want to STOP ,Are you sure you want to STOP 
Are you sure you want to UNSTOP ,Are you sure you want to UNSTOP 
Arrear Amount,Arrear Amount
"As Production Order can be made for this item, it must be a stock item.","As Production Order can be made for this item, it must be a stock item."
As per Stock UOM,As per Stock UOM
"As there are existing stock transactions for this item, you can not change the values of 'Has Serial No', 'Is Stock Item' and 'Valuation Method'","As there are existing stock transactions for this item, you can not change the values of 'Has Serial No', 'Is Stock Item' and 'Valuation Method'"
Asset,Składnik aktywów
Assistant,Asystent
Associate,Associate
Atleast one warehouse is mandatory,Atleast one warehouse is mandatory
Attach Image,Dołącz obrazek
Attach Letterhead,Attach Letterhead
Attach Logo,Attach Logo
Attach Your Picture,Attach Your Picture
Attendance,Attendance
Attendance Date,Attendance Date
Attendance Details,Attendance Details
Attendance From Date,Attendance From Date
Attendance From Date and Attendance To Date is mandatory,Attendance From Date and Attendance To Date is mandatory
Attendance To Date,Attendance To Date
Attendance can not be marked for future dates,Attendance can not be marked for future dates
Attendance for employee {0} is already marked,Attendance for employee {0} is already marked
Attendance record.,Attendance record.
Authorization Control,Authorization Control
Authorization Rule,Authorization Rule
Auto Accounting For Stock Settings,Auto Accounting For Stock Settings
Auto Material Request,Auto Material Request
Auto-raise Material Request if quantity goes below re-order level in a warehouse,Automatycznie twórz Zamówienie Produktu jeśli ilość w magazynie spada poniżej poziomu dla ponownego zamówienia
Automatically compose message on submission of transactions.,Automatically compose message on submission of transactions.
Automatically extract Job Applicants from a mail box ,Automatically extract Job Applicants from a mail box 
Automatically extract Leads from a mail box e.g.,Automatically extract Leads from a mail box e.g.
Automatically updated via Stock Entry of type Manufacture/Repack,Automatically updated via Stock Entry of type Manufacture/Repack
Automotive,Automotive
Autoreply when a new mail is received,Autoreply when a new mail is received
Available,Dostępny
Available Qty at Warehouse,Ilość dostępna w magazynie
Available Stock for Packing Items,Available Stock for Packing Items
"Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet","Available in BOM, Delivery Note, Purchase Invoice, Production Order, Purchase Order, Purchase Receipt, Sales Invoice, Sales Order, Stock Entry, Timesheet"
Average Age,Average Age
Average Commission Rate,Average Commission Rate
Average Discount,Average Discount
Awesome Products,Awesome Products
Awesome Services,Awesome Services
BOM Detail No,BOM Detail No
BOM Explosion Item,BOM Explosion Item
BOM Item,BOM Item
BOM No,Nr zestawienia materiałowego
BOM No. for a Finished Good Item,BOM No. for a Finished Good Item
BOM Operation,BOM Operation
BOM Operations,BOM Operations
BOM Replace Tool,BOM Replace Tool
BOM number is required for manufactured Item {0} in row {1},BOM number is required for manufactured Item {0} in row {1}
BOM number not allowed for non-manufactured Item {0} in row {1},BOM number not allowed for non-manufactured Item {0} in row {1}
BOM recursion: {0} cannot be parent or child of {2},BOM recursion: {0} cannot be parent or child of {2}
BOM replaced,BOM replaced
BOM {0} for Item {1} in row {2} is inactive or not submitted,BOM {0} for Item {1} in row {2} is inactive or not submitted
BOM {0} is not active or not submitted,BOM {0} is not active or not submitted
BOM {0} is not submitted or inactive BOM for Item {1},BOM {0} is not submitted or inactive BOM for Item {1}
Backup Manager,Backup Manager
Backup Right Now,Backup Right Now
Backups will be uploaded to,Backups will be uploaded to
Balance Qty,Balance Qty
Balance Sheet,Balance Sheet
Balance Value,Balance Value
Balance for Account {0} must always be {1},Balance for Account {0} must always be {1}
Balance must be,Balance must be
"Balances of Accounts of type ""Bank"" or ""Cash""","Balances of Accounts of type ""Bank"" or ""Cash"""
Bank,Bank
Bank A/C No.,Bank A/C No.
Bank Account,Konto bankowe
Bank Account No.,Nr konta bankowego
Bank Accounts,Konta bankowe
Bank Clearance Summary,Bank Clearance Summary
Bank Draft,Bank Draft
Bank Name,Nazwa banku
Bank Overdraft Account,Bank Overdraft Account
Bank Reconciliation,Bank Reconciliation
Bank Reconciliation Detail,Bank Reconciliation Detail
Bank Reconciliation Statement,Bank Reconciliation Statement
Bank Voucher,Bank Voucher
Bank/Cash Balance,Bank/Cash Balance
Banking,Banking
Barcode,Kod kreskowy
Barcode {0} already used in Item {1},Barcode {0} already used in Item {1}
Based On,Bazujący na
Basic,Podstawowy
Basic Info,Informacje podstawowe
Basic Information,Basic Information
Basic Rate,Basic Rate
Basic Rate (Company Currency),Basic Rate (Company Currency)
Batch,Batch
Batch (lot) of an Item.,Batch (lot) produktu.
Batch Finished Date,Data zakończenia lotu
Batch ID,Identyfikator lotu
Batch No,Nr lotu
Batch Started Date,Data rozpoczęcia lotu
Batch Time Logs for billing.,Batch Time Logs for billing.
Batch-Wise Balance History,Batch-Wise Balance History
Batched for Billing,Batched for Billing
Better Prospects,Better Prospects
Bill Date,Bill Date
Bill No,Bill No
Bill No {0} already booked in Purchase Invoice {1},Bill No {0} already booked in Purchase Invoice {1}
Bill of Material,Zestawienie materiałowe
Bill of Material to be considered for manufacturing,Bill of Material to be considered for manufacturing
Bill of Materials (BOM),Zestawienie materiałowe (BOM)
Billable,Billable
Billed,Billed
Billed Amount,Billed Amount
Billed Amt,Billed Amt
Billing,Billing
Billing Address,Billing Address
Billing Address Name,Billing Address Name
Billing Status,Billing Status
Bills raised by Suppliers.,Bills raised by Suppliers.
Bills raised to Customers.,Bills raised to Customers.
Bin,Bin
Bio,Bio
Biotechnology,Biotechnology
Birthday,Urodziny
Block Date,Block Date
Block Days,Block Days
Block leave applications by department.,Block leave applications by department.
Blog Post,Blog Post
Blog Subscriber,Blog Subscriber
Blood Group,Blood Group
Both Warehouse must belong to same Company,Both Warehouse must belong to same Company
Box,Box
Branch,Branch
Brand,Marka
Brand Name,Nazwa marki
Brand master.,Brand master.
Brands,Marki
Breakdown,Breakdown
Broadcasting,Broadcasting
Brokerage,Brokerage
Budget,Budżet
Budget Allocated,Budget Allocated
Budget Detail,Budget Detail
Budget Details,Budget Details
Budget Distribution,Budget Distribution
Budget Distribution Detail,Budget Distribution Detail
Budget Distribution Details,Budget Distribution Details
Budget Variance Report,Budget Variance Report
Budget cannot be set for Group Cost Centers,Budget cannot be set for Group Cost Centers
Build Report,Build Report
Built on,Built on
Bundle items at time of sale.,Bundle items at time of sale.
Business Development Manager,Business Development Manager
Buying,Zakupy
Buying & Selling,Zakupy i sprzedaż
Buying Amount,Buying Amount
Buying Settings,Buying Settings
C-Form,C-Form
C-Form Applicable,C-Form Applicable
C-Form Invoice Detail,C-Form Invoice Detail
C-Form No,C-Form No
C-Form records,C-Form records
Calculate Based On,Calculate Based On
Calculate Total Score,Calculate Total Score
Calendar Events,Calendar Events
Call,Call
Calls,Calls
Campaign,Kampania
Campaign Name,Campaign Name
Campaign Name is required,Campaign Name is required
Campaign Naming By,Campaign Naming By
Campaign-.####,Campaign-.####
Can be approved by {0},Can be approved by {0}
"Can not filter based on Account, if grouped by Account","Can not filter based on Account, if grouped by Account"
"Can not filter based on Voucher No, if grouped by Voucher","Can not filter based on Voucher No, if grouped by Voucher"
Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total',Can refer row only if the charge type is 'On Previous Row Amount' or 'Previous Row Total'
Cancel Material Visit {0} before cancelling this Customer Issue,Cancel Material Visit {0} before cancelling this Customer Issue
Cancel Material Visits {0} before cancelling this Maintenance Visit,Cancel Material Visits {0} before cancelling this Maintenance Visit
Cancelled,Cancelled
Cancelling this Stock Reconciliation will nullify its effect.,Cancelling this Stock Reconciliation will nullify its effect.
Cannot Cancel Opportunity as Quotation Exists,Cannot Cancel Opportunity as Quotation Exists
Cannot approve leave as you are not authorized to approve leaves on Block Dates,Cannot approve leave as you are not authorized to approve leaves on Block Dates
Cannot cancel because Employee {0} is already approved for {1},Cannot cancel because Employee {0} is already approved for {1}
Cannot cancel because submitted Stock Entry {0} exists,Cannot cancel because submitted Stock Entry {0} exists
Cannot carry forward {0},Cannot carry forward {0}
Cannot change Year Start Date and Year End Date once the Fiscal Year is saved.,Cannot change Year Start Date and Year End Date once the Fiscal Year is saved.
"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency."
Cannot convert Cost Center to ledger as it has child nodes,Cannot convert Cost Center to ledger as it has child nodes
Cannot covert to Group because Master Type or Account Type is selected.,Cannot covert to Group because Master Type or Account Type is selected.
Cannot deactive or cancle BOM as it is linked with other BOMs,Cannot deactive or cancle BOM as it is linked with other BOMs
"Cannot declare as lost, because Quotation has been made.","Cannot declare as lost, because Quotation has been made."
Cannot deduct when category is for 'Valuation' or 'Valuation and Total',Cannot deduct when category is for 'Valuation' or 'Valuation and Total'
"Cannot delete Serial No {0} in stock. First remove from stock, then delete.","Cannot delete Serial No {0} in stock. First remove from stock, then delete."
"Cannot directly set amount. For 'Actual' charge type, use the rate field","Cannot directly set amount. For 'Actual' charge type, use the rate field"
"Cannot overbill for Item {0} in row {0} more than {1}. To allow overbilling, please set in 'Setup' > 'Global Defaults'","Cannot overbill for Item {0} in row {0} more than {1}. To allow overbilling, please set in 'Setup' > 'Global Defaults'"
Cannot produce more Item {0} than Sales Order quantity {1},Cannot produce more Item {0} than Sales Order quantity {1}
Cannot refer row number greater than or equal to current row number for this Charge type,Cannot refer row number greater than or equal to current row number for this Charge type
Cannot return more than {0} for Item {1},Cannot return more than {0} for Item {1}
Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row,Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for first row
Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'Total' option for previous row amount or previous row total,Cannot select charge type as 'On Previous Row Amount' or 'On Previous Row Total' for valuation. You can select only 'Total' option for previous row amount or previous row total
Cannot set as Lost as Sales Order is made.,Cannot set as Lost as Sales Order is made.
Cannot set authorization on basis of Discount for {0},Cannot set authorization on basis of Discount for {0}
Capacity,Capacity
Capacity Units,Capacity Units
Capital Account,Capital Account
Capital Equipments,Capital Equipments
Carry Forward,Carry Forward
Carry Forwarded Leaves,Carry Forwarded Leaves
Case No(s) already in use. Try from Case No {0},Case No(s) already in use. Try from Case No {0}
Case No. cannot be 0,Case No. cannot be 0
Cash,Gotówka
Cash In Hand,Cash In Hand
Cash Voucher,Cash Voucher
Cash or Bank Account is mandatory for making payment entry,Cash or Bank Account is mandatory for making payment entry
Cash/Bank Account,Cash/Bank Account
Casual Leave,Casual Leave
Cell Number,Cell Number
Change UOM for an Item.,Change UOM for an Item.
Change the starting / current sequence number of an existing series.,Change the starting / current sequence number of an existing series.
Channel Partner,Channel Partner
Charge of type 'Actual' in row {0} cannot be included in Item Rate,Charge of type 'Actual' in row {0} cannot be included in Item Rate
Chargeable,Chargeable
Charity and Donations,Charity and Donations
Chart Name,Chart Name
Chart of Accounts,Chart of Accounts
Chart of Cost Centers,Chart of Cost Centers
Check how the newsletter looks in an email by sending it to your email.,Check how the newsletter looks in an email by sending it to your email.
"Check if recurring invoice, uncheck to stop recurring or put proper End Date","Check if recurring invoice, uncheck to stop recurring or put proper End Date"
"Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible.","Check if you need automatic recurring invoices. After submitting any sales invoice, Recurring section will be visible."
Check if you want to send salary slip in mail to each employee while submitting salary slip,Check if you want to send salary slip in mail to each employee while submitting salary slip
Check this if you want to force the user to select a series before saving. There will be no default if you check this.,Check this if you want to force the user to select a series before saving. There will be no default if you check this.
Check this if you want to show in website,Check this if you want to show in website
Check this to disallow fractions. (for Nos),Check this to disallow fractions. (for Nos)
Check this to pull emails from your mailbox,Check this to pull emails from your mailbox
Check to activate,Check to activate
Check to make Shipping Address,Check to make Shipping Address
Check to make primary address,Check to make primary address
Chemical,Chemical
Cheque,Cheque
Cheque Date,Cheque Date
Cheque Number,Cheque Number
Child account exists for this account. You can not delete this account.,Child account exists for this account. You can not delete this account.
City,Miasto
City/Town,Miasto/Miejscowość
Claim Amount,Claim Amount
Claims for company expense.,Claims for company expense.
Class / Percentage,Class / Percentage
Classic,Klasyczny
Clear Table,Clear Table
Clearance Date,Clearance Date
Clearance Date not mentioned,Clearance Date not mentioned
Clearance date cannot be before check date in row {0},Clearance date cannot be before check date in row {0}
Click on 'Make Sales Invoice' button to create a new Sales Invoice.,Click on 'Make Sales Invoice' button to create a new Sales Invoice.
Click on a link to get options to expand get options ,Click on a link to get options to expand get options 
Client,Client
Close Balance Sheet and book Profit or Loss.,Close Balance Sheet and book Profit or Loss.
Closed,Closed
Closing Account Head,Closing Account Head
Closing Account {0} must be of type 'Liability',Closing Account {0} must be of type 'Liability'
Closing Date,Closing Date
Closing Fiscal Year,Closing Fiscal Year
Closing Qty,Closing Qty
Closing Value,Closing Value
CoA Help,CoA Help
Code,Kod
Cold Calling,Cold Calling
Color,Kolor
Comma separated list of email addresses,Comma separated list of email addresses
Comments,Komentarze
Commercial,Commercial
Commission,Prowizja
Commission Rate,Commission Rate
Commission Rate (%),Commission Rate (%)
Commission on Sales,Commission on Sales
Commission rate cannot be greater than 100,Commission rate cannot be greater than 100
Communication,Komunikacja
Communication HTML,Communication HTML
Communication History,Historia komunikacji
Communication log.,Communication log.
Communications,Communications
Company,Firma
Company (not Customer or Supplier) master.,Company (not Customer or Supplier) master.
Company Abbreviation,Nazwa skrótowa firmy
Company Details,Szczegóły firmy
Company Email,Email do firmy
"Company Email ID not found, hence mail not sent","Company Email ID not found, hence mail not sent"
Company Info,Informacje o firmie
Company Name,Nazwa firmy
Company Settings,Ustawienia firmy
Company is missing in warehouses {0},Company is missing in warehouses {0}
Company is required,Company is required
Company registration numbers for your reference. Example: VAT Registration Numbers etc.,Company registration numbers for your reference. Example: VAT Registration Numbers etc.
Company registration numbers for your reference. Tax numbers etc.,Company registration numbers for your reference. Tax numbers etc.
"Company, Month and Fiscal Year is mandatory","Company, Month and Fiscal Year is mandatory"
Compensatory Off,Compensatory Off
Complete,Complete
Complete Setup,Complete Setup
Completed,Completed
Completed Production Orders,Completed Production Orders
Completed Qty,Completed Qty
Completion Date,Completion Date
Completion Status,Completion Status
Computer,Komputer
Computers,Komputery
Confirmation Date,Data potwierdzenia
Confirmed orders from Customers.,Confirmed orders from Customers.
Consider Tax or Charge for,Consider Tax or Charge for
Considered as Opening Balance,Considered as Opening Balance
Considered as an Opening Balance,Considered as an Opening Balance
Consultant,Konsultant
Consulting,Konsulting
Consumable,Consumable
Consumable Cost,Consumable Cost
Consumable cost per hour,Consumable cost per hour
Consumed Qty,Consumed Qty
Consumer Products,Consumer Products
Contact,Kontakt
Contact Control,Contact Control
Contact Desc,Contact Desc
Contact Details,Contact Details
Contact Email,Contact Email
Contact HTML,Contact HTML
Contact Info,Dane kontaktowe
Contact Mobile No,Contact Mobile No
Contact Name,Nazwa kontaktu
Contact No.,Contact No.
Contact Person,Contact Person
Contact Type,Contact Type
Contact master.,Contact master.
Contacts,Kontakty
Content,Zawartość
Content Type,Content Type
Contra Voucher,Contra Voucher
Contract,Kontrakt
Contract End Date,Contract End Date
Contract End Date must be greater than Date of Joining,Contract End Date must be greater than Date of Joining
Contribution (%),Contribution (%)
Contribution to Net Total,Contribution to Net Total
Conversion Factor,Conversion Factor
Conversion Factor is required,Conversion Factor is required
Conversion factor cannot be in fractions,Conversion factor cannot be in fractions
Conversion factor for default Unit of Measure must be 1 in row {0},Conversion factor for default Unit of Measure must be 1 in row {0}
Conversion rate cannot be 0 or 1,Conversion rate cannot be 0 or 1
Convert into Recurring Invoice,Convert into Recurring Invoice
Convert to Group,Convert to Group
Convert to Ledger,Convert to Ledger
Converted,Converted
Copy From Item Group,Copy From Item Group
Cosmetics,Cosmetics
Cost Center,Cost Center
Cost Center Details,Cost Center Details
Cost Center Name,Cost Center Name
Cost Center is mandatory for Item {0},Cost Center is mandatory for Item {0}
Cost Center is required for 'Profit and Loss' account {0},Cost Center is required for 'Profit and Loss' account {0}
Cost Center is required in row {0} in Taxes table for type {1},Cost Center is required in row {0} in Taxes table for type {1}
Cost Center with existing transactions can not be converted to group,Cost Center with existing transactions can not be converted to group
Cost Center with existing transactions can not be converted to ledger,Cost Center with existing transactions can not be converted to ledger
Cost Center {0} does not belong to Company {1},Cost Center {0} does not belong to Company {1}
Cost of Goods Sold,Cost of Goods Sold
Costing,Zestawienie kosztów
Country,Kraj
Country Name,Nazwa kraju
"Country, Timezone and Currency","Country, Timezone and Currency"
Create Bank Voucher for the total salary paid for the above selected criteria,Create Bank Voucher for the total salary paid for the above selected criteria
Create Customer,Create Customer
Create Material Requests,Create Material Requests
Create New,Create New
Create Opportunity,Create Opportunity
Create Production Orders,Create Production Orders
Create Quotation,Create Quotation
Create Receiver List,Create Receiver List
Create Salary Slip,Create Salary Slip
Create Stock Ledger Entries when you submit a Sales Invoice,Create Stock Ledger Entries when you submit a Sales Invoice
"Create and manage daily, weekly and monthly email digests.","Create and manage daily, weekly and monthly email digests."
Create rules to restrict transactions based on values.,Create rules to restrict transactions based on values.
Created By,Created By
Creates salary slip for above mentioned criteria.,Creates salary slip for above mentioned criteria.
Creation Date,Data stworzenia
Creation Document No,Creation Document No
Creation Document Type,Creation Document Type
Creation Time,Czas stworzenia
Credentials,Credentials
Credit,Credit
Credit Amt,Credit Amt
Credit Card,Credit Card
Credit Card Voucher,Credit Card Voucher
Credit Controller,Credit Controller
Credit Days,Credit Days
Credit Limit,Credit Limit
Credit Note,Credit Note
Credit To,Credit To
Currency,Currency
Currency Exchange,Currency Exchange
Currency Name,Currency Name
Currency Settings,Currency Settings
Currency and Price List,Waluta i cennik
Currency exchange rate master.,Currency exchange rate master.
Current Address,Current Address
Current Address Is,Current Address Is
Current Assets,Current Assets
Current BOM,Current BOM
Current BOM and New BOM can not be same,Current BOM and New BOM can not be same
Current Fiscal Year,Current Fiscal Year
Current Liabilities,Current Liabilities
Current Stock,Current Stock
Current Stock UOM,Current Stock UOM
Current Value,Current Value
Custom,Custom
Custom Autoreply Message,Custom Autoreply Message
Custom Message,Custom Message
Customer,Klient
Customer (Receivable) Account,Customer (Receivable) Account
Customer / Item Name,Customer / Item Name
Customer / Lead Address,Customer / Lead Address
Customer / Lead Name,Customer / Lead Name
Customer Account Head,Customer Account Head
Customer Acquisition and Loyalty,Customer Acquisition and Loyalty
Customer Address,Adres klienta
Customer Addresses And Contacts,Customer Addresses And Contacts
Customer Code,Customer Code
Customer Codes,Customer Codes
Customer Details,Customer Details
Customer Feedback,Customer Feedback
Customer Group,Customer Group
Customer Group / Customer,Customer Group / Customer
Customer Group Name,Customer Group Name
Customer Intro,Customer Intro
Customer Issue,Customer Issue
Customer Issue against Serial No.,Customer Issue against Serial No.
Customer Name,Nazwa klienta
Customer Naming By,Customer Naming By
Customer Service,Customer Service
Customer database.,Baza danych klientów.
Customer is required,Customer is required
Customer master.,Customer master.
Customer required for 'Customerwise Discount',Customer required for 'Customerwise Discount'
Customer {0} does not belong to project {1},Customer {0} does not belong to project {1}
Customer {0} does not exist,Customer {0} does not exist
Customer's Item Code,Customer's Item Code
Customer's Purchase Order Date,Customer's Purchase Order Date
Customer's Purchase Order No,Customer's Purchase Order No
Customer's Purchase Order Number,Customer's Purchase Order Number
Customer's Vendor,Customer's Vendor
Customers Not Buying Since Long Time,Customers Not Buying Since Long Time
Customerwise Discount,Customerwise Discount
Customize,Customize
Customize the Notification,Customize the Notification
Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.
DN Detail,DN Detail
Daily,Daily
Daily Time Log Summary,Daily Time Log Summary
Database Folder ID,Database Folder ID
Database of potential customers.,Baza danych potencjalnych klientów.
Date,Data
Date Format,Format daty
Date Of Retirement,Date Of Retirement
Date Of Retirement must be greater than Date of Joining,Date Of Retirement must be greater than Date of Joining
Date is repeated,Date is repeated
Date of Birth,Date of Birth
Date of Issue,Date of Issue
Date of Joining,Date of Joining
Date of Joining must be greater than Date of Birth,Date of Joining must be greater than Date of Birth
Date on which lorry started from supplier warehouse,Date on which lorry started from supplier warehouse
Date on which lorry started from your warehouse,Date on which lorry started from your warehouse
Dates,Dates
Days Since Last Order,Days Since Last Order
Days for which Holidays are blocked for this department.,Days for which Holidays are blocked for this department.
Dealer,Dealer
Debit,Debit
Debit Amt,Debit Amt
Debit Note,Debit Note
Debit To,Debit To
Debit and Credit not equal for this voucher. Difference is {0}.,Debit and Credit not equal for this voucher. Difference is {0}.
Deduct,Deduct
Deduction,Deduction
Deduction Type,Deduction Type
Deduction1,Deduction1
Deductions,Deductions
Default,Default
Default Account,Default Account
Default BOM,Default BOM
Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.
Default Bank Account,Default Bank Account
Default Buying Cost Center,Default Buying Cost Center
Default Buying Price List,Default Buying Price List
Default Cash Account,Default Cash Account
Default Company,Default Company
Default Cost Center for tracking expense for this item.,Default Cost Center for tracking expense for this item.
Default Currency,Domyślna waluta
Default Customer Group,Default Customer Group
Default Expense Account,Default Expense Account
Default Income Account,Default Income Account
Default Item Group,Default Item Group
Default Price List,Default Price List
Default Purchase Account in which cost of the item will be debited.,Default Purchase Account in which cost of the item will be debited.
Default Selling Cost Center,Default Selling Cost Center
Default Settings,Default Settings
Default Source Warehouse,Domyślny źródłowy magazyn
Default Stock UOM,Default Stock UOM
Default Supplier,Domyślny dostawca
Default Supplier Type,Default Supplier Type
Default Target Warehouse,Domyślny magazyn docelowy
Default Territory,Default Territory
Default Unit of Measure,Domyślna jednostka miary
"Default Unit of Measure can not be changed directly because you have already made some transaction(s) with another UOM. To change default UOM, use 'UOM Replace Utility' tool under Stock module.","Default Unit of Measure can not be changed directly because you have already made some transaction(s) with another UOM. To change default UOM, use 'UOM Replace Utility' tool under Stock module."
Default Valuation Method,Default Valuation Method
Default Warehouse,Domyślny magazyn
Default Warehouse is mandatory for stock Item.,Default Warehouse is mandatory for stock Item.
Default settings for accounting transactions.,Default settings for accounting transactions.
Default settings for buying transactions.,Default settings for buying transactions.
Default settings for selling transactions.,Default settings for selling transactions.
Default settings for stock transactions.,Default settings for stock transactions.
Defense,Defense
"Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>",Setup
Delete,Usuń
Delete {0} {1}?,Delete {0} {1}?
Delivered,Delivered
Delivered Items To Be Billed,Delivered Items To Be Billed
Delivered Qty,Delivered Qty
Delivered Serial No {0} cannot be deleted,Delivered Serial No {0} cannot be deleted
Delivery Date,Data dostawy
Delivery Details,Szczegóły dostawy
Delivery Document No,Nr dokumentu dostawy
Delivery Document Type,Typ dokumentu dostawy
Delivery Note,Dowód dostawy
Delivery Note Item,Delivery Note Item
Delivery Note Items,Delivery Note Items
Delivery Note Message,Delivery Note Message
Delivery Note No,Nr dowodu dostawy
Delivery Note Required,Delivery Note Required
Delivery Note Trends,Delivery Note Trends
Delivery Note {0} is not submitted,Delivery Note {0} is not submitted
Delivery Note {0} must not be submitted,Delivery Note {0} must not be submitted
Delivery Notes {0} must be cancelled before cancelling this Sales Order,Delivery Notes {0} must be cancelled before cancelling this Sales Order
Delivery Status,Status dostawy
Delivery Time,Czas dostawy
Delivery To,Dostawa do
Department,Department
Department Stores,Department Stores
Depends on LWP,Depends on LWP
Depreciation,Depreciation
Description,Opis
Description HTML,Opis HTML
Designation,Designation
Designer,Designer
Detailed Breakup of the totals,Detailed Breakup of the totals
Details,Details
Difference (Dr - Cr),Difference (Dr - Cr)
Difference Account,Difference Account
"Difference Account must be a 'Liability' type account, since this Stock Reconciliation is an Opening Entry","Difference Account must be a 'Liability' type account, since this Stock Reconciliation is an Opening Entry"
Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.,Different UOM for items will lead to incorrect (Total) Net Weight value. Make sure that Net Weight of each item is in the same UOM.
Direct Expenses,Direct Expenses
Direct Income,Direct Income
Disable,Disable
Disable Rounded Total,Disable Rounded Total
Disabled,Nieaktywny
Discount  %,Rabat %
Discount %,Rabat %
Discount (%),Rabat (%)
Discount Amount,Wartość rabatu
"Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice","Discount Fields will be available in Purchase Order, Purchase Receipt, Purchase Invoice"
Discount Percentage,Procent rabatu
Discount must be less than 100,Discount must be less than 100
Discount(%),Rabat (%)
Dispatch,Dispatch
Display all the individual items delivered with the main items,Display all the individual items delivered with the main items
Distribute transport overhead across items.,Distribute transport overhead across items.
Distribution,Distribution
Distribution Id,Distribution Id
Distribution Name,Distribution Name
Distributor,Dystrybutor
Divorced,Divorced
Do Not Contact,Do Not Contact
Do not show any symbol like $ etc next to currencies.,Do not show any symbol like $ etc next to currencies.
Do really want to unstop production order: ,Do really want to unstop production order: 
Do you really want to STOP ,Do you really want to STOP 
Do you really want to STOP this Material Request?,Do you really want to STOP this Material Request?
Do you really want to Submit all Salary Slip for month {0} and year {1},Do you really want to Submit all Salary Slip for month {0} and year {1}
Do you really want to UNSTOP ,Do you really want to UNSTOP 
Do you really want to UNSTOP this Material Request?,Do you really want to UNSTOP this Material Request?
Do you really want to stop production order: ,Do you really want to stop production order: 
Doc Name,Doc Name
Doc Type,Doc Type
Document Description,Document Description
Document Type,Document Type
Documents,Dokumenty
Domain,Domena
Don't send Employee Birthday Reminders,Don't send Employee Birthday Reminders
Download Materials Required,Download Materials Required
Download Reconcilation Data,Download Reconcilation Data
Download Template,Download Template
Download a report containing all raw materials with their latest inventory status,Download a report containing all raw materials with their latest inventory status
"Download the Template, fill appropriate data and attach the modified file.","Download the Template, fill appropriate data and attach the modified file."
"Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records","Download the Template, fill appropriate data and attach the modified file.All dates and employee combination in the selected period will come in the template, with existing attendance records"
Draft,Szkic
Dropbox,Dropbox
Dropbox Access Allowed,Dropbox Access Allowed
Dropbox Access Key,Dropbox Access Key
Dropbox Access Secret,Dropbox Access Secret
Due Date,Due Date
Due Date cannot be after {0},Due Date cannot be after {0}
Due Date cannot be before Posting Date,Due Date cannot be before Posting Date
Duplicate Entry. Please check Authorization Rule {0},Duplicate Entry. Please check Authorization Rule {0}
Duplicate Serial No entered for Item {0},Duplicate Serial No entered for Item {0}
Duplicate entry,Duplicate entry
Duplicate row {0} with same {1},Duplicate row {0} with same {1}
Duties and Taxes,Duties and Taxes
ERPNext Setup,ERPNext Setup
Earliest,Earliest
Earnest Money,Earnest Money
Earning,Earning
Earning & Deduction,Earning & Deduction
Earning Type,Earning Type
Earning1,Earning1
Edit,Edytuj
Education,Education
Educational Qualification,Educational Qualification
Educational Qualification Details,Educational Qualification Details
Eg. smsgateway.com/api/send_sms.cgi,Eg. smsgateway.com/api/send_sms.cgi
Either debit or credit amount is required for {0},Either debit or credit amount is required for {0}
Either target qty or target amount is mandatory,Either target qty or target amount is mandatory
Either target qty or target amount is mandatory.,Either target qty or target amount is mandatory.
Electrical,Electrical
Electricity Cost,Koszt energii elekrycznej
Electricity cost per hour,Koszt energii elektrycznej na godzinę
Electronics,Electronics
Email,Email
Email Digest,Email Digest
Email Digest Settings,Email Digest Settings
Email Digest: ,Email Digest: 
Email Id,Email Id
"Email Id where a job applicant will email e.g. ""jobs@example.com""","Email Id where a job applicant will email e.g. ""jobs@example.com"""
Email Notifications,Email Notifications
Email Sent?,Email Sent?
"Email id must be unique, already exists for {0}","Email id must be unique, already exists for {0}"
Email ids separated by commas.,Email ids separated by commas.
"Email settings to extract Leads from sales email id e.g. ""sales@example.com""","Email settings to extract Leads from sales email id e.g. ""sales@example.com"""
Emergency Contact,Emergency Contact
Emergency Contact Details,Emergency Contact Details
Emergency Phone,Emergency Phone
Employee,Pracownik
Employee Birthday,Data urodzenia pracownika
Employee Details,Employee Details
Employee Education,Wykształcenie pracownika
Employee External Work History,Employee External Work History
Employee Information,Employee Information
Employee Internal Work History,Employee Internal Work History
Employee Internal Work Historys,Employee Internal Work Historys
Employee Leave Approver,Employee Leave Approver
Employee Leave Balance,Employee Leave Balance
Employee Name,Employee Name
Employee Number,Employee Number
Employee Records to be created by,Employee Records to be created by
Employee Settings,Employee Settings
Employee Type,Employee Type
"Employee designation (e.g. CEO, Director etc.).","Employee designation (e.g. CEO, Director etc.)."
Employee master.,Employee master.
Employee record is created using selected field. ,Employee record is created using selected field. 
Employee records.,Employee records.
Employee relieved on {0} must be set as 'Left',Employee relieved on {0} must be set as 'Left'
Employee {0} has already applied for {1} between {2} and {3},Employee {0} has already applied for {1} between {2} and {3}
Employee {0} is not active or does not exist,Employee {0} is not active or does not exist
Employee {0} was on leave on {1}. Cannot mark attendance.,Employee {0} was on leave on {1}. Cannot mark attendance.
Employees Email Id,Employees Email Id
Employment Details,Employment Details
Employment Type,Employment Type
Enable / disable currencies.,Enable / disable currencies.
Enabled,Włączony
Encashment Date,Encashment Date
End Date,End Date
End Date can not be less than Start Date,End Date can not be less than Start Date
End date of current invoice's period,End date of current invoice's period
End of Life,Zakończenie okresu eksploatacji
Energy,Energia
Engineer,Inżynier
Enter Verification Code,Enter Verification Code
Enter campaign name if the source of lead is campaign.,Enter campaign name if the source of lead is campaign.
Enter department to which this Contact belongs,Enter department to which this Contact belongs
Enter designation of this Contact,Enter designation of this Contact
"Enter email id separated by commas, invoice will be mailed automatically on particular date","Enter email id separated by commas, invoice will be mailed automatically on particular date"
Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.,Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.
Enter name of campaign if source of enquiry is campaign,Enter name of campaign if source of enquiry is campaign
"Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)","Enter static url parameters here (Eg. sender=ERPNext, username=ERPNext, password=1234 etc.)"
Enter the company name under which Account Head will be created for this Supplier,Enter the company name under which Account Head will be created for this Supplier
Enter url parameter for message,Enter url parameter for message
Enter url parameter for receiver nos,Enter url parameter for receiver nos
Entertainment & Leisure,Entertainment & Leisure
Entertainment Expenses,Entertainment Expenses
Entries,Entries
Entries against,Entries against
Entries are not allowed against this Fiscal Year if the year is closed.,Entries are not allowed against this Fiscal Year if the year is closed.
Entries before {0} are frozen,Entries before {0} are frozen
Equity,Equity
Error: {0} > {1},Error: {0} > {1}
Estimated Material Cost,Estimated Material Cost
Everyone can read,Everyone can read
"Example: ABCD.#####If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.","Example: ABCD.#####If series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank."
Exchange Rate,Exchange Rate
Excise Page Number,Excise Page Number
Excise Voucher,Excise Voucher
Execution,Execution
Executive Search,Executive Search
Exemption Limit,Exemption Limit
Exhibition,Exhibition
Existing Customer,Existing Customer
Exit,Wyjście
Exit Interview Details,Exit Interview Details
Expected,Przewidywany
Expected Completion Date can not be less than Project Start Date,Expected Completion Date can not be less than Project Start Date
Expected Date cannot be before Material Request Date,Expected Date cannot be before Material Request Date
Expected Delivery Date,Expected Delivery Date
Expected Delivery Date cannot be before Purchase Order Date,Expected Delivery Date cannot be before Purchase Order Date
Expected Delivery Date cannot be before Sales Order Date,Expected Delivery Date cannot be before Sales Order Date
Expected End Date,Expected End Date
Expected Start Date,Expected Start Date
Expense,Expense
Expense Account,Expense Account
Expense Account is mandatory,Expense Account is mandatory
Expense Claim,Expense Claim
Expense Claim Approved,Expense Claim Approved
Expense Claim Approved Message,Expense Claim Approved Message
Expense Claim Detail,Expense Claim Detail
Expense Claim Details,Expense Claim Details
Expense Claim Rejected,Expense Claim Rejected
Expense Claim Rejected Message,Expense Claim Rejected Message
Expense Claim Type,Expense Claim Type
Expense Claim has been approved.,Expense Claim has been approved.
Expense Claim has been rejected.,Expense Claim has been rejected.
Expense Claim is pending approval. Only the Expense Approver can update status.,Expense Claim is pending approval. Only the Expense Approver can update status.
Expense Date,Expense Date
Expense Details,Expense Details
Expense Head,Expense Head
Expense account is mandatory for item {0},Expense account is mandatory for item {0}
Expense or Difference account is mandatory for Item {0} as it impacts overall stock value,Expense or Difference account is mandatory for Item {0} as it impacts overall stock value
Expenses,Wydatki
Expenses Booked,Expenses Booked
Expenses Included In Valuation,Expenses Included In Valuation
Expenses booked for the digest period,Expenses booked for the digest period
Expiry Date,Data ważności
Exports,Exports
External,External
Extract Emails,Extract Emails
FCFS Rate,FCFS Rate
Failed: ,Failed: 
Family Background,Family Background
Fax,Faks
Features Setup,Features Setup
Feed,Feed
Feed Type,Feed Type
Feedback,Feedback
Female,Female
Fetch exploded BOM (including sub-assemblies),Fetch exploded BOM (including sub-assemblies)
"Field available in Delivery Note, Quotation, Sales Invoice, Sales Order","Field available in Delivery Note, Quotation, Sales Invoice, Sales Order"
Files Folder ID,Files Folder ID
Fill the form and save it,Fill the form and save it
Filter based on customer,Filter based on customer
Filter based on item,Filter based on item
Financial / accounting year.,Financial / accounting year.
Financial Analytics,Financial Analytics
Financial Services,Financial Services
Financial Year End Date,Financial Year End Date
Financial Year Start Date,Financial Year Start Date
Finished Goods,Finished Goods
First Name,First Name
First Responded On,First Responded On
Fiscal Year,Rok obrotowy
Fixed Asset,Fixed Asset
Fixed Assets,Fixed Assets
Follow via Email,Follow via Email
"Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items.","Following table will show values if items are sub - contracted. These values will be fetched from the master of ""Bill of Materials"" of sub - contracted items."
Food,Żywność
"Food, Beverage & Tobacco","Food, Beverage & Tobacco"
For Company,Dla firmy
For Employee,Dla pracownika
For Employee Name,For Employee Name
For Price List,For Price List
For Production,For Production
For Reference Only.,Wyłącznie w celach informacyjnych.
For Sales Invoice,For Sales Invoice
For Server Side Print Formats,For Server Side Print Formats
For Supplier,Dla dostawcy
For Warehouse,Dla magazynu
For Warehouse is required before Submit,For Warehouse is required before Submit
"For e.g. 2012, 2012-13","For e.g. 2012, 2012-13"
For reference,For reference
For reference only.,
"For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes","For the convenience of customers, these codes can be used in print formats like Invoices and Delivery Notes"
Fraction,Fraction
Fraction Units,Fraction Units
Freeze Stock Entries,Freeze Stock Entries
Freeze Stocks Older Than [Days],Freeze Stocks Older Than [Days]
Freight and Forwarding Charges,Freight and Forwarding Charges
Friday,Piątek
From,Od
From Bill of Materials,Z zestawienia materiałowego
From Company,From Company
From Currency,From Currency
From Currency and To Currency cannot be same,From Currency and To Currency cannot be same
From Customer,From Customer
From Customer Issue,From Customer Issue
From Date,From Date
From Date must be before To Date,From Date must be before To Date
From Delivery Note,From Delivery Note
From Employee,From Employee
From Lead,From Lead
From Maintenance Schedule,From Maintenance Schedule
From Material Request,From Material Request
From Opportunity,From Opportunity
From Package No.,From Package No.
From Purchase Order,From Purchase Order
From Purchase Receipt,From Purchase Receipt
From Quotation,From Quotation
From Sales Order,From Sales Order
From Supplier Quotation,From Supplier Quotation
From Time,From Time
From Value,From Value
From and To dates required,From and To dates required
From value must be less than to value in row {0},From value must be less than to value in row {0}
Frozen,Frozen
Frozen Accounts Modifier,Frozen Accounts Modifier
Fulfilled,Fulfilled
Full Name,Full Name
Full-time,Full-time
Fully Completed,Fully Completed
Furniture and Fixture,Furniture and Fixture
Further accounts can be made under Groups but entries can be made against Ledger,Further accounts can be made under Groups but entries can be made against Ledger
"Further accounts can be made under Groups, but entries can be made against Ledger","Further accounts can be made under Groups, but entries can be made against Ledger"
Further nodes can be only created under 'Group' type nodes,Further nodes can be only created under 'Group' type nodes
GL Entry,GL Entry
Gantt Chart,Gantt Chart
Gantt chart of all tasks.,Gantt chart of all tasks.
Gender,Gender
General,General
General Ledger,General Ledger
Generate Description HTML,Generuj opis HTML
Generate Material Requests (MRP) and Production Orders.,Generate Material Requests (MRP) and Production Orders.
Generate Salary Slips,Generate Salary Slips
Generate Schedule,Generate Schedule
Generates HTML to include selected image in the description,Generuje HTML zawierający wybrany obrazek w opisie
Get Advances Paid,Get Advances Paid
Get Advances Received,Get Advances Received
Get Against Entries,Get Against Entries
Get Current Stock,Pobierz aktualny stan magazynowy
Get Items,Pobierz produkty
Get Items From Sales Orders,Get Items From Sales Orders
Get Items from BOM,Weź produkty z zestawienia materiałowego
Get Last Purchase Rate,Get Last Purchase Rate
Get Outstanding Invoices,Get Outstanding Invoices
Get Relevant Entries,Get Relevant Entries
Get Sales Orders,Get Sales Orders
Get Specification Details,Pobierz szczegóły specyfikacji
Get Stock and Rate,Pobierz stan magazynowy i stawkę
Get Template,Get Template
Get Terms and Conditions,Get Terms and Conditions
Get Weekly Off Dates,Get Weekly Off Dates
"Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos.","Get valuation rate and available stock at source/target warehouse on mentioned posting date-time. If serialized item, please press this button after entering serial nos."
Global Defaults,Global Defaults
Global POS Setting {0} already created for company {1},Global POS Setting {0} already created for company {1}
Global Settings,Global Settings
"Go to the appropriate group (usually Application of Funds > Current Assets > Bank Accounts and create a new Account Ledger (by clicking on Add Child) of type ""Bank""","Go to the appropriate group (usually Application of Funds > Current Assets > Bank Accounts and create a new Account Ledger (by clicking on Add Child) of type ""Bank"""
"Go to the appropriate group (usually Source of Funds > Current Liabilities > Taxes and Duties and create a new Account Ledger (by clicking on Add Child) of type ""Tax"" and do mention the Tax rate.","Go to the appropriate group (usually Source of Funds > Current Liabilities > Taxes and Duties and create a new Account Ledger (by clicking on Add Child) of type ""Tax"" and do mention the Tax rate."
Goal,Goal
Goals,Goals
Goods received from Suppliers.,Produkty otrzymane od dostawców.
Google Drive,Google Drive
Google Drive Access Allowed,Google Drive Access Allowed
Government,Government
Graduate,Graduate
Grand Total,Grand Total
Grand Total (Company Currency),Grand Total (Company Currency)
"Grid ""","Grid """
Grocery,Grocery
Gross Margin %,Gross Margin %
Gross Margin Value,Gross Margin Value
Gross Pay,Gross Pay
Gross Pay + Arrear Amount +Encashment Amount - Total Deduction,Gross Pay + Arrear Amount +Encashment Amount - Total Deduction
Gross Profit,Gross Profit
Gross Profit (%),Gross Profit (%)
Gross Weight,Gross Weight
Gross Weight UOM,Gross Weight UOM
Group,Grupa
Group by Account,Group by Account
Group by Voucher,Group by Voucher
Group or Ledger,Group or Ledger
Groups,Grupy
HR Manager,HR Manager
HR Settings,HR Settings
HTML / Banner that will show on the top of product list.,HTML / Banner that will show on the top of product list.
Half Day,Half Day
Half Yearly,Half Yearly
Half-yearly,Half-yearly
Happy Birthday!,Happy Birthday!
Hardware,Hardware
Has Batch No,Posada numer lotu (batch'u)
Has Child Node,Has Child Node
Has Serial No,Posiada numer seryjny
Head of Marketing and Sales,Head of Marketing and Sales
Header,Nagłówek
Health Care,Opieka zdrowotna
Health Concerns,Health Concerns
Health Details,Health Details
Held On,Held On
Help HTML,Help HTML
"Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")","Help: To link to another record in the system, use ""#Form/Note/[Note Name]"" as the Link URL. (don't use ""http://"")"
"Here you can maintain family details like name and occupation of parent, spouse and children","Here you can maintain family details like name and occupation of parent, spouse and children"
"Here you can maintain height, weight, allergies, medical concerns etc","Here you can maintain height, weight, allergies, medical concerns etc"
Hide Currency Symbol,Hide Currency Symbol
High,Wysoki
History In Company,History In Company
Hold,Hold
Holiday,Holiday
Holiday List,Holiday List
Holiday List Name,Holiday List Name
Holiday master.,Holiday master.
Holidays,Holidays
Home,Home
Host,Host
"Host, Email and Password required if emails are to be pulled","Host, Email and Password required if emails are to be pulled"
Hour,Godzina
Hour Rate,Stawka godzinowa
Hour Rate Labour,Hour Rate Labour
Hours,Godziny
How frequently?,Jak często?
"How should this currency be formatted? If not set, will use system defaults","How should this currency be formatted? If not set, will use system defaults"
Human Resources,Kadry
Identification of the package for the delivery (for print),Identification of the package for the delivery (for print)
If Income or Expense,If Income or Expense
If Monthly Budget Exceeded,If Monthly Budget Exceeded
"If Sale BOM is defined, the actual BOM of the Pack is displayed as table. Available in Delivery Note and Sales Order","If Sale BOM is defined, the actual BOM of the Pack is displayed as table. Available in Delivery Note and Sales Order"
"If Supplier Part Number exists for given Item, it gets stored here","If Supplier Part Number exists for given Item, it gets stored here"
If Yearly Budget Exceeded,If Yearly Budget Exceeded
"If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material.","If checked, BOM for sub-assembly items will be considered for getting raw materials. Otherwise, all sub-assembly items will be treated as a raw material."
"If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day","If checked, Total no. of Working Days will include holidays, and this will reduce the value of Salary Per Day"
"If checked, the tax amount will be considered as already included in the Print Rate / Print Amount","If checked, the tax amount will be considered as already included in the Print Rate / Print Amount"
If different than customer address,If different than customer address
"If disable, 'Rounded Total' field will not be visible in any transaction","If disable, 'Rounded Total' field will not be visible in any transaction"
"If enabled, the system will post accounting entries for inventory automatically.","If enabled, the system will post accounting entries for inventory automatically."
If more than one package of the same type (for print),If more than one package of the same type (for print)
"If no change in either Quantity or Valuation Rate, leave the cell blank.","If no change in either Quantity or Valuation Rate, leave the cell blank."
If not applicable please enter: NA,If not applicable please enter: NA
"If not checked, the list will have to be added to each Department where it has to be applied.","If not checked, the list will have to be added to each Department where it has to be applied."
"If specified, send the newsletter using this email address","If specified, send the newsletter using this email address"
"If the account is frozen, entries are allowed to restricted users.","If the account is frozen, entries are allowed to restricted users."
"If this Account represents a Customer, Supplier or Employee, set it here.","If this Account represents a Customer, Supplier or Employee, set it here."
If you follow Quality Inspection. Enables Item QA Required and QA No in Purchase Receipt,If you follow Quality Inspection. Enables Item QA Required and QA No in Purchase Receipt
If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity,If you have Sales Team and Sale Partners (Channel Partners)  they can be tagged and maintain their contribution in the sales activity
"If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below.","If you have created a standard template in Purchase Taxes and Charges Master, select one and click on the button below."
"If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below.","If you have created a standard template in Sales Taxes and Charges Master, select one and click on the button below."
"If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page","If you have long print formats, this feature can be used to split the page to be printed on multiple pages with all headers and footers on each page"
If you involve in manufacturing activity. Enables Item 'Is Manufactured',If you involve in manufacturing activity. Enables Item 'Is Manufactured'
Ignore,Ignore
Ignored: ,Ignored: 
Image,Obrazek
Image View,Image View
Implementation Partner,Implementation Partner
Import Attendance,Import Attendance
Import Failed!,Import Failed!
Import Log,Import Log
Import Successful!,Import Successful!
Imports,Imports
In Hours,In Hours
In Process,In Process
In Qty,In Qty
In Value,In Value
In Words,Słownie
In Words (Company Currency),In Words (Company Currency)
In Words (Export) will be visible once you save the Delivery Note.,In Words (Export) will be visible once you save the Delivery Note.
In Words will be visible once you save the Delivery Note.,In Words will be visible once you save the Delivery Note.
In Words will be visible once you save the Purchase Invoice.,In Words will be visible once you save the Purchase Invoice.
In Words will be visible once you save the Purchase Order.,In Words will be visible once you save the Purchase Order.
In Words will be visible once you save the Purchase Receipt.,In Words will be visible once you save the Purchase Receipt.
In Words will be visible once you save the Quotation.,In Words will be visible once you save the Quotation.
In Words will be visible once you save the Sales Invoice.,In Words will be visible once you save the Sales Invoice.
In Words will be visible once you save the Sales Order.,In Words will be visible once you save the Sales Order.
Incentives,Incentives
Include Reconciled Entries,Include Reconciled Entries
Include holidays in Total no. of Working Days,Include holidays in Total no. of Working Days
Income,Income
Income / Expense,Income / Expense
Income Account,Income Account
Income Booked,Income Booked
Income Tax,Income Tax
Income Year to Date,Income Year to Date
Income booked for the digest period,Income booked for the digest period
Incoming,Incoming
Incoming Rate,Incoming Rate
Incoming quality inspection.,Incoming quality inspection.
Incorrect or Inactive BOM {0} for Item {1} at row {2},Incorrect or Inactive BOM {0} for Item {1} at row {2}
Indicates that the package is a part of this delivery,Indicates that the package is a part of this delivery
Indirect Expenses,Indirect Expenses
Indirect Income,Indirect Income
Individual,Individual
Industry,Industry
Industry Type,Industry Type
Inspected By,Skontrolowane przez
Inspection Criteria,Kryteria kontrolne
Inspection Required,Wymagana kontrola
Inspection Type,Typ kontroli
Installation Date,Installation Date
Installation Note,Installation Note
Installation Note Item,Installation Note Item
Installation Note {0} has already been submitted,Installation Note {0} has already been submitted
Installation Status,Installation Status
Installation Time,Installation Time
Installation date cannot be before delivery date for Item {0},Installation date cannot be before delivery date for Item {0}
Installation record for a Serial No.,Installation record for a Serial No.
Installed Qty,Installed Qty
Instructions,Instrukcje
Integrate incoming support emails to Support Ticket,Integrate incoming support emails to Support Ticket
Interested,Interested
Intern,Intern
Internal,Internal
Internet Publishing,Internet Publishing
Introduction,Introduction
Invalid Barcode or Serial No,Invalid Barcode or Serial No
Invalid Mail Server. Please rectify and try again.,Invalid Mail Server. Please rectify and try again.
Invalid Master Name,Invalid Master Name
Invalid User Name or Support Password. Please rectify and try again.,Invalid User Name or Support Password. Please rectify and try again.
Invalid quantity specified for item {0}. Quantity should be greater than 0.,Invalid quantity specified for item {0}. Quantity should be greater than 0.
Inventory,Inwentarz
Inventory & Support,Inventory & Support
Investment Banking,Investment Banking
Investments,Investments
Invoice Date,Invoice Date
Invoice Details,Invoice Details
Invoice No,Invoice No
Invoice Period From Date,Invoice Period From Date
Invoice Period From and Invoice Period To dates mandatory for recurring invoice,Invoice Period From and Invoice Period To dates mandatory for recurring invoice
Invoice Period To Date,Invoice Period To Date
Invoiced Amount (Exculsive Tax),Invoiced Amount (Exculsive Tax)
Is Active,Jest aktywny
Is Advance,Is Advance
Is Cancelled,Is Cancelled
Is Carry Forward,Is Carry Forward
Is Default,Jest domyślny
Is Encash,Is Encash
Is Fixed Asset Item,Jest stałą pozycją aktywów
Is LWP,Is LWP
Is Opening,Is Opening
Is Opening Entry,Is Opening Entry
Is POS,Is POS
Is Primary Contact,Is Primary Contact
Is Purchase Item,Jest produktem kupowalnym
Is Sales Item,Jest produktem sprzedawalnym
Is Service Item,Jest usługą
Is Stock Item,Jest produktem w magazynie
Is Sub Contracted Item,Produkcja jest zlecona innemu podmiotowi
Is Subcontracted,Is Subcontracted
Is this Tax included in Basic Rate?,Is this Tax included in Basic Rate?
Issue,Issue
Issue Date,Issue Date
Issue Details,Issue Details
Issued Items Against Production Order,Issued Items Against Production Order
It can also be used to create opening stock entries and to fix stock value.,It can also be used to create opening stock entries and to fix stock value.
Item,Produkt
Item Advanced,Item Advanced
Item Barcode,Kod kreskowy produktu
Item Batch Nos,Item Batch Nos
Item Code,Kod produktu
Item Code and Warehouse should already exist.,Item Code and Warehouse should already exist.
Item Code cannot be changed for Serial No.,Item Code cannot be changed for Serial No.
Item Code is mandatory because Item is not automatically numbered,Item Code is mandatory because Item is not automatically numbered
Item Code required at Row No {0},Item Code required at Row No {0}
Item Customer Detail,Item Customer Detail
Item Description,Opis produktu
Item Desription,Opis produktu
Item Details,Szczegóły produktu
Item Group,Grupa produktów
Item Group Name,Item Group Name
Item Group Tree,Drzewo grup produktów
Item Groups in Details,Item Groups in Details
Item Image (if not slideshow),Item Image (if not slideshow)
Item Name,Nazwa produktu
Item Naming By,Item Naming By
Item Price,Cena produktu
Item Prices,Ceny produktu
Item Quality Inspection Parameter,Item Quality Inspection Parameter
Item Reorder,Item Reorder
Item Serial No,Nr seryjny produktu
Item Serial Nos,Item Serial Nos
Item Shortage Report,Item Shortage Report
Item Supplier,Dostawca produktu
Item Supplier Details,Szczegóły dostawcy produktu
Item Tax,Podatek dla produktu
Item Tax Amount,Wysokość podatku dla produktu
Item Tax Rate,Stawka podatku dla produktu
Item Tax Row {0} must have account of type Tax or Income or Expense or Chargeable,Item Tax Row {0} must have account of type Tax or Income or Expense or Chargeable
Item Tax1,Item Tax1
Item To Manufacture,Produkt do wyprodukowania
Item UOM,Jednostka miary produktu
Item Website Specification,Item Website Specification
Item Website Specifications,Item Website Specifications
Item Wise Tax Detail,Item Wise Tax Detail
Item Wise Tax Detail ,
Item is required,Item is required
Item is updated,Item is updated
Item master.,Item master.
"Item must be a purchase item, as it is present in one or many Active BOMs","Item must be a purchase item, as it is present in one or many Active BOMs"
Item or Warehouse for row {0} does not match Material Request,Item or Warehouse for row {0} does not match Material Request
Item table can not be blank,Item table can not be blank
Item to be manufactured or repacked,"Produkt, który ma zostać wyprodukowany lub przepakowany"
Item valuation updated,Item valuation updated
Item will be saved by this name in the data base.,Produkt zostanie zapisany pod tą nazwą w bazie danych.
Item {0} appears multiple times in Price List {1},Item {0} appears multiple times in Price List {1}
Item {0} does not exist,Item {0} does not exist
Item {0} does not exist in the system or has expired,Item {0} does not exist in the system or has expired
Item {0} does not exist in {1} {2},Item {0} does not exist in {1} {2}
Item {0} has already been returned,Item {0} has already been returned
Item {0} has been entered multiple times against same operation,Item {0} has been entered multiple times against same operation
Item {0} has been entered multiple times with same description or date,Item {0} has been entered multiple times with same description or date
Item {0} has been entered multiple times with same description or date or warehouse,Item {0} has been entered multiple times with same description or date or warehouse
Item {0} has been entered twice,Item {0} has been entered twice
Item {0} has reached its end of life on {1},Item {0} has reached its end of life on {1}
Item {0} ignored since it is not a stock item,Item {0} ignored since it is not a stock item
Item {0} is cancelled,Item {0} is cancelled
Item {0} is not Purchase Item,Item {0} is not Purchase Item
Item {0} is not a serialized Item,Item {0} is not a serialized Item
Item {0} is not a stock Item,Item {0} is not a stock Item
Item {0} is not active or end of life has been reached,Item {0} is not active or end of life has been reached
Item {0} is not setup for Serial Nos. Check Item master,Item {0} is not setup for Serial Nos. Check Item master
Item {0} is not setup for Serial Nos. Column must be blank,Item {0} is not setup for Serial Nos. Column must be blank
Item {0} must be Sales Item,Item {0} must be Sales Item
Item {0} must be Sales or Service Item in {1},Item {0} must be Sales or Service Item in {1}
Item {0} must be Service Item,Item {0} must be Service Item
Item {0} must be a Purchase Item,Item {0} must be a Purchase Item
Item {0} must be a Sales Item,Item {0} must be a Sales Item
Item {0} must be a Service Item.,Item {0} must be a Service Item.
Item {0} must be a Sub-contracted Item,Item {0} must be a Sub-contracted Item
Item {0} must be a stock Item,Item {0} must be a stock Item
Item {0} must be manufactured or sub-contracted,Item {0} must be manufactured or sub-contracted
Item {0} not found,Item {0} not found
Item {0} with Serial No {1} is already installed,Item {0} with Serial No {1} is already installed
Item {0} with same description entered twice,Item {0} with same description entered twice
"Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected.","Item, Warranty, AMC (Annual Maintenance Contract) details will be automatically fetched when Serial Number is selected."
Item-wise Price List Rate,Item-wise Price List Rate
Item-wise Purchase History,Item-wise Purchase History
Item-wise Purchase Register,Item-wise Purchase Register
Item-wise Sales History,Item-wise Sales History
Item-wise Sales Register,Item-wise Sales Register
"Item: {0} managed batch-wise, can not be reconciled using \					Stock Reconciliation, instead use Stock Entry","Item: {0} managed batch-wise, can not be reconciled using \					Stock Reconciliation, instead use Stock Entry"
Item: {0} not found in the system,Item: {0} not found in the system
Items,Produkty
Items To Be Requested,Items To Be Requested
Items required,Items required
"Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty","Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty"
Items which do not exist in Item master can also be entered on customer's request,Items which do not exist in Item master can also be entered on customer's request
Itemwise Discount,Itemwise Discount
Itemwise Recommended Reorder Level,Itemwise Recommended Reorder Level
Job Applicant,Job Applicant
Job Opening,Job Opening
Job Profile,Job Profile
Job Title,Job Title
"Job profile, qualifications required etc.","Job profile, qualifications required etc."
Jobs Email Settings,Jobs Email Settings
Journal Entries,Journal Entries
Journal Entry,Journal Entry
Journal Voucher,Journal Voucher
Journal Voucher Detail,Journal Voucher Detail
Journal Voucher Detail No,Journal Voucher Detail No
Journal Voucher {0} does not have account {1} or already matched,Journal Voucher {0} does not have account {1} or already matched
Journal Vouchers {0} are un-linked,Journal Vouchers {0} are un-linked
Keep a track of communication related to this enquiry which will help for future reference.,Keep a track of communication related to this enquiry which will help for future reference.
Keep it web friendly 900px (w) by 100px (h),Keep it web friendly 900px (w) by 100px (h)
Key Performance Area,Key Performance Area
Key Responsibility Area,Key Responsibility Area
Kg,Kg
LR Date,LR Date
LR No,Nr ciężarówki
Label,Label
Landed Cost Item,Landed Cost Item
Landed Cost Items,Landed Cost Items
Landed Cost Purchase Receipt,Landed Cost Purchase Receipt
Landed Cost Purchase Receipts,Landed Cost Purchase Receipts
Landed Cost Wizard,Landed Cost Wizard
Landed Cost updated successfully,Landed Cost updated successfully
Language,Language
Last Name,Last Name
Last Purchase Rate,Last Purchase Rate
Latest,Latest
Lead,Lead
Lead Details,Lead Details
Lead Id,Lead Id
Lead Name,Lead Name
Lead Owner,Lead Owner
Lead Source,Lead Source
Lead Status,Lead Status
Lead Time Date,Termin realizacji
Lead Time Days,Czas realizacji (dni)
Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.,Lead Time days is number of days by which this item is expected in your warehouse. This days is fetched in Material Request when you select this item.
Lead Type,Lead Type
Lead must be set if Opportunity is made from Lead,Lead must be set if Opportunity is made from Lead
Leave Allocation,Leave Allocation
Leave Allocation Tool,Leave Allocation Tool
Leave Application,Leave Application
Leave Approver,Leave Approver
Leave Approvers,Leave Approvers
Leave Balance Before Application,Leave Balance Before Application
Leave Block List,Leave Block List
Leave Block List Allow,Leave Block List Allow
Leave Block List Allowed,Leave Block List Allowed
Leave Block List Date,Leave Block List Date
Leave Block List Dates,Leave Block List Dates
Leave Block List Name,Leave Block List Name
Leave Blocked,Leave Blocked
Leave Control Panel,Leave Control Panel
Leave Encashed?,Leave Encashed?
Leave Encashment Amount,Leave Encashment Amount
Leave Type,Leave Type
Leave Type Name,Leave Type Name
Leave Without Pay,Leave Without Pay
Leave application has been approved.,Leave application has been approved.
Leave application has been rejected.,Leave application has been rejected.
Leave approver must be one of {0},Leave approver must be one of {0}
Leave blank if considered for all branches,Leave blank if considered for all branches
Leave blank if considered for all departments,Leave blank if considered for all departments
Leave blank if considered for all designations,Leave blank if considered for all designations
Leave blank if considered for all employee types,Leave blank if considered for all employee types
"Leave can be approved by users with Role, ""Leave Approver""","Leave can be approved by users with Role, ""Leave Approver"""
Leave of type {0} cannot be longer than {1},Leave of type {0} cannot be longer than {1}
Leaves Allocated Successfully for {0},Leaves Allocated Successfully for {0}
Leaves for type {0} already allocated for Employee {1} for Fiscal Year {0},Leaves for type {0} already allocated for Employee {1} for Fiscal Year {0}
Leaves must be allocated in multiples of 0.5,Leaves must be allocated in multiples of 0.5
Ledger,Ledger
Ledgers,Ledgers
Left,Left
Legal,Legal
Legal Expenses,Legal Expenses
Letter Head,Letter Head
Letter Heads for print templates.,Letter Heads for print templates.
Level,Level
Lft,Lft
Liability,Liability
List a few of your customers. They could be organizations or individuals.,List a few of your customers. They could be organizations or individuals.
List a few of your suppliers. They could be organizations or individuals.,List a few of your suppliers. They could be organizations or individuals.
List items that form the package.,List items that form the package.
List this Item in multiple groups on the website.,List this Item in multiple groups on the website.
"List your products or services that you buy or sell. Make sure to check the Item Group, Unit of Measure and other properties when you start.","List your products or services that you buy or sell. Make sure to check the Item Group, Unit of Measure and other properties when you start."
"List your tax heads (e.g. VAT, Excise; they should have unique names) and their standard rates. This will create a standard template, which you can edit and add more later.","List your tax heads (e.g. VAT, Excise; they should have unique names) and their standard rates. This will create a standard template, which you can edit and add more later."
Loading...,Loading...
Loans (Liabilities),Loans (Liabilities)
Loans and Advances (Assets),Loans and Advances (Assets)
Local,Local
Login with your new User ID,Login with your new User ID
Logo,Logo
Logo and Letter Heads,Logo and Letter Heads
Lost,Lost
Lost Reason,Lost Reason
Low,Low
Lower Income,Lower Income
MTN Details,MTN Details
Main,Główny
Main Reports,Raporty główne
Maintain Same Rate Throughout Sales Cycle,Maintain Same Rate Throughout Sales Cycle
Maintain same rate throughout purchase cycle,Maintain same rate throughout purchase cycle
Maintenance,Maintenance
Maintenance Date,Maintenance Date
Maintenance Details,Maintenance Details
Maintenance Schedule,Maintenance Schedule
Maintenance Schedule Detail,Maintenance Schedule Detail
Maintenance Schedule Item,Maintenance Schedule Item
Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule',Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule'
Maintenance Schedule {0} exists against {0},Maintenance Schedule {0} exists against {0}
Maintenance Schedule {0} must be cancelled before cancelling this Sales Order,Maintenance Schedule {0} must be cancelled before cancelling this Sales Order
Maintenance Schedules,Maintenance Schedules
Maintenance Status,Maintenance Status
Maintenance Time,Maintenance Time
Maintenance Type,Maintenance Type
Maintenance Visit,Maintenance Visit
Maintenance Visit Purpose,Maintenance Visit Purpose
Maintenance Visit {0} must be cancelled before cancelling this Sales Order,Maintenance Visit {0} must be cancelled before cancelling this Sales Order
Maintenance start date can not be before delivery date for Serial No {0},Maintenance start date can not be before delivery date for Serial No {0}
Major/Optional Subjects,Major/Optional Subjects
Make ,Stwórz
Make Accounting Entry For Every Stock Movement,Make Accounting Entry For Every Stock Movement
Make Bank Voucher,Make Bank Voucher
Make Credit Note,Make Credit Note
Make Debit Note,Make Debit Note
Make Delivery,Make Delivery
Make Difference Entry,Make Difference Entry
Make Excise Invoice,Make Excise Invoice
Make Installation Note,Make Installation Note
Make Invoice,Make Invoice
Make Maint. Schedule,Make Maint. Schedule
Make Maint. Visit,Make Maint. Visit
Make Maintenance Visit,Make Maintenance Visit
Make Packing Slip,Make Packing Slip
Make Payment Entry,Make Payment Entry
Make Purchase Invoice,Make Purchase Invoice
Make Purchase Order,Make Purchase Order
Make Purchase Receipt,Make Purchase Receipt
Make Salary Slip,Make Salary Slip
Make Salary Structure,Make Salary Structure
Make Sales Invoice,Make Sales Invoice
Make Sales Order,Make Sales Order
Make Supplier Quotation,Make Supplier Quotation
Male,Male
Manage Customer Group Tree.,Manage Customer Group Tree.
Manage Sales Person Tree.,Manage Sales Person Tree.
Manage Territory Tree.,Manage Territory Tree.
Manage cost of operations,Zarządzaj kosztami działań
Management,Management
Manager,Manager
"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.",Wymagane jeśli jest produktem w magazynie. Również z domyślnego magazynu rezerwowana jest wymagana ilość przy Zleceniu Sprzedaży.
Manufacture against Sales Order,Manufacture against Sales Order
Manufacture/Repack,Produkcja/Przepakowanie
Manufactured Qty,Manufactured Qty
Manufactured quantity will be updated in this warehouse,Manufactured quantity will be updated in this warehouse
Manufactured quantity {0} cannot be greater than planned quanitity {1} in Production Order {2},Manufactured quantity {0} cannot be greater than planned quanitity {1} in Production Order {2}
Manufacturer,Producent
Manufacturer Part Number,Numer katalogowy producenta
Manufacturing,Produkcja
Manufacturing Quantity,Ilość produkcji
Manufacturing Quantity is mandatory,Manufacturing Quantity is mandatory
Margin,Margin
Marital Status,Marital Status
Market Segment,Market Segment
Marketing,Marketing
Marketing Expenses,Marketing Expenses
Married,Married
Mass Mailing,Mass Mailing
Master Name,Master Name
Master Name is mandatory if account type is Warehouse,Master Name is mandatory if account type is Warehouse
Master Type,Master Type
Masters,Masters
Match non-linked Invoices and Payments.,Match non-linked Invoices and Payments.
Material Issue,Wydanie materiałów
Material Receipt,Przyjęcie materiałów
Material Request,Zamówienie produktu
Material Request Detail No,Material Request Detail No
Material Request For Warehouse,Material Request For Warehouse
Material Request Item,Material Request Item
Material Request Items,Material Request Items
Material Request No,Material Request No
Material Request Type,Typ zamówienia produktu
Material Request of maximum {0} can be made for Item {1} against Sales Order {2},Material Request of maximum {0} can be made for Item {1} against Sales Order {2}
Material Request used to make this Stock Entry,Material Request used to make this Stock Entry
Material Request {0} is cancelled or stopped,Material Request {0} is cancelled or stopped
Material Requests for which Supplier Quotations are not created,Material Requests for which Supplier Quotations are not created
Material Requests {0} created,Material Requests {0} created
Material Requirement,Material Requirement
Material Transfer,Transfer materiałów
Materials,Materiały
Materials Required (Exploded),Materials Required (Exploded)
Max 5 characters,Max 5 characters
Max Days Leave Allowed,Max Days Leave Allowed
Max Discount (%),Maksymalny rabat (%)
Max Qty,Maks. Ilość
Maximum allowed credit is {0} days after posting date,Maximum allowed credit is {0} days after posting date
Maximum {0} rows allowed,Maximum {0} rows allowed
Maxiumm discount for Item {0} is {1}%,Maxiumm discount for Item {0} is {1}%
Medical,Medyczny
Medium,Medium
"Merging is only possible if following properties are same in both records. Group or Ledger, Root Type, Company","Merging is only possible if following properties are same in both records. Group or Ledger, Root Type, Company"
Message,Wiadomość
Message Parameter,Message Parameter
Message Sent,Wiadomość wysłana
Message updated,Message updated
Messages,Wiadomości
Messages greater than 160 characters will be split into multiple messages,Messages greater than 160 characters will be split into multiple messages
Middle Income,Middle Income
Milestone,Milestone
Milestone Date,Milestone Date
Milestones,Milestones
Milestones will be added as Events in the Calendar,Milestones will be added as Events in the Calendar
Min Order Qty,Min. wartość zamówienia
Min Qty,Min. ilość
Min Qty can not be greater than Max Qty,Min Qty can not be greater than Max Qty
Minimum Order Qty,Minimalna wartość zamówienia
Minute,Minuta
Misc Details,Misc Details
Miscellaneous Expenses,Miscellaneous Expenses
Miscelleneous,Miscelleneous
Mobile No,Nr tel. Komórkowego
Mobile No.,Nr tel. Komórkowego
Mode of Payment,Mode of Payment
Modern,Nowoczesny
Modified Amount,Modified Amount
Monday,Poniedziałek
Month,Miesiąc
Monthly,Miesięcznie
Monthly Attendance Sheet,Monthly Attendance Sheet
Monthly Earning & Deduction,Monthly Earning & Deduction
Monthly Salary Register,Monthly Salary Register
Monthly salary statement.,Monthly salary statement.
More Details,More Details
More Info,Więcej informacji
Motion Picture & Video,Motion Picture & Video
Moving Average,Moving Average
Moving Average Rate,Moving Average Rate
Mr,Pan
Ms,Pani
Multiple Item prices.,Multiple Item prices.
"Multiple Price Rule exists with same criteria, please resolve \			conflict by assigning priority. Price Rules: {0}","Multiple Price Rule exists with same criteria, please resolve \			conflict by assigning priority. Price Rules: {0}"
Music,Muzyka
Must be Whole Number,Musi być liczbą całkowitą
Name,Imię
Name and Description,Nazwa i opis
Name and Employee ID,Name and Employee ID
"Name of new Account. Note: Please don't create accounts for Customers and Suppliers, they are created automatically from the Customer and Supplier master","Name of new Account. Note: Please don't create accounts for Customers and Suppliers, they are created automatically from the Customer and Supplier master"
Name of person or organization that this address belongs to.,Name of person or organization that this address belongs to.
Name of the Budget Distribution,Name of the Budget Distribution
Naming Series,Naming Series
Negative Quantity is not allowed,Negative Quantity is not allowed
Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5},Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5}
Negative Valuation Rate is not allowed,Negative Valuation Rate is not allowed
Negative balance in Batch {0} for Item {1} at Warehouse {2} on {3} {4},Negative balance in Batch {0} for Item {1} at Warehouse {2} on {3} {4}
Net Pay,Net Pay
Net Pay (in words) will be visible once you save the Salary Slip.,Net Pay (in words) will be visible once you save the Salary Slip.
Net Total,Łączna wartość netto
Net Total (Company Currency),Łączna wartość netto (waluta firmy)
Net Weight,Waga netto
Net Weight UOM,Jednostka miary wagi netto
Net Weight of each Item,Waga netto każdego produktu
Net pay cannot be negative,Net pay cannot be negative
Never,Nigdy
New ,Nowy
New Account,Nowe konto
New Account Name,Nowa nazwa konta
New BOM,Nowe zestawienie materiałowe
New Communications,New Communications
New Company,Nowa firma
New Cost Center,New Cost Center
New Cost Center Name,New Cost Center Name
New Delivery Notes,New Delivery Notes
New Enquiries,New Enquiries
New Leads,New Leads
New Leave Application,New Leave Application
New Leaves Allocated,New Leaves Allocated
New Leaves Allocated (In Days),New Leaves Allocated (In Days)
New Material Requests,New Material Requests
New Projects,Nowe projekty
New Purchase Orders,New Purchase Orders
New Purchase Receipts,New Purchase Receipts
New Quotations,New Quotations
New Sales Orders,New Sales Orders
New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt,New Serial No cannot have Warehouse. Warehouse must be set by Stock Entry or Purchase Receipt
New Stock Entries,New Stock Entries
New Stock UOM,New Stock UOM
New Stock UOM is required,New Stock UOM is required
New Stock UOM must be different from current stock UOM,New Stock UOM must be different from current stock UOM
New Supplier Quotations,New Supplier Quotations
New Support Tickets,New Support Tickets
New UOM must NOT be of type Whole Number,New UOM must NOT be of type Whole Number
New Workplace,New Workplace
Newsletter,Newsletter
Newsletter Content,Newsletter Content
Newsletter Status,Newsletter Status
Newsletter has already been sent,Newsletter has already been sent
Newsletters is not allowed for Trial users,Newsletters is not allowed for Trial users
"Newsletters to contacts, leads.","Newsletters to contacts, leads."
Newspaper Publishers,Newspaper Publishers
Next,Następny
Next Contact By,Next Contact By
Next Contact Date,Next Contact Date
Next Date,Next Date
Next email will be sent on:,Next email will be sent on:
No,Nie
No Customer Accounts found.,No Customer Accounts found.
No Customer or Supplier Accounts found,No Customer or Supplier Accounts found
No Expense Approvers. Please assign 'Expense Approver' Role to atleast one user,No Expense Approvers. Please assign 'Expense Approver' Role to atleast one user
No Item with Barcode {0},No Item with Barcode {0}
No Item with Serial No {0},No Item with Serial No {0}
No Items to pack,No Items to pack
No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user,No Leave Approvers. Please assign 'Leave Approver' Role to atleast one user
No Permission,No Permission
No Production Orders created,No Production Orders created
No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.,No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.
No accounting entries for the following warehouses,No accounting entries for the following warehouses
No addresses created,No addresses created
No contacts created,No contacts created
No default BOM exists for Item {0},No default BOM exists for Item {0}
No description given,No description given
No employee found,No employee found
No employee found!,No employee found!
No of Requested SMS,No of Requested SMS
No of Sent SMS,No of Sent SMS
No of Visits,No of Visits
No permission,
No record found,No record found
No salary slip found for month: ,No salary slip found for month: 
Non Profit,Non Profit
Nos,Nos
Not Active,Not Active
Not Applicable,Not Applicable
Not Available,Niedostępny
Not Billed,Not Billed
Not Delivered,Not Delivered
Not Set,Not Set
Not allowed to update entries older than {0},Not allowed to update entries older than {0}
Not authorized to edit frozen Account {0},Not authorized to edit frozen Account {0}
Not authroized since {0} exceeds limits,Not authroized since {0} exceeds limits
Not permitted,Not permitted
Note,Note
Note User,Note User
"Note: Backups and files are not deleted from Dropbox, you will have to delete them manually.","Note: Backups and files are not deleted from Dropbox, you will have to delete them manually."
"Note: Backups and files are not deleted from Google Drive, you will have to delete them manually.","Note: Backups and files are not deleted from Google Drive, you will have to delete them manually."
Note: Due Date exceeds the allowed credit days by {0} day(s),Note: Due Date exceeds the allowed credit days by {0} day(s)
Note: Email will not be sent to disabled users,Note: Email will not be sent to disabled users
Note: Item {0} entered multiple times,Note: Item {0} entered multiple times
Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified,Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified
Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0,Note: System will not check over-delivery and over-booking for Item {0} as quantity or amount is 0
Note: There is not enough leave balance for Leave Type {0},Note: There is not enough leave balance for Leave Type {0}
Note: This Cost Center is a Group. Cannot make accounting entries against groups.,Note: This Cost Center is a Group. Cannot make accounting entries against groups.
Note: {0},Note: {0}
Notes,Notatki
Notes:,Notatki:
Nothing to request,Nothing to request
Notice (days),Notice (days)
Notification Control,Notification Control
Notification Email Address,Notification Email Address
Notify by Email on creation of automatic Material Request,Notify by Email on creation of automatic Material Request
Number Format,Number Format
Offer Date,Offer Date
Office,Biuro
Office Equipments,Office Equipments
Office Maintenance Expenses,Office Maintenance Expenses
Office Rent,Office Rent
Old Parent,Old Parent
On Net Total,On Net Total
On Previous Row Amount,On Previous Row Amount
On Previous Row Total,On Previous Row Total
Online Auctions,Online Auctions
Only Leave Applications with status 'Approved' can be submitted,Only Leave Applications with status 'Approved' can be submitted
"Only Serial Nos with status ""Available"" can be delivered.",Tylko numery seryjne o statusie “Dostępny” mogą zostać dostarczone.
Only leaf nodes are allowed in transaction,Only leaf nodes are allowed in transaction
Only the selected Leave Approver can submit this Leave Application,Only the selected Leave Approver can submit this Leave Application
Open,Otwarty
Open Production Orders,Open Production Orders
Open Tickets,Open Tickets
Open source ERP built for the web,Open source ERP built for the web
Opening (Cr),Opening (Cr)
Opening (Dr),Opening (Dr)
Opening Date,Opening Date
Opening Entry,Opening Entry
Opening Qty,Opening Qty
Opening Time,Opening Time
Opening Value,Opening Value
Opening for a Job.,Opening for a Job.
Operating Cost,Operating Cost
Operation Description,Operation Description
Operation No,Operation No
Operation Time (mins),Operation Time (mins)
Operation {0} is repeated in Operations Table,Operation {0} is repeated in Operations Table
Operation {0} not present in Operations Table,Operation {0} not present in Operations Table
Operations,Działania
Opportunity,Szansa
Opportunity Date,Data szansy
Opportunity From,Szansa od
Opportunity Item,Opportunity Item
Opportunity Items,Opportunity Items
Opportunity Lost,Opportunity Lost
Opportunity Type,Typ szansy
Optional. This setting will be used to filter in various transactions.,Optional. This setting will be used to filter in various transactions.
Order Type,Typ zamówienia
Order Type must be one of {1},Order Type must be one of {1}
Ordered,Ordered
Ordered Items To Be Billed,Ordered Items To Be Billed
Ordered Items To Be Delivered,Ordered Items To Be Delivered
Ordered Qty,Ordered Qty
"Ordered Qty: Quantity ordered for purchase, but not received.","Ordered Qty: Quantity ordered for purchase, but not received."
Ordered Quantity,Ordered Quantity
Orders released for production.,Zamówienia zwolnione do produkcji.
Organization Name,Nazwa organizacji
Organization Profile,Organization Profile
Organization branch master.,Organization branch master.
Organization unit (department) master.,Organization unit (department) master.
Original Amount,Original Amount
Other,Inne
Other Details,Other Details
Others,Inni
Out Qty,Out Qty
Out Value,Out Value
Out of AMC,Out of AMC
Out of Warranty,Out of Warranty
Outgoing,Outgoing
Outstanding Amount,Outstanding Amount
Outstanding for {0} cannot be less than zero ({1}),Outstanding for {0} cannot be less than zero ({1})
Overhead,Overhead
Overheads,Koszty ogólne
Overlapping conditions found between:,Overlapping conditions found between:
Overview,Overview
Owned,Owned
Owner,Właściciel
PL or BS,PL or BS
PO Date,PO Date
PO No,PO No
POP3 Mail Server,POP3 Mail Server
POP3 Mail Settings,POP3 Mail Settings
POP3 mail server (e.g. pop.gmail.com),POP3 mail server (e.g. pop.gmail.com)
POP3 server e.g. (pop.gmail.com),POP3 server e.g. (pop.gmail.com)
POS Setting,POS Setting
POS Setting required to make POS Entry,POS Setting required to make POS Entry
POS Setting {0} already created for user: {1} and company {2},POS Setting {0} already created for user: {1} and company {2}
POS View,POS View
PR Detail,PR Detail
PR Posting Date,PR Posting Date
Package Item Details,Package Item Details
Package Items,Package Items
Package Weight Details,Package Weight Details
Packed Item,Packed Item
Packed quantity must equal quantity for Item {0} in row {1},Packed quantity must equal quantity for Item {0} in row {1}
Packing Details,Packing Details
Packing List,Packing List
Packing Slip,Packing Slip
Packing Slip Item,Packing Slip Item
Packing Slip Items,Packing Slip Items
Packing Slip(s) cancelled,Packing Slip(s) cancelled
Page Break,Page Break
Page Name,Page Name
Paid Amount,Paid Amount
Paid amount + Write Off Amount can not be greater than Grand Total,Paid amount + Write Off Amount can not be greater than Grand Total
Pair,Para
Parameter,Parametr
Parent Account,Parent Account
Parent Cost Center,Parent Cost Center
Parent Customer Group,Parent Customer Group
Parent Detail docname,Parent Detail docname
Parent Item,Parent Item
Parent Item Group,Parent Item Group
Parent Item {0} must be not Stock Item and must be a Sales Item,Parent Item {0} must be not Stock Item and must be a Sales Item
Parent Party Type,Parent Party Type
Parent Sales Person,Parent Sales Person
Parent Territory,Parent Territory
Parent Website Page,Parent Website Page
Parent Website Route,Parent Website Route
Parent account can not be a ledger,Parent account can not be a ledger
Parent account does not exist,Parent account does not exist
Parenttype,Parenttype
Part-time,Part-time
Partially Completed,Partially Completed
Partly Billed,Partly Billed
Partly Delivered,Partly Delivered
Partner Target Detail,Partner Target Detail
Partner Type,Partner Type
Partner's Website,Partner's Website
Party Type,Party Type
Party Type Name,Party Type Name
Passive,Passive
Passport Number,Passport Number
Password,Password
Pay To / Recd From,Pay To / Recd From
Payable,Payable
Payables,Payables
Payables Group,Payables Group
Payment Days,Payment Days
Payment Due Date,Payment Due Date
Payment Period Based On Invoice Date,Payment Period Based On Invoice Date
Payment Type,Payment Type
Payment of salary for the month {0} and year {1},Payment of salary for the month {0} and year {1}
Payment to Invoice Matching Tool,Payment to Invoice Matching Tool
Payment to Invoice Matching Tool Detail,Payment to Invoice Matching Tool Detail
Payments,Płatności
Payments Made,Payments Made
Payments Received,Payments Received
Payments made during the digest period,Payments made during the digest period
Payments received during the digest period,Payments received during the digest period
Payroll Settings,Payroll Settings
Pending,Pending
Pending Amount,Pending Amount
Pending Items {0} updated,Pending Items {0} updated
Pending Review,Pending Review
Pending SO Items For Purchase Request,Pending SO Items For Purchase Request
Pension Funds,Pension Funds
Percent Complete,Percent Complete
Percentage Allocation,Percentage Allocation
Percentage Allocation should be equal to 100%,Percentage Allocation should be equal to 100%
Percentage variation in quantity to be allowed while receiving or delivering this item.,Procentowa wariacja w ilości dopuszczalna przy otrzymywaniu lub dostarczaniu tego produktu.
Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.,Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.
Performance appraisal.,Performance appraisal.
Period,Okres
Period Closing Voucher,Period Closing Voucher
Periodicity,Periodicity
Permanent Address,Permanent Address
Permanent Address Is,Permanent Address Is
Permission,Pozwolenie
Personal,Personal
Personal Details,Personal Details
Personal Email,Personal Email
Pharmaceutical,Pharmaceutical
Pharmaceuticals,Pharmaceuticals
Phone,Telefon
Phone No,Nr telefonu
Piecework,Piecework
Pincode,Kod PIN
Place of Issue,Place of Issue
Plan for maintenance visits.,Plan for maintenance visits.
Planned Qty,Planowana ilość
"Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured.","Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured."
Planned Quantity,Planowana ilość
Planning,Planowanie
Plant,Zakład
Plant and Machinery,Plant and Machinery
Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.,Please Enter Abbreviation or Short Name properly as it will be added as Suffix to all Account Heads.
Please add expense voucher details,Please add expense voucher details
Please check 'Is Advance' against Account {0} if this is an advance entry.,Please check 'Is Advance' against Account {0} if this is an advance entry.
Please click on 'Generate Schedule',Please click on 'Generate Schedule'
Please click on 'Generate Schedule' to fetch Serial No added for Item {0},Please click on 'Generate Schedule' to fetch Serial No added for Item {0}
Please click on 'Generate Schedule' to get schedule,Please click on 'Generate Schedule' to get schedule
Please create Customer from Lead {0},Please create Customer from Lead {0}
Please create Salary Structure for employee {0},Please create Salary Structure for employee {0}
Please create new account from Chart of Accounts.,Please create new account from Chart of Accounts.
Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.,Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.
Please enter 'Expected Delivery Date',Please enter 'Expected Delivery Date'
Please enter 'Is Subcontracted' as Yes or No,Please enter 'Is Subcontracted' as Yes or No
Please enter 'Repeat on Day of Month' field value,Please enter 'Repeat on Day of Month' field value
Please enter Account Receivable/Payable group in company master,Please enter Account Receivable/Payable group in company master
Please enter Approving Role or Approving User,Please enter Approving Role or Approving User
Please enter BOM for Item {0} at row {1},Please enter BOM for Item {0} at row {1}
Please enter Company,Please enter Company
Please enter Cost Center,Please enter Cost Center
Please enter Delivery Note No or Sales Invoice No to proceed,Please enter Delivery Note No or Sales Invoice No to proceed
Please enter Employee Id of this sales parson,Please enter Employee Id of this sales parson
Please enter Expense Account,Please enter Expense Account
Please enter Item Code to get batch no,Please enter Item Code to get batch no
Please enter Item Code.,Please enter Item Code.
Please enter Item first,Please enter Item first
Please enter Maintaince Details first,Please enter Maintaince Details first
Please enter Master Name once the account is created.,Please enter Master Name once the account is created.
Please enter Planned Qty for Item {0} at row {1},Please enter Planned Qty for Item {0} at row {1}
Please enter Production Item first,Please enter Production Item first
Please enter Purchase Receipt No to proceed,Please enter Purchase Receipt No to proceed
Please enter Reference date,Please enter Reference date
Please enter Warehouse for which Material Request will be raised,Please enter Warehouse for which Material Request will be raised
Please enter Write Off Account,Please enter Write Off Account
Please enter atleast 1 invoice in the table,Please enter atleast 1 invoice in the table
Please enter company first,Please enter company first
Please enter company name first,Please enter company name first
Please enter default Unit of Measure,Please enter default Unit of Measure
Please enter default currency in Company Master,Please enter default currency in Company Master
Please enter email address,Please enter email address
Please enter item details,Please enter item details
Please enter message before sending,Please enter message before sending
Please enter parent account group for warehouse account,Please enter parent account group for warehouse account
Please enter parent cost center,Please enter parent cost center
Please enter quantity for Item {0},Please enter quantity for Item {0}
Please enter relieving date.,Please enter relieving date.
Please enter sales order in the above table,Please enter sales order in the above table
Please enter valid Company Email,Please enter valid Company Email
Please enter valid Email Id,Please enter valid Email Id
Please enter valid Personal Email,Please enter valid Personal Email
Please enter valid mobile nos,Please enter valid mobile nos
Please install dropbox python module,Please install dropbox python module
Please mention no of visits required,Please mention no of visits required
Please pull items from Delivery Note,Please pull items from Delivery Note
Please save the Newsletter before sending,Please save the Newsletter before sending
Please save the document before generating maintenance schedule,Please save the document before generating maintenance schedule
Please select Account first,Please select Account first
Please select Bank Account,Please select Bank Account
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year
Please select Category first,Please select Category first
Please select Charge Type first,Please select Charge Type first
Please select Fiscal Year,Please select Fiscal Year
Please select Group or Ledger value,Please select Group or Ledger value
Please select Incharge Person's name,Please select Incharge Person's name
"Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM","Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM"
Please select Price List,Please select Price List
Please select Start Date and End Date for Item {0},Please select Start Date and End Date for Item {0}
Please select a csv file,Please select a csv file
Please select a valid csv file with data,Please select a valid csv file with data
Please select a value for {0} quotation_to {1},Please select a value for {0} quotation_to {1}
"Please select an ""Image"" first","Please select an ""Image"" first"
Please select charge type first,
Please select company first.,Please select company first.
Please select item code,Please select item code
Please select month and year,Please select month and year
Please select prefix first,Please select prefix first
Please select the document type first,Please select the document type first
Please select weekly off day,Please select weekly off day
Please select {0},Please select {0}
Please select {0} first,Please select {0} first
Please set Dropbox access keys in your site config,Please set Dropbox access keys in your site config
Please set Google Drive access keys in {0},Please set Google Drive access keys in {0}
Please set default Cash or Bank account in Mode of Payment {0},Please set default Cash or Bank account in Mode of Payment {0}
Please set default value {0} in Company {0},Please set default value {0} in Company {0}
Please set {0},Please set {0}
Please setup Employee Naming System in Human Resource > HR Settings,Please setup Employee Naming System in Human Resource > HR Settings
Please setup numbering series for Attendance via Setup > Numbering Series,Please setup numbering series for Attendance via Setup > Numbering Series
Please setup your chart of accounts before you start Accounting Entries,Please setup your chart of accounts before you start Accounting Entries
Please specify,Please specify
Please specify Company,Please specify Company
Please specify Company to proceed,Please specify Company to proceed
Please specify Default Currency in Company Master and Global Defaults,Please specify Default Currency in Company Master and Global Defaults
Please specify a,Please specify a
Please specify a valid 'From Case No.',Please specify a valid 'From Case No.'
Please specify a valid Row ID for {0} in row {1},Please specify a valid Row ID for {0} in row {1}
Please specify either Quantity or Valuation Rate or both,Please specify either Quantity or Valuation Rate or both
Please submit to update Leave Balance.,Please submit to update Leave Balance.
Plot,Plot
Plot By,Plot By
Point of Sale,Point of Sale
Point-of-Sale Setting,Point-of-Sale Setting
Post Graduate,Post Graduate
Postal,Postal
Postal Expenses,Postal Expenses
Posting Date,Data publikacji
Posting Time,Czas publikacji
Posting timestamp must be after {0},Posting timestamp must be after {0}
Potential opportunities for selling.,Potencjalne okazje na sprzedaż.
Preferred Billing Address,Preferred Billing Address
Preferred Shipping Address,Preferred Shipping Address
Prefix,Prefix
Present,Present
Prevdoc DocType,Prevdoc DocType
Prevdoc Doctype,
Preview,Preview
Previous,Wstecz
Previous Work Experience,Previous Work Experience
Price,Cena
Price / Discount,Cena / Rabat
Price List,Cennik
Price List Currency,Waluta cennika
Price List Currency not selected,Price List Currency not selected
Price List Exchange Rate,Price List Exchange Rate
Price List Name,Nazwa cennika
Price List Rate,Price List Rate
Price List Rate (Company Currency),Price List Rate (Company Currency)
Price List master.,Price List master.
Price List must be applicable for Buying or Selling,Price List must be applicable for Buying or Selling
Price List not selected,Price List not selected
Price List {0} is disabled,Price List {0} is disabled
Price or Discount,Price or Discount
Pricing Rule,Pricing Rule
Pricing Rule For Discount,Pricing Rule For Discount
Pricing Rule For Price,Pricing Rule For Price
Print Format Style,Print Format Style
Print Heading,Nagłówek do druku
Print Without Amount,Drukuj bez wartości
Print and Stationary,Print and Stationary
Printing and Branding,Printing and Branding
Priority,Priorytet
Private Equity,Private Equity
Privilege Leave,Privilege Leave
Probation,Probation
Process Payroll,Process Payroll
Produced,Produced
Produced Quantity,Produced Quantity
Product Enquiry,Product Enquiry
Production,Produkcja
Production Order,Zamówinie produkcji
Production Order status is {0},Production Order status is {0}
Production Order {0} must be cancelled before cancelling this Sales Order,Production Order {0} must be cancelled before cancelling this Sales Order
Production Order {0} must be submitted,Production Order {0} must be submitted
Production Orders,Production Orders
Production Orders in Progress,Production Orders in Progress
Production Plan Item,Production Plan Item
Production Plan Items,Production Plan Items
Production Plan Sales Order,Production Plan Sales Order
Production Plan Sales Orders,Production Plan Sales Orders
Production Planning Tool,Production Planning Tool
Products,Produkty
"Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list.","Products will be sorted by weight-age in default searches. More the weight-age, higher the product will appear in the list."
Profit and Loss,Profit and Loss
Project,Projekt
Project Costing,Project Costing
Project Details,Project Details
Project Manager,Project Manager
Project Milestone,Project Milestone
Project Milestones,Project Milestones
Project Name,Nazwa projektu
Project Start Date,Project Start Date
Project Type,Project Type
Project Value,Project Value
Project activity / task.,Project activity / task.
Project master.,Project master.
Project will get saved and will be searchable with project name given,Project will get saved and will be searchable with project name given
Project wise Stock Tracking,Project wise Stock Tracking
Project-wise data is not available for Quotation,Project-wise data is not available for Quotation
Projected,Projected
Projected Qty,Prognozowana ilość
Projects,Projekty
Projects & System,Projects & System
Prompt for Email on Submission of,Prompt for Email on Submission of
Proposal Writing,Proposal Writing
Provide email id registered in company,Provide email id registered in company
Public,Public
Publishing,Publishing
Pull sales orders (pending to deliver) based on the above criteria,Pull sales orders (pending to deliver) based on the above criteria
Purchase,Zakup
Purchase / Manufacture Details,Purchase / Manufacture Details
Purchase Analytics,Purchase Analytics
Purchase Common,Purchase Common
Purchase Details,Szczegóły zakupu
Purchase Discounts,Purchase Discounts
Purchase In Transit,Purchase In Transit
Purchase Invoice,Purchase Invoice
Purchase Invoice Advance,Purchase Invoice Advance
Purchase Invoice Advances,Purchase Invoice Advances
Purchase Invoice Item,Purchase Invoice Item
Purchase Invoice Trends,Purchase Invoice Trends
Purchase Invoice {0} is already submitted,Purchase Invoice {0} is already submitted
Purchase Order,Zamówienie
Purchase Order Date,Data zamówienia
Purchase Order Item,Purchase Order Item
Purchase Order Item No,Purchase Order Item No
Purchase Order Item Supplied,Purchase Order Item Supplied
Purchase Order Items,Purchase Order Items
Purchase Order Items Supplied,Purchase Order Items Supplied
Purchase Order Items To Be Billed,Purchase Order Items To Be Billed
Purchase Order Items To Be Received,Purchase Order Items To Be Received
Purchase Order Message,Purchase Order Message
Purchase Order Required,Purchase Order Required
Purchase Order Trends,Purchase Order Trends
Purchase Order number required for Item {0},Purchase Order number required for Item {0}
Purchase Order {0} is 'Stopped',Purchase Order {0} is 'Stopped'
Purchase Order {0} is not submitted,Purchase Order {0} is not submitted
Purchase Orders given to Suppliers.,Purchase Orders given to Suppliers.
Purchase Receipt,Dowód zakupu
Purchase Receipt Item,Purchase Receipt Item
Purchase Receipt Item Supplied,Purchase Receipt Item Supplied
Purchase Receipt Item Supplieds,Purchase Receipt Item Supplieds
Purchase Receipt Items,Purchase Receipt Items
Purchase Receipt Message,Purchase Receipt Message
Purchase Receipt No,Nr dowodu zakupu
Purchase Receipt Required,Purchase Receipt Required
Purchase Receipt Trends,Purchase Receipt Trends
Purchase Receipt number required for Item {0},Purchase Receipt number required for Item {0}
Purchase Receipt {0} is not submitted,Purchase Receipt {0} is not submitted
Purchase Register,Purchase Register
Purchase Return,Zwrot zakupu
Purchase Returned,Purchase Returned
Purchase Taxes and Charges,Purchase Taxes and Charges
Purchase Taxes and Charges Master,Purchase Taxes and Charges Master
Purchse Order number required for Item {0},Purchse Order number required for Item {0}
Purpose,Cel
Purpose must be one of {0},Purpose must be one of {0}
QA Inspection,Inspecja kontroli jakości
Qty,Ilość
Qty Consumed Per Unit,Qty Consumed Per Unit
Qty To Manufacture,Qty To Manufacture
Qty as per Stock UOM,Qty as per Stock UOM
Qty to Deliver,Qty to Deliver
Qty to Order,Qty to Order
Qty to Receive,Qty to Receive
Qty to Transfer,Qty to Transfer
Qualification,Qualification
Quality,Jakość
Quality Inspection,Kontrola jakości
Quality Inspection Parameters,Parametry kontroli jakości
Quality Inspection Reading,Odczyt kontroli jakości
Quality Inspection Readings,Odczyty kontroli jakości
Quality Inspection required for Item {0},Quality Inspection required for Item {0}
Quality Management,Quality Management
Quantity,Ilość
Quantity Requested for Purchase,Quantity Requested for Purchase
Quantity and Rate,Quantity and Rate
Quantity and Warehouse,Ilość i magazyn
Quantity cannot be a fraction in row {0},Quantity cannot be a fraction in row {0}
Quantity for Item {0} must be less than {1},Quantity for Item {0} must be less than {1}
Quantity in row {0} ({1}) must be same as manufactured quantity {2},Quantity in row {0} ({1}) must be same as manufactured quantity {2}
Quantity of item obtained after manufacturing / repacking from given quantities of raw materials,Ilość produktu otrzymanego po produkcji / przepakowaniu z podanych ilości surowców
Quantity required for Item {0} in row {1},Quantity required for Item {0} in row {1}
Quarter,Kwartał
Quarterly,Kwartalnie
Quick Help,Szybka pomoc
Quotation,Wycena
Quotation Date,Data wyceny
Quotation Item,Przedmiot wyceny
Quotation Items,Przedmioty wyceny
Quotation Lost Reason,Quotation Lost Reason
Quotation Message,Quotation Message
Quotation To,Wycena dla
Quotation Trends,Quotation Trends
Quotation {0} is cancelled,Quotation {0} is cancelled
Quotation {0} not of type {1},Quotation {0} not of type {1}
Quotations received from Suppliers.,Quotations received from Suppliers.
Quotes to Leads or Customers.,Quotes to Leads or Customers.
Raise Material Request when stock reaches re-order level,Raise Material Request when stock reaches re-order level
Raised By,Raised By
Raised By (Email),Raised By (Email)
Random,Losowy
Range,Przedział
Rate,Stawka
Rate ,Stawka 
Rate (%),Stawka (%)
Rate (Company Currency),Rate (Company Currency)
Rate Of Materials Based On,Rate Of Materials Based On
Rate and Amount,Rate and Amount
Rate at which Customer Currency is converted to customer's base currency,Rate at which Customer Currency is converted to customer's base currency
Rate at which Price list currency is converted to company's base currency,Rate at which Price list currency is converted to company's base currency
Rate at which Price list currency is converted to customer's base currency,Rate at which Price list currency is converted to customer's base currency
Rate at which customer's currency is converted to company's base currency,Rate at which customer's currency is converted to company's base currency
Rate at which supplier's currency is converted to company's base currency,Rate at which supplier's currency is converted to company's base currency
Rate at which this tax is applied,Rate at which this tax is applied
Raw Material,Surowiec
Raw Material Item Code,Raw Material Item Code
Raw Materials Supplied,Dostarczone surowce
Raw Materials Supplied Cost,Koszt dostarczonych surowców
Raw material cannot be same as main Item,Raw material cannot be same as main Item
Re-Order Level,Poziom dla ponownego zamówienia
Re-Order Qty,Ilość ponownego zamówienia
Re-order,Ponowne zamówienie
Re-order Level,Poziom dla ponownego zamówienia
Re-order Qty,Ilość ponownego zamówienia
Read,Read
Reading 1,Odczyt 1
Reading 10,Odczyt 10
Reading 2,Odczyt 2
Reading 3,Odczyt 3
Reading 4,Odczyt 4
Reading 5,Odczyt 5
Reading 6,Odczyt 6
Reading 7,Odczyt 7
Reading 8,Odczyt 8
Reading 9,Odczyt 9
Real Estate,Real Estate
Reason,Reason
Reason for Leaving,Reason for Leaving
Reason for Resignation,Reason for Resignation
Reason for losing,Reason for losing
Recd Quantity,Recd Quantity
Receivable,Receivable
Receivable / Payable account will be identified based on the field Master Type,Receivable / Payable account will be identified based on the field Master Type
Receivables,Receivables
Receivables / Payables,Receivables / Payables
Receivables Group,Receivables Group
Received Date,Received Date
Received Items To Be Billed,Received Items To Be Billed
Received Qty,Received Qty
Received and Accepted,Received and Accepted
Receiver List,Receiver List
Receiver List is empty. Please create Receiver List,Receiver List is empty. Please create Receiver List
Receiver Parameter,Receiver Parameter
Recipients,Recipients
Reconcile,Reconcile
Reconciliation Data,Reconciliation Data
Reconciliation HTML,Reconciliation HTML
Reconciliation JSON,Reconciliation JSON
Record item movement.,Zapisz ruch produktu.
Recurring Id,Recurring Id
Recurring Invoice,Recurring Invoice
Recurring Type,Recurring Type
Reduce Deduction for Leave Without Pay (LWP),Reduce Deduction for Leave Without Pay (LWP)
Reduce Earning for Leave Without Pay (LWP),Reduce Earning for Leave Without Pay (LWP)
Ref Code,Ref Code
Ref SQ,Ref SQ
Reference,Reference
Reference #{0} dated {1},Reference #{0} dated {1}
Reference Date,Reference Date
Reference Name,Reference Name
Reference No & Reference Date is required for {0},Reference No & Reference Date is required for {0}
Reference No is mandatory if you entered Reference Date,Reference No is mandatory if you entered Reference Date
Reference Number,Reference Number
Reference Row #,Reference Row #
Refresh,Odśwież
Registration Details,Registration Details
Registration Info,Registration Info
Rejected,Rejected
Rejected Quantity,Rejected Quantity
Rejected Serial No,Rejected Serial No
Rejected Warehouse,Rejected Warehouse
Rejected Warehouse is mandatory against regected item,Rejected Warehouse is mandatory against regected item
Relation,Relation
Relieving Date,Relieving Date
Relieving Date must be greater than Date of Joining,Relieving Date must be greater than Date of Joining
Remark,Remark
Remarks,Uwagi
Rename,Zmień nazwę
Rename Log,Rename Log
Rename Tool,Rename Tool
Rent Cost,Rent Cost
Rent per hour,Rent per hour
Rented,Rented
Repeat on Day of Month,Repeat on Day of Month
Replace,Replace
Replace Item / BOM in all BOMs,Replace Item / BOM in all BOMs
Replied,Replied
Report Date,Data raportu
Report Type,Typ raportu
Report Type is mandatory,Typ raportu jest wymagany
Reports to,Reports to
Reqd By Date,Reqd By Date
Request Type,Request Type
Request for Information,Request for Information
Request for purchase.,Request for purchase.
Requested,Requested
Requested For,Requested For
Requested Items To Be Ordered,Requested Items To Be Ordered
Requested Items To Be Transferred,Requested Items To Be Transferred
Requested Qty,Requested Qty
"Requested Qty: Quantity requested for purchase, but not ordered.","Requested Qty: Quantity requested for purchase, but not ordered."
Requests for items.,Zamówienia produktów.
Required By,Required By
Required Date,Required Date
Required Qty,Wymagana ilość
Required only for sample item.,Required only for sample item.
Required raw materials issued to the supplier for producing a sub - contracted item.,Required raw materials issued to the supplier for producing a sub - contracted item.
Research,Badania
Research & Development,Badania i rozwój
Researcher,Researcher
Reseller,Reseller
Reserved,Zarezerwowany
Reserved Qty,Zarezerwowana ilość
"Reserved Qty: Quantity ordered for sale, but not delivered.","Reserved Qty: Quantity ordered for sale, but not delivered."
Reserved Quantity,Zarezerwowana ilość
Reserved Warehouse,Reserved Warehouse
Reserved Warehouse in Sales Order / Finished Goods Warehouse,Reserved Warehouse in Sales Order / Finished Goods Warehouse
Reserved Warehouse is missing in Sales Order,Reserved Warehouse is missing in Sales Order
Reserved Warehouse required for stock Item {0} in row {1},Reserved Warehouse required for stock Item {0} in row {1}
Reserved warehouse required for stock item {0},Reserved warehouse required for stock item {0}
Reserves and Surplus,Reserves and Surplus
Reset Filters,Reset Filters
Resignation Letter Date,Resignation Letter Date
Resolution,Resolution
Resolution Date,Resolution Date
Resolution Details,Resolution Details
Resolved By,Resolved By
Rest Of The World,Rest Of The World
Retail,Retail
Retail & Wholesale,Retail & Wholesale
Retailer,Retailer
Review Date,Review Date
Rgt,Rgt
Role Allowed to edit frozen stock,Role Allowed to edit frozen stock
Role that is allowed to submit transactions that exceed credit limits set.,Role that is allowed to submit transactions that exceed credit limits set.
Root Type,Root Type
Root Type is mandatory,Root Type is mandatory
Root account can not be deleted,Root account can not be deleted
Root cannot be edited.,Root cannot be edited.
Root cannot have a parent cost center,Root cannot have a parent cost center
Rounded Off,Rounded Off
Rounded Total,Rounded Total
Rounded Total (Company Currency),Rounded Total (Company Currency)
Row # ,Rząd #
Row # {0}: ,Rząd # {0}:
Row {0}: Account does not match with \						Purchase Invoice Credit To account,Row {0}: Account does not match with \						Purchase Invoice Credit To account
Row {0}: Account does not match with \						Sales Invoice Debit To account,Row {0}: Account does not match with \						Sales Invoice Debit To account
Row {0}: Credit entry can not be linked with a Purchase Invoice,Row {0}: Credit entry can not be linked with a Purchase Invoice
Row {0}: Debit entry can not be linked with a Sales Invoice,Row {0}: Debit entry can not be linked with a Sales Invoice
"Row {0}: To set {1} periodicity, difference between from and to date \						must be greater than or equal to {2}","Row {0}: To set {1} periodicity, difference between from and to date \						must be greater than or equal to {2}"
Row {0}:Start Date must be before End Date,Row {0}:Start Date must be before End Date
Rules for adding shipping costs.,Rules for adding shipping costs.
Rules for applying pricing and discount.,Rules for applying pricing and discount.
Rules to calculate shipping amount for a sale,Rules to calculate shipping amount for a sale
S.O. No.,S.O. No.
SMS Center,SMS Center
SMS Control,SMS Control
SMS Gateway URL,SMS Gateway URL
SMS Log,SMS Log
SMS Parameter,SMS Parameter
SMS Sender Name,SMS Sender Name
SMS Settings,SMS Settings
SO Date,SO Date
SO Pending Qty,SO Pending Qty
SO Qty,SO Qty
Salary,Pensja
Salary Information,Salary Information
Salary Manager,Salary Manager
Salary Mode,Salary Mode
Salary Slip,Salary Slip
Salary Slip Deduction,Salary Slip Deduction
Salary Slip Earning,Salary Slip Earning
Salary Slip of employee {0} already created for this month,Salary Slip of employee {0} already created for this month
Salary Structure,Salary Structure
Salary Structure Deduction,Salary Structure Deduction
Salary Structure Earning,Salary Structure Earning
Salary Structure Earnings,Salary Structure Earnings
Salary breakup based on Earning and Deduction.,Salary breakup based on Earning and Deduction.
Salary components.,Salary components.
Salary template master.,Salary template master.
Sales,Sprzedaż
Sales Analytics,Analityka sprzedaży
Sales BOM,Sales BOM
Sales BOM Help,Sales BOM Help
Sales BOM Item,Sales BOM Item
Sales BOM Items,Sales BOM Items
Sales Browser,Sales Browser
Sales Details,Szczegóły sprzedaży
Sales Discounts,Sales Discounts
Sales Email Settings,Sales Email Settings
Sales Expenses,Sales Expenses
Sales Extras,Sales Extras
Sales Funnel,Sales Funnel
Sales Invoice,Sales Invoice
Sales Invoice Advance,Sales Invoice Advance
Sales Invoice Item,Sales Invoice Item
Sales Invoice Items,Sales Invoice Items
Sales Invoice Message,Sales Invoice Message
Sales Invoice No,Nr faktury sprzedażowej
Sales Invoice Trends,Sales Invoice Trends
Sales Invoice {0} has already been submitted,Sales Invoice {0} has already been submitted
Sales Invoice {0} must be cancelled before cancelling this Sales Order,Sales Invoice {0} must be cancelled before cancelling this Sales Order
Sales Order,Zlecenie sprzedaży
Sales Order Date,Sales Order Date
Sales Order Item,Sales Order Item
Sales Order Items,Sales Order Items
Sales Order Message,Sales Order Message
Sales Order No,Sales Order No
Sales Order Required,Sales Order Required
Sales Order Trends,Sales Order Trends
Sales Order required for Item {0},Sales Order required for Item {0}
Sales Order {0} is not submitted,Sales Order {0} is not submitted
Sales Order {0} is not valid,Sales Order {0} is not valid
Sales Order {0} is stopped,Sales Order {0} is stopped
Sales Partner,Sales Partner
Sales Partner Name,Sales Partner Name
Sales Partner Target,Sales Partner Target
Sales Partners Commission,Sales Partners Commission
Sales Person,Sales Person
Sales Person Name,Sales Person Name
Sales Person Target Variance Item Group-Wise,Sales Person Target Variance Item Group-Wise
Sales Person Targets,Sales Person Targets
Sales Person-wise Transaction Summary,Sales Person-wise Transaction Summary
Sales Register,Sales Register
Sales Return,Zwrot sprzedaży
Sales Returned,Sales Returned
Sales Taxes and Charges,Sales Taxes and Charges
Sales Taxes and Charges Master,Sales Taxes and Charges Master
Sales Team,Sales Team
Sales Team Details,Sales Team Details
Sales Team1,Sales Team1
Sales and Purchase,Sales and Purchase
Sales campaigns.,Sales campaigns.
Salutation,Salutation
Sample Size,Wielkość próby
Sanctioned Amount,Sanctioned Amount
Saturday,Saturday
Schedule,Schedule
Schedule Date,Schedule Date
Schedule Details,Schedule Details
Scheduled,Scheduled
Scheduled Date,Scheduled Date
Scheduled to send to {0},Scheduled to send to {0}
Scheduled to send to {0} recipients,Scheduled to send to {0} recipients
Scheduler Failed Events,Scheduler Failed Events
School/University,School/University
Score (0-5),Score (0-5)
Score Earned,Score Earned
Score must be less than or equal to 5,Score must be less than or equal to 5
Scrap %,Scrap %
Seasonality for setting budgets.,Seasonality for setting budgets.
Secretary,Secretary
Secured Loans,Secured Loans
Securities & Commodity Exchanges,Securities & Commodity Exchanges
Securities and Deposits,Securities and Deposits
"See ""Rate Of Materials Based On"" in Costing Section","See ""Rate Of Materials Based On"" in Costing Section"
"Select ""Yes"" for sub - contracting items","Select ""Yes"" for sub - contracting items"
"Select ""Yes"" if this item is used for some internal purpose in your company.",Wybierz “Tak” jeśli produkt jest używany w celach wewnętrznych w firmie.
"Select ""Yes"" if this item represents some work like training, designing, consulting etc.","Wybierz “Tak” jeśli produkt to jakaś forma usługi/pracy, np. szkolenie, doradztwo"
"Select ""Yes"" if you are maintaining stock of this item in your Inventory.",Wybierz “Tak” jeśli produkt jest przechowywany w magazynie.
"Select ""Yes"" if you supply raw materials to your supplier to manufacture this item.",Wybierz “Tak” jeśli dostarczasz sutowce swojemu dostawcy w celu wyprodukowania tego produktu.
Select Budget Distribution to unevenly distribute targets across months.,Select Budget Distribution to unevenly distribute targets across months.
"Select Budget Distribution, if you want to track based on seasonality.","Select Budget Distribution, if you want to track based on seasonality."
Select DocType,Select DocType
Select Items,Select Items
Select Purchase Receipts,Select Purchase Receipts
Select Sales Orders,Select Sales Orders
Select Sales Orders from which you want to create Production Orders.,Select Sales Orders from which you want to create Production Orders.
Select Time Logs and Submit to create a new Sales Invoice.,Select Time Logs and Submit to create a new Sales Invoice.
Select Transaction,Select Transaction
Select Your Language,Select Your Language
Select account head of the bank where cheque was deposited.,Select account head of the bank where cheque was deposited.
Select company name first.,Select company name first.
Select template from which you want to get the Goals,Select template from which you want to get the Goals
Select the Employee for whom you are creating the Appraisal.,Select the Employee for whom you are creating the Appraisal.
Select the period when the invoice will be generated automatically,Select the period when the invoice will be generated automatically
Select the relevant company name if you have multiple companies,Select the relevant company name if you have multiple companies
Select the relevant company name if you have multiple companies.,Select the relevant company name if you have multiple companies.
Select who you want to send this newsletter to,Select who you want to send this newsletter to
Select your home country and check the timezone and currency.,Select your home country and check the timezone and currency.
"Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt.",Wybranie “Tak” pozwoli na dostępność tego produktu w Zamówieniach i Potwierdzeniach Odbioru
"Selecting ""Yes"" will allow this item to figure in Sales Order, Delivery Note","Selecting ""Yes"" will allow this item to figure in Sales Order, Delivery Note"
"Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.","Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item."
"Selecting ""Yes"" will allow you to make a Production Order for this item.","Selecting ""Yes"" will allow you to make a Production Order for this item."
"Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.","Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master."
Selling,Sprzedaż
Selling Settings,Selling Settings
Send,Wyślij
Send Autoreply,Send Autoreply
Send Email,Send Email
Send From,Send From
Send Notifications To,Send Notifications To
Send Now,Send Now
Send SMS,Send SMS
Send To,Send To
Send To Type,Send To Type
Send mass SMS to your contacts,Send mass SMS to your contacts
Send to this list,Send to this list
Sender Name,Sender Name
Sent On,Sent On
Separate production order will be created for each finished good item.,Separate production order will be created for each finished good item.
Serial No,Nr seryjny
Serial No / Batch,Serial No / Batch
Serial No Details,Szczegóły numeru seryjnego
Serial No Service Contract Expiry,Serial No Service Contract Expiry
Serial No Status,Serial No Status
Serial No Warranty Expiry,Serial No Warranty Expiry
Serial No is mandatory for Item {0},Serial No is mandatory for Item {0}
Serial No {0} created,Serial No {0} created
Serial No {0} does not belong to Delivery Note {1},Serial No {0} does not belong to Delivery Note {1}
Serial No {0} does not belong to Item {1},Serial No {0} does not belong to Item {1}
Serial No {0} does not belong to Warehouse {1},Serial No {0} does not belong to Warehouse {1}
Serial No {0} does not exist,Serial No {0} does not exist
Serial No {0} has already been received,Serial No {0} has already been received
Serial No {0} is under maintenance contract upto {1},Serial No {0} is under maintenance contract upto {1}
Serial No {0} is under warranty upto {1},Serial No {0} is under warranty upto {1}
Serial No {0} not in stock,Serial No {0} not in stock
Serial No {0} quantity {1} cannot be a fraction,Serial No {0} quantity {1} cannot be a fraction
Serial No {0} status must be 'Available' to Deliver,Serial No {0} status must be 'Available' to Deliver
Serial Nos Required for Serialized Item {0},Serial Nos Required for Serialized Item {0}
Serial Number Series,Serial Number Series
Serial number {0} entered more than once,Serial number {0} entered more than once
Serialized Item {0} cannot be updated \					using Stock Reconciliation,Serialized Item {0} cannot be updated \					using Stock Reconciliation
Series,Seria
Series List for this Transaction,Series List for this Transaction
Series Updated,Series Updated
Series Updated Successfully,Series Updated Successfully
Series is mandatory,Series is mandatory
Series {0} already used in {1},Series {0} already used in {1}
Service,Usługa
Service Address,Service Address
Services,Usługi
Set,Zbiór
"Set Default Values like Company, Currency, Current Fiscal Year, etc.","Set Default Values like Company, Currency, Current Fiscal Year, etc."
Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.,Set Item Group-wise budgets on this Territory. You can also include seasonality by setting the Distribution.
Set as Default,Set as Default
Set as Lost,Set as Lost
Set prefix for numbering series on your transactions,Set prefix for numbering series on your transactions
Set targets Item Group-wise for this Sales Person.,Set targets Item Group-wise for this Sales Person.
Setting Account Type helps in selecting this Account in transactions.,Setting Account Type helps in selecting this Account in transactions.
Setting up...,Setting up...
Settings,Settings
Settings for HR Module,Settings for HR Module
"Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com""","Settings to extract Job Applicants from a mailbox e.g. ""jobs@example.com"""
Setup,Ustawienia
Setup Already Complete!!,Setup Already Complete!!
Setup Complete,Setup Complete
Setup Series,Setup Series
Setup Wizard,Setup Wizard
Setup incoming server for jobs email id. (e.g. jobs@example.com),Setup incoming server for jobs email id. (e.g. jobs@example.com)
Setup incoming server for sales email id. (e.g. sales@example.com),Setup incoming server for sales email id. (e.g. sales@example.com)
Setup incoming server for support email id. (e.g. support@example.com),Setup incoming server for support email id. (e.g. support@example.com)
Share,Podziel się
Share With,Podziel się z
Shareholders Funds,Shareholders Funds
Shipments to customers.,Dostawy do klientów.
Shipping,Dostawa
Shipping Account,Shipping Account
Shipping Address,Adres dostawy
Shipping Amount,Shipping Amount
Shipping Rule,Shipping Rule
Shipping Rule Condition,Shipping Rule Condition
Shipping Rule Conditions,Shipping Rule Conditions
Shipping Rule Label,Shipping Rule Label
Shop,Sklep
Shopping Cart,Koszyk
Short biography for website and other publications.,Short biography for website and other publications.
"Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse.","Show ""In Stock"" or ""Not in Stock"" based on stock available in this warehouse."
"Show / Hide features like Serial Nos, POS etc.","Show / Hide features like Serial Nos, POS etc."
Show In Website,Pokaż na stronie internetowej
Show a slideshow at the top of the page,Show a slideshow at the top of the page
Show in Website,
Show this slideshow at the top of the page,Show this slideshow at the top of the page
Sick Leave,Sick Leave
Signature,Podpis
Signature to be appended at the end of every email,Signature to be appended at the end of every email
Single,Pojedynczy
Single unit of an Item.,Jednostka produktu.
Sit tight while your system is being setup. This may take a few moments.,Sit tight while your system is being setup. This may take a few moments.
Slideshow,Slideshow
Soap & Detergent,Soap & Detergent
Software,Oprogramowanie
Software Developer,Programista
"Sorry, Serial Nos cannot be merged","Sorry, Serial Nos cannot be merged"
"Sorry, companies cannot be merged","Sorry, companies cannot be merged"
Source,Źródło
Source File,Source File
Source Warehouse,Magazyn źródłowy
Source and target warehouse cannot be same for row {0},Source and target warehouse cannot be same for row {0}
Source of Funds (Liabilities),Source of Funds (Liabilities)
Source warehouse is mandatory for row {0},Source warehouse is mandatory for row {0}
Spartan,Spartan
"Special Characters except ""-"" and ""/"" not allowed in naming series","Special Characters except ""-"" and ""/"" not allowed in naming series"
Specification Details,Szczegóły specyfikacji
Specifications,Specifications
"Specify a list of Territories, for which, this Price List is valid","Lista terytoriów, na których cennik jest obowiązujący"
"Specify a list of Territories, for which, this Shipping Rule is valid","Specify a list of Territories, for which, this Shipping Rule is valid"
"Specify a list of Territories, for which, this Taxes Master is valid","Specify a list of Territories, for which, this Taxes Master is valid"
"Specify the operations, operating cost and give a unique Operation no to your operations.","Specify the operations, operating cost and give a unique Operation no to your operations."
Split Delivery Note into packages.,Split Delivery Note into packages.
Sports,Sports
Standard,Standard
Standard Buying,Standard Buying
Standard Rate,Standard Rate
Standard Reports,Raporty standardowe
Standard Selling,Standard Selling
Standard contract terms for Sales or Purchase.,Standard contract terms for Sales or Purchase.
Start,Start
Start Date,Start Date
Start date of current invoice's period,Start date of current invoice's period
Start date should be less than end date for Item {0},Start date should be less than end date for Item {0}
State,Stan
Static Parameters,Static Parameters
Status,Status
Status must be one of {0},Status must be one of {0}
Status of {0} {1} is now {2},Status of {0} {1} is now {2}
Status updated to {0},Status updated to {0}
Statutory info and other general information about your Supplier,Statutory info and other general information about your Supplier
Stay Updated,Stay Updated
Stock,Magazyn
Stock Adjustment,Stock Adjustment
Stock Adjustment Account,Stock Adjustment Account
Stock Ageing,Stock Ageing
Stock Analytics,Analityka magazynu
Stock Assets,Stock Assets
Stock Balance,Stock Balance
Stock Entries already created for Production Order ,Stock Entries already created for Production Order 
Stock Entry,Dokument magazynowy
Stock Entry Detail,Szczególy wpisu magazynowego
Stock Expenses,Stock Expenses
Stock Frozen Upto,Stock Frozen Upto
Stock Ledger,Stock Ledger
Stock Ledger Entry,Stock Ledger Entry
Stock Ledger entries balances updated,Stock Ledger entries balances updated
Stock Level,Stock Level
Stock Liabilities,Stock Liabilities
Stock Projected Qty,Stock Projected Qty
Stock Queue (FIFO),Stock Queue (FIFO)
Stock Received But Not Billed,Stock Received But Not Billed
Stock Reconcilation Data,Stock Reconcilation Data
Stock Reconcilation Template,Stock Reconcilation Template
Stock Reconciliation,Stock Reconciliation
"Stock Reconciliation can be used to update the stock on a particular date, usually as per physical inventory.","Stock Reconciliation can be used to update the stock on a particular date, usually as per physical inventory."
Stock Settings,Stock Settings
Stock UOM,Stock UOM
Stock UOM Replace Utility,Stock UOM Replace Utility
Stock UOM updatd for Item {0},Stock UOM updatd for Item {0}
Stock Uom,
Stock Value,Stock Value
Stock Value Difference,Stock Value Difference
Stock balances updated,Stock balances updated
Stock cannot be updated against Delivery Note {0},Stock cannot be updated against Delivery Note {0}
Stock entries exist against warehouse {0} cannot re-assign or modify 'Master Name',Stock entries exist against warehouse {0} cannot re-assign or modify 'Master Name'
Stop,Stop
Stop Birthday Reminders,Stop Birthday Reminders
Stop Material Request,Stop Material Request
Stop users from making Leave Applications on following days.,Stop users from making Leave Applications on following days.
Stop!,Stop!
Stopped,Stopped
Stopped order cannot be cancelled. Unstop to cancel.,Stopped order cannot be cancelled. Unstop to cancel.
Stores,Stores
Stub,Stub
Sub Assemblies,Sub Assemblies
"Sub-currency. For e.g. ""Cent""","Sub-currency. For e.g. ""Cent"""
Subcontract,Zlecenie
Subject,Temat
Submit Salary Slip,Submit Salary Slip
Submit all salary slips for the above selected criteria,Submit all salary slips for the above selected criteria
Submit this Production Order for further processing.,Submit this Production Order for further processing.
Submitted,Submitted
Subsidiary,Subsidiary
Successful: ,Successful: 
Successfully allocated,Successfully allocated
Suggestions,Sugestie
Sunday,Niedziela
Supplier,Dostawca
Supplier (Payable) Account,Supplier (Payable) Account
Supplier (vendor) name as entered in supplier master,Supplier (vendor) name as entered in supplier master
Supplier Account,Supplier Account
Supplier Account Head,Supplier Account Head
Supplier Address,Adres dostawcy
Supplier Addresses and Contacts,Supplier Addresses and Contacts
Supplier Details,Szczegóły dostawcy
Supplier Intro,Supplier Intro
Supplier Invoice Date,Supplier Invoice Date
Supplier Invoice No,Supplier Invoice No
Supplier Name,Nazwa dostawcy
Supplier Naming By,Supplier Naming By
Supplier Part Number,Numer katalogowy dostawcy
Supplier Quotation,Supplier Quotation
Supplier Quotation Item,Supplier Quotation Item
Supplier Reference,Supplier Reference
Supplier Type,Typ dostawcy
Supplier Type / Supplier,Supplier Type / Supplier
Supplier Type master.,Supplier Type master.
Supplier Warehouse,Magazyn dostawcy
Supplier Warehouse mandatory for sub-contracted Purchase Receipt,Supplier Warehouse mandatory for sub-contracted Purchase Receipt
Supplier database.,Supplier database.
Supplier master.,Supplier master.
Supplier warehouse where you have issued raw materials for sub - contracting,Supplier warehouse where you have issued raw materials for sub - contracting
Supplier-Wise Sales Analytics,Supplier-Wise Sales Analytics
Support,Wsparcie
Support Analtyics,Support Analtyics
Support Analytics,Support Analytics
Support Email,Support Email
Support Email Settings,Support Email Settings
Support Password,Support Password
Support Ticket,Support Ticket
Support queries from customers.,Support queries from customers.
Symbol,Symbol
Sync Support Mails,Sync Support Mails
Sync with Dropbox,Sync with Dropbox
Sync with Google Drive,Sync with Google Drive
System,System
System Settings,System Settings
"System User (login) ID. If set, it will become default for all HR forms.","System User (login) ID. If set, it will become default for all HR forms."
Target  Amount,Target  Amount
Target Detail,Target Detail
Target Details,Target Details
Target Details1,Target Details1
Target Distribution,Target Distribution
Target On,Target On
Target Qty,Target Qty
Target Warehouse,Target Warehouse
Target warehouse in row {0} must be same as Production Order,Target warehouse in row {0} must be same as Production Order
Target warehouse is mandatory for row {0},Target warehouse is mandatory for row {0}
Task,Task
Task Details,Task Details
Tasks,Tasks
Tax,Podatek
Tax Amount After Discount Amount,Tax Amount After Discount Amount
Tax Assets,Tax Assets
Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items,Tax Category can not be 'Valuation' or 'Valuation and Total' as all items are non-stock items
Tax Rate,Stawka podatku
Tax and other salary deductions.,Tax and other salary deductions.
Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges,Tax detail table fetched from item master as a string and stored in this field.Used for Taxes and Charges
Tax template for buying transactions.,Tax template for buying transactions.
Tax template for selling transactions.,Tax template for selling transactions.
Taxable,Taxable
Taxes and Charges,Podatki i opłaty
Taxes and Charges Added,Taxes and Charges Added
Taxes and Charges Added (Company Currency),Taxes and Charges Added (Company Currency)
Taxes and Charges Calculation,Taxes and Charges Calculation
Taxes and Charges Deducted,Taxes and Charges Deducted
Taxes and Charges Deducted (Company Currency),Taxes and Charges Deducted (Company Currency)
Taxes and Charges Total,Taxes and Charges Total
Taxes and Charges Total (Company Currency),Taxes and Charges Total (Company Currency)
Technology,Technologia
Telecommunications,Telecommunications
Telephone Expenses,Telephone Expenses
Television,Telewizja
Template for performance appraisals.,Template for performance appraisals.
Template of terms or contract.,Template of terms or contract.
Temporary Accounts (Assets),Temporary Accounts (Assets)
Temporary Accounts (Liabilities),Temporary Accounts (Liabilities)
Temporary Assets,Temporary Assets
Temporary Liabilities,Temporary Liabilities
Term Details,Szczegóły warunków
Terms,Warunki
Terms and Conditions,Regulamin
Terms and Conditions Content,Zawartość regulaminu
Terms and Conditions Details,Szczegóły regulaminu
Terms and Conditions Template,Terms and Conditions Template
Terms and Conditions1,Terms and Conditions1
Terretory,Terytorium
Territory,Terytorium
Territory / Customer,Territory / Customer
Territory Manager,Territory Manager
Territory Name,Territory Name
Territory Target Variance Item Group-Wise,Territory Target Variance Item Group-Wise
Territory Targets,Territory Targets
Test,Test
Test Email Id,Test Email Id
Test the Newsletter,Test the Newsletter
The BOM which will be replaced,The BOM which will be replaced
The First User: You,The First User: You
"The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes""","The Item that represents the Package. This Item must have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"""
The Organization,The Organization
"The account head under Liability, in which Profit/Loss will be booked","The account head under Liability, in which Profit/Loss will be booked"
The date on which next invoice will be generated. It is generated on submit.,The date on which next invoice will be generated. It is generated on submit.
The date on which recurring invoice will be stop,The date on which recurring invoice will be stop
"The day of the month on which auto invoice will be generated e.g. 05, 28 etc ","The day of the month on which auto invoice will be generated e.g. 05, 28 etc "
The day(s) on which you are applying for leave are holiday. You need not apply for leave.,The day(s) on which you are applying for leave are holiday. You need not apply for leave.
The first Leave Approver in the list will be set as the default Leave Approver,The first Leave Approver in the list will be set as the default Leave Approver
The first user will become the System Manager (you can change that later).,The first user will become the System Manager (you can change that later).
The gross weight of the package. Usually net weight + packaging material weight. (for print),The gross weight of the package. Usually net weight + packaging material weight. (for print)
The name of your company for which you are setting up this system.,The name of your company for which you are setting up this system.
The net weight of this package. (calculated automatically as sum of net weight of items),The net weight of this package. (calculated automatically as sum of net weight of items)
The new BOM after replacement,The new BOM after replacement
The rate at which Bill Currency is converted into company's base currency,The rate at which Bill Currency is converted into company's base currency
The unique id for tracking all recurring invoices. It is generated on submit.,The unique id for tracking all recurring invoices. It is generated on submit.
There are more holidays than working days this month.,There are more holidays than working days this month.
"There can only be one Shipping Rule Condition with 0 or blank value for ""To Value""","There can only be one Shipping Rule Condition with 0 or blank value for ""To Value"""
There is not enough leave balance for Leave Type {0},There is not enough leave balance for Leave Type {0}
There is nothing to edit.,There is nothing to edit.
There was an error. One probable reason could be that you haven't saved the form. Please contact support@erpnext.com if the problem persists.,There was an error. One probable reason could be that you haven't saved the form. Please contact support@erpnext.com if the problem persists.
There were errors.,There were errors.
This Currency is disabled. Enable to use in transactions,This Currency is disabled. Enable to use in transactions
This Leave Application is pending approval. Only the Leave Apporver can update status.,This Leave Application is pending approval. Only the Leave Apporver can update status.
This Time Log Batch has been billed.,This Time Log Batch has been billed.
This Time Log Batch has been cancelled.,This Time Log Batch has been cancelled.
This Time Log conflicts with {0},This Time Log conflicts with {0}
This is a root account and cannot be edited.,This is a root account and cannot be edited.
This is a root customer group and cannot be edited.,This is a root customer group and cannot be edited.
This is a root item group and cannot be edited.,This is a root item group and cannot be edited.
This is a root sales person and cannot be edited.,This is a root sales person and cannot be edited.
This is a root territory and cannot be edited.,This is a root territory and cannot be edited.
This is an example website auto-generated from ERPNext,This is an example website auto-generated from ERPNext
This is the number of the last created transaction with this prefix,This is the number of the last created transaction with this prefix
This will be used for setting rule in HR module,This will be used for setting rule in HR module
Thread HTML,Thread HTML
Thursday,Czwartek
Time Log,Time Log
Time Log Batch,Time Log Batch
Time Log Batch Detail,Time Log Batch Detail
Time Log Batch Details,Time Log Batch Details
Time Log Batch {0} must be 'Submitted',Time Log Batch {0} must be 'Submitted'
Time Log for tasks.,Time Log for tasks.
Time Log {0} must be 'Submitted',Time Log {0} must be 'Submitted'
Time Zone,Time Zone
Time Zones,Time Zones
Time and Budget,Time and Budget
Time at which items were delivered from warehouse,Time at which items were delivered from warehouse
Time at which materials were received,Time at which materials were received
Title,Title
Titles for print templates e.g. Proforma Invoice.,Titles for print templates e.g. Proforma Invoice.
To,Do
To Currency,To Currency
To Date,To Date
To Date should be same as From Date for Half Day leave,To Date should be same as From Date for Half Day leave
To Discuss,To Discuss
To Do List,To Do List
To Package No.,To Package No.
To Produce,To Produce
To Time,To Time
To Value,To Value
To Warehouse,Do magazynu
"To add child nodes, explore tree and click on the node under which you want to add more nodes.","To add child nodes, explore tree and click on the node under which you want to add more nodes."
"To assign this issue, use the ""Assign"" button in the sidebar.","To assign this issue, use the ""Assign"" button in the sidebar."
To create a Bank Account:,To create a Bank Account:
To create a Tax Account:,To create a Tax Account:
"To create an Account Head under a different company, select the company and save customer.","To create an Account Head under a different company, select the company and save customer."
To date cannot be before from date,To date cannot be before from date
To enable <b>Point of Sale</b> features,To enable <b>Point of Sale</b> features
To enable <b>Point of Sale</b> view,To enable <b>Point of Sale</b> view
To get Item Group in details table,To get Item Group in details table
"To include tax in row {0} in Item rate, taxes in rows {1} must also be included","To include tax in row {0} in Item rate, taxes in rows {1} must also be included"
"To merge, following properties must be same for both items","To merge, following properties must be same for both items"
"To report an issue, go to ","To report an issue, go to "
"To set this Fiscal Year as Default, click on 'Set as Default'","To set this Fiscal Year as Default, click on 'Set as Default'"
To track any installation or commissioning related work after sales,To track any installation or commissioning related work after sales
"To track brand name in the following documents Delivery Note, Opportunity, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No","To track brand name in the following documents Delivery Note, Opportunity, Material Request, Item, Purchase Order, Purchase Voucher, Purchaser Receipt, Quotation, Sales Invoice, Sales BOM, Sales Order, Serial No"
To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.,To track item in sales and purchase documents based on their serial nos. This is can also used to track warranty details of the product.
To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>,To track items in sales and purchase documents with batch nos<br><b>Preferred Industry: Chemicals etc</b>
To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.,To track items using barcode. You will be able to enter items in Delivery Note and Sales Invoice by scanning barcode of item.
Tools,Narzędzia
Total,Total
Total Advance,Total Advance
Total Allocated Amount,Total Allocated Amount
Total Allocated Amount can not be greater than unmatched amount,Total Allocated Amount can not be greater than unmatched amount
Total Amount,Wartość całkowita
Total Amount To Pay,Total Amount To Pay
Total Amount in Words,Total Amount in Words
Total Billing This Year: ,Total Billing This Year: 
Total Claimed Amount,Total Claimed Amount
Total Commission,Total Commission
Total Cost,Koszt całkowity
Total Credit,Total Credit
Total Debit,Total Debit
Total Debit must be equal to Total Credit. The difference is {0},Total Debit must be equal to Total Credit. The difference is {0}
Total Deduction,Total Deduction
Total Earning,Total Earning
Total Experience,Total Experience
Total Hours,Total Hours
Total Hours (Expected),Total Hours (Expected)
Total Invoiced Amount,Total Invoiced Amount
Total Leave Days,Total Leave Days
Total Leaves Allocated,Total Leaves Allocated
Total Message(s),Total Message(s)
Total Operating Cost,Całkowity koszt operacyjny
Total Points,Total Points
Total Raw Material Cost,Całkowity koszt surowców
Total Sanctioned Amount,Total Sanctioned Amount
Total Score (Out of 5),Total Score (Out of 5)
Total Tax (Company Currency),Total Tax (Company Currency)
Total Taxes and Charges,Total Taxes and Charges
Total Taxes and Charges (Company Currency),Total Taxes and Charges (Company Currency)
Total Words,Total Words
Total Working Days In The Month,Total Working Days In The Month
Total allocated percentage for sales team should be 100,Total allocated percentage for sales team should be 100
Total amount of invoices received from suppliers during the digest period,Total amount of invoices received from suppliers during the digest period
Total amount of invoices sent to the customer during the digest period,Total amount of invoices sent to the customer during the digest period
Total cannot be zero,Total cannot be zero
Total in words,Total in words
Total points for all goals should be 100. It is {0},Total points for all goals should be 100. It is {0}
Total weightage assigned should be 100%. It is {0},Total weightage assigned should be 100%. It is {0}
Totals,Sumy całkowite
Track Leads by Industry Type.,Track Leads by Industry Type.
Track this Delivery Note against any Project,Track this Delivery Note against any Project
Track this Sales Order against any Project,Track this Sales Order against any Project
Transaction,Transaction
Transaction Date,Data transakcji
Transaction not allowed against stopped Production Order {0},Transaction not allowed against stopped Production Order {0}
Transfer,Transfer
Transfer Material,Transfer Material
Transfer Raw Materials,Transfer Raw Materials
Transferred Qty,Transferred Qty
Transportation,Transportation
Transporter Info,Informacje dotyczące przewoźnika
Transporter Name,Nazwa przewoźnika
Transporter lorry number,Nr ciężarówki przewoźnika
Travel,Podróż
Travel Expenses,Travel Expenses
Tree Type,Tree Type
Tree of Item Groups.,Tree of Item Groups.
Tree of finanial Cost Centers.,Tree of finanial Cost Centers.
Tree of finanial accounts.,Tree of finanial accounts.
Trial Balance,Trial Balance
Tuesday,Wtorek
Type,Typ
Type of document to rename.,Type of document to rename.
"Type of leaves like casual, sick etc.","Type of leaves like casual, sick etc."
Types of Expense Claim.,Types of Expense Claim.
Types of activities for Time Sheets,Types of activities for Time Sheets
"Types of employment (permanent, contract, intern etc.).","Types of employment (permanent, contract, intern etc.)."
UOM Conversion Detail,Szczegóły konwersji JM
UOM Conversion Details,Współczynnik konwersji JM
UOM Conversion Factor,UOM Conversion Factor
UOM Conversion factor is required in row {0},UOM Conversion factor is required in row {0}
UOM Name,Nazwa Jednostki Miary
UOM coversion factor required for UOM {0} in Item {1},UOM coversion factor required for UOM {0} in Item {1}
Under AMC,Under AMC
Under Graduate,Under Graduate
Under Warranty,Under Warranty
Unit,Jednostka
Unit of Measure,Jednostka miary
Unit of Measure {0} has been entered more than once in Conversion Factor Table,Unit of Measure {0} has been entered more than once in Conversion Factor Table
"Unit of measurement of this item (e.g. Kg, Unit, No, Pair).","Jednostka miary tego produktu (np. Kg, jednostka, numer, para)."
Units/Hour,Jednostka/godzinę
Units/Shifts,Units/Shifts
Unmatched Amount,Unmatched Amount
Unpaid,Unpaid
Unscheduled,Unscheduled
Unsecured Loans,Unsecured Loans
Unstop,Unstop
Unstop Material Request,Unstop Material Request
Unstop Purchase Order,Unstop Purchase Order
Unsubscribed,Unsubscribed
Update,Update
Update Clearance Date,Update Clearance Date
Update Cost,Update Cost
Update Finished Goods,Update Finished Goods
Update Landed Cost,Update Landed Cost
Update Series,Update Series
Update Series Number,Update Series Number
Update Stock,Update Stock
"Update allocated amount in the above table and then click ""Allocate"" button","Update allocated amount in the above table and then click ""Allocate"" button"
Update bank payment dates with journals.,Update bank payment dates with journals.
Update clearance date of Journal Entries marked as 'Bank Vouchers',Update clearance date of Journal Entries marked as 'Bank Vouchers'
Updated,Updated
Updated Birthday Reminders,Updated Birthday Reminders
Upload Attendance,Upload Attendance
Upload Backups to Dropbox,Upload Backups to Dropbox
Upload Backups to Google Drive,Upload Backups to Google Drive
Upload HTML,Upload HTML
Upload a .csv file with two columns: the old name and the new name. Max 500 rows.,Upload a .csv file with two columns: the old name and the new name. Max 500 rows.
Upload attendance from a .csv file,Upload attendance from a .csv file
Upload stock balance via csv.,Upload stock balance via csv.
Upload your letter head and logo - you can edit them later.,Upload your letter head and logo - you can edit them later.
Upper Income,Upper Income
Urgent,Urgent
Use Multi-Level BOM,Używaj wielopoziomowych zestawień materiałowych
Use SSL,Use SSL
User,Użytkownik
User ID,User ID
User ID not set for Employee {0},User ID not set for Employee {0}
User Name,User Name
User Name or Support Password missing. Please enter and try again.,User Name or Support Password missing. Please enter and try again.
User Remark,User Remark
User Remark will be added to Auto Remark,User Remark will be added to Auto Remark
User Remarks is mandatory,User Remarks is mandatory
User Specific,User Specific
User must always select,User must always select
User {0} is already assigned to Employee {1},User {0} is already assigned to Employee {1}
User {0} is disabled,User {0} is disabled
Username,Username
Users with this role are allowed to create / modify accounting entry before frozen date,Users with this role are allowed to create / modify accounting entry before frozen date
Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts,Users with this role are allowed to set frozen accounts and create / modify accounting entries against frozen accounts
Utilities,Utilities
Utility Expenses,Utility Expenses
Valid For Territories,Valid For Territories
Valid From,Valid From
Valid Upto,Valid Upto
Valid for Territories,
Validate,Validate
Valuation,Valuation
Valuation Method,Metoda wyceny
Valuation Rate,Valuation Rate
Valuation Rate required for Item {0},Valuation Rate required for Item {0}
Valuation and Total,Valuation and Total
Value,Value
Value or Qty,Value or Qty
Vehicle Dispatch Date,Vehicle Dispatch Date
Vehicle No,Nr rejestracyjny pojazdu
Venture Capital,Venture Capital
Verified By,Zweryfikowane przez
View Ledger,View Ledger
View Now,View Now
Visit report for maintenance call.,Visit report for maintenance call.
Voucher #,Voucher #
Voucher Detail No,Voucher Detail No
Voucher ID,Voucher ID
Voucher No,Voucher No
Voucher No is not valid,Voucher No is not valid
Voucher Type,Voucher Type
Voucher Type and Date,Voucher Type and Date
Walk In,Walk In
Warehouse,Magazyn
Warehouse Contact Info,Dane kontaktowe dla magazynu
Warehouse Detail,Szczegóły magazynu
Warehouse Name,Nazwa magazynu
Warehouse and Reference,Warehouse and Reference
Warehouse can not be deleted as stock ledger entry exists for this warehouse.,Warehouse can not be deleted as stock ledger entry exists for this warehouse.
Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt,Warehouse can only be changed via Stock Entry / Delivery Note / Purchase Receipt
Warehouse cannot be changed for Serial No.,Warehouse cannot be changed for Serial No.
Warehouse is mandatory for stock Item {0} in row {1},Warehouse is mandatory for stock Item {0} in row {1}
Warehouse is missing in Purchase Order,Warehouse is missing in Purchase Order
Warehouse not found in the system,Warehouse not found in the system
Warehouse required for stock Item {0},Warehouse required for stock Item {0}
Warehouse required in POS Setting,Warehouse required in POS Setting
Warehouse where you are maintaining stock of rejected items,Warehouse where you are maintaining stock of rejected items
Warehouse {0} can not be deleted as quantity exists for Item {1},Warehouse {0} can not be deleted as quantity exists for Item {1}
Warehouse {0} does not belong to company {1},Warehouse {0} does not belong to company {1}
Warehouse {0} does not exist,Warehouse {0} does not exist
Warehouse-Wise Stock Balance,Warehouse-Wise Stock Balance
Warehouse-wise Item Reorder,Warehouse-wise Item Reorder
Warehouses,Magazyny
Warehouses.,Magazyny.
Warn,Warn
Warning: Leave application contains following block dates,Warning: Leave application contains following block dates
Warning: Material Requested Qty is less than Minimum Order Qty,Warning: Material Requested Qty is less than Minimum Order Qty
Warning: Sales Order {0} already exists against same Purchase Order number,Warning: Sales Order {0} already exists against same Purchase Order number
Warning: System will not check overbilling since amount for Item {0} in {1} is zero,Warning: System will not check overbilling since amount for Item {0} in {1} is zero
Warranty / AMC Details,Warranty / AMC Details
Warranty / AMC Status,Warranty / AMC Status
Warranty Expiry Date,Data upływu gwarancji
Warranty Period (Days),Okres gwarancji (dni)
Warranty Period (in days),Okres gwarancji (w dniach)
We buy this Item,We buy this Item
We sell this Item,We sell this Item
Website,Strona internetowa
Website Description,Website Description
Website Item Group,Website Item Group
Website Item Groups,Website Item Groups
Website Settings,Website Settings
Website Warehouse,Website Warehouse
Wednesday,Środa
Weekly,Tygodniowo
Weekly Off,Weekly Off
Weight UOM,Weight UOM
"Weight is mentioned,\nPlease mention ""Weight UOM"" too","Weight is mentioned,\nPlease mention ""Weight UOM"" too"
Weightage,Weightage
Weightage (%),Weightage (%)
Welcome,Witamy
Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!,Welcome to ERPNext. Over the next few minutes we will help you setup your ERPNext account. Try and fill in as much information as you have even if it takes a bit longer. It will save you a lot of time later. Good Luck!
Welcome to ERPNext. Please select your language to begin the Setup Wizard.,Welcome to ERPNext. Please select your language to begin the Setup Wizard.
What does it do?,What does it do?
"When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email.","When any of the checked transactions are ""Submitted"", an email pop-up automatically opened to send an email to the associated ""Contact"" in that transaction, with the transaction as an attachment. The user may or may not send the email."
"When submitted, the system creates difference entries to set the given stock and valuation on this date.","When submitted, the system creates difference entries to set the given stock and valuation on this date."
Where items are stored.,Gdzie produkty są przechowywane.
Where manufacturing operations are carried out.,Gdzie prowadzona jest działalność produkcyjna.
Widowed,Widowed
Will be calculated automatically when you enter the details,Will be calculated automatically when you enter the details
Will be updated after Sales Invoice is Submitted.,Will be updated after Sales Invoice is Submitted.
Will be updated when batched.,Will be updated when batched.
Will be updated when billed.,Will be updated when billed.
Wire Transfer,Przelew
With Operations,Wraz z działaniami
With period closing entry,With period closing entry
Work Details,Work Details
Work Done,Work Done
Work In Progress,Work In Progress
Work-in-Progress Warehouse,Magazyn dla produkcji
Work-in-Progress Warehouse is required before Submit,Work-in-Progress Warehouse is required before Submit
Working,Working
Workstation,Stacja robocza
Workstation Name,Nazwa stacji roboczej
Write Off Account,Write Off Account
Write Off Amount,Write Off Amount
Write Off Amount <=,Write Off Amount <=
Write Off Based On,Write Off Based On
Write Off Cost Center,Write Off Cost Center
Write Off Outstanding Amount,Write Off Outstanding Amount
Write Off Voucher,Write Off Voucher
Wrong Template: Unable to find head row.,Wrong Template: Unable to find head row.
Year,Rok
Year Closed,Year Closed
Year End Date,Year End Date
Year Name,Year Name
Year Start Date,Year Start Date
Year Start Date and Year End Date are already set in Fiscal Year {0},Year Start Date and Year End Date are already set in Fiscal Year {0}
Year Start Date and Year End Date are not within Fiscal Year.,Year Start Date and Year End Date are not within Fiscal Year.
Year Start Date should not be greater than Year End Date,Year Start Date should not be greater than Year End Date
Year of Passing,Year of Passing
Yearly,Rocznie
Yes,Tak
You are not authorized to add or update entries before {0},You are not authorized to add or update entries before {0}
You are not authorized to set Frozen value,You are not authorized to set Frozen value
You are the Expense Approver for this record. Please Update the 'Status' and Save,You are the Expense Approver for this record. Please Update the 'Status' and Save
You are the Leave Approver for this record. Please Update the 'Status' and Save,You are the Leave Approver for this record. Please Update the 'Status' and Save
You can enter any date manually,You can enter any date manually
You can enter the minimum quantity of this item to be ordered.,"Można wpisać minimalna ilość tego produktu, którą zamierza się zamawiać."
You can not assign itself as parent account,You can not assign itself as parent account
You can not change rate if BOM mentioned agianst any item,You can not change rate if BOM mentioned agianst any item
You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.
You can not enter current voucher in 'Against Journal Voucher' column,You can not enter current voucher in 'Against Journal Voucher' column
You can set Default Bank Account in Company master,You can set Default Bank Account in Company master
You can start by selecting backup frequency and granting access for sync,You can start by selecting backup frequency and granting access for sync
You can submit this Stock Reconciliation.,You can submit this Stock Reconciliation.
You can update either Quantity or Valuation Rate or both.,You can update either Quantity or Valuation Rate or both.
You cannot credit and debit same account at the same time,You cannot credit and debit same account at the same time
You have entered duplicate items. Please rectify and try again.,You have entered duplicate items. Please rectify and try again.
You may need to update: {0},You may need to update: {0}
You must Save the form before proceeding,You must Save the form before proceeding
You must allocate amount before reconcile,You must allocate amount before reconcile
Your Customer's TAX registration numbers (if applicable) or any general information,Your Customer's TAX registration numbers (if applicable) or any general information
Your Customers,Your Customers
Your Login Id,Your Login Id
Your Products or Services,Your Products or Services
Your Suppliers,Your Suppliers
Your email address,Your email address
Your financial year begins on,Your financial year begins on
Your financial year ends on,Your financial year ends on
Your sales person who will contact the customer in future,Your sales person who will contact the customer in future
Your sales person will get a reminder on this date to contact the customer,Your sales person will get a reminder on this date to contact the customer
Your setup is complete. Refreshing...,Your setup is complete. Refreshing...
Your support email id - must be a valid email - this is where your emails will come!,Your support email id - must be a valid email - this is where your emails will come!
[Select],[Select]
`Freeze Stocks Older Than` should be smaller than %d days.,`Freeze Stocks Older Than` should be smaller than %d days.
and,and
are not allowed.,are not allowed.
assigned by,assigned by
"e.g. ""Build tools for builders""","e.g. ""Build tools for builders"""
"e.g. ""MC""","e.g. ""MC"""
"e.g. ""My Company LLC""","e.g. ""My Company LLC"""
e.g. 5,e.g. 5
"e.g. Bank, Cash, Credit Card","e.g. Bank, Cash, Credit Card"
"e.g. Kg, Unit, Nos, m","e.g. Kg, Unit, Nos, m"
e.g. VAT,e.g. VAT
eg. Cheque Number,eg. Cheque Number
example: Next Day Shipping,example: Next Day Shipping
lft,
old_parent,old_parent
rgt,
website page link,website page link
{0} '{1}' not in Fiscal Year {2},{0} '{1}' not in Fiscal Year {2}
{0} Credit limit {0} crossed,{0} Credit limit {0} crossed
{0} Serial Numbers required for Item {0}. Only {0} provided.,{0} Serial Numbers required for Item {0}. Only {0} provided.
{0} budget for Account {1} against Cost Center {2} will exceed by {3},{0} budget for Account {1} against Cost Center {2} will exceed by {3}
{0} created,{0} created
{0} does not belong to Company {1},{0} does not belong to Company {1}
{0} entered twice in Item Tax,{0} entered twice in Item Tax
{0} is an invalid email address in 'Notification Email Address',{0} is an invalid email address in 'Notification Email Address'
{0} is mandatory,{0} is mandatory
{0} is mandatory for Item {1},{0} is mandatory for Item {1}
{0} is not a stock Item,{0} is not a stock Item
{0} is not a valid Batch Number for Item {1},{0} is not a valid Batch Number for Item {1}
{0} is not a valid Leave Approver,{0} is not a valid Leave Approver
{0} is not a valid email id,{0} is not a valid email id
{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.,{0} is now the default Fiscal Year. Please refresh your browser for the change to take effect.
{0} is required,{0} is required
{0} must be a Purchased or Sub-Contracted Item in row {1},{0} must be a Purchased or Sub-Contracted Item in row {1}
{0} must be less than or equal to {1},{0} must be less than or equal to {1}
{0} must have role 'Leave Approver',{0} must have role 'Leave Approver'
{0} valid serial nos for Item {1},{0} valid serial nos for Item {1}
{0} {1} against Bill {2} dated {3},{0} {1} against Bill {2} dated {3}
{0} {1} against Invoice {2},{0} {1} against Invoice {2}
{0} {1} has already been submitted,{0} {1} has already been submitted
{0} {1} has been modified. Please Refresh,{0} {1} has been modified. Please Refresh
{0} {1} has been modified. Please refresh,
{0} {1} has been modified. Please refresh.,{0} {1} has been modified. Please refresh.
{0} {1} is not submitted,{0} {1} is not submitted
{0} {1} must be submitted,{0} {1} must be submitted
{0} {1} not in any Fiscal Year,{0} {1} not in any Fiscal Year
{0} {1} status is 'Stopped',{0} {1} status is 'Stopped'
{0} {1} status is Stopped,{0} {1} status is Stopped
{0} {1} status is Unstopped,{0} {1} status is Unstopped
