 (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,Grupa Odbiorców posiada taką nazwę - wprowadź inną nazwę Odbiorcy lub zmień nazwę Grupy  
A Customer exists with same name,Odbiorca o tej nazwie już istnieje
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,Dostawca o tej nazwie już istnieje
A symbol for this currency. For e.g. $,Symbol waluty. Np. $
AMC Expiry Date,AMC Expiry Date
Abbr,Skrót
Abbreviation cannot have more than 5 characters,Skrót nie może posiadać więcej niż 5 znaków
About,Informacje
Above Value,Above Value
Absent,Nieobecny
Acceptance Criteria,Kryteria akceptacji
Accepted,Przyjęte
Accepted + Rejected Qty must be equal to Received quantity for Item {0},Ilość Przyjętych + Odrzuconych musi odpowiadać ilości Odebranych (Element {0})
Accepted Quantity,Przyjęta Ilość
Accepted Warehouse,Accepted Warehouse
Account,Konto
Account Balance,Bilans konta
Account Created: {0},Utworzono Konto: {0}
Account Details,Szczegóły konta
Account Head,Account Head
Account Name,Nazwa konta
Account Type,Typ konta
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,Konto musi być bilansowe
Account with child nodes cannot be converted to ledger,Konto grupujące inne konta nie może być konwertowane
Account with existing transaction can not be converted to group.,Konto z istniejącymi zapisami nie może być konwertowane na Grupę (konto dzielone).
Account with existing transaction can not be deleted,Konto z istniejącymi zapisami nie może być usunięte
Account with existing transaction cannot be converted to ledger,Konto z istniejącymi zapisami nie może być konwertowane
Account {0} cannot be a Group,Konto {0} nie może być Grupą (kontem dzielonym)
Account {0} does not belong to Company {1},Konto {0} nie jest przypisane do Firmy {1}
Account {0} does not exist,Konto {0} nie istnieje
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,Konto {0} jest zamrożone
Account {0} is inactive,Konto {0} jest nieaktywne
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,Konto: {0} może być aktualizowane tylko przez \ Operacje Magazynowe
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.","Zapisywanie kont zostało zamrożone do tej daty, nikt  nie może / modyfikować zapisów poza uprawnionymi użytkownikami wymienionymi poniżej."
Accounting journal entries.,Accounting journal entries.
Accounts,Księgowość
Accounts Browser,Accounts Browser
Accounts Frozen Upto,Konta zamrożone do 
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,Dodaj nr seryjny
Add Taxes,Dodaj Podatki
Add Taxes and Charges,Dodaj podatki i opłaty
Add or Deduct,Dodatki lub Potrącenia
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,Dodaj do kalendarza pod tą datą
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,Dozwolony ujemny bilans
Allow Negative Stock,Dozwolony ujemny stan
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 >=,Wartość >=
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",Istnieje element Grupy o takiej nazwie. Zmień nazwę elementu lub tamtej Grupy.
"An item exists with same name ({0}), please change the item group name or rename the item",Istnieje element  o takiej nazwie. Zmień nazwę Grupy lub tego elementu.
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,Załącz 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},Bilans dla Konta {0} zawsze powinien wynosić {1}
Balance must be,Bilans powinien wynosić 
"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,Partia
Batch (lot) of an Item.,Partia (pakiet) produktu.
Batch Finished Date,Data ukończenia Partii
Batch ID,Identyfikator Partii
Batch No,Nr Partii
Batch Started Date,Data rozpoczęcia Partii
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,Oblicz całkowity wynik
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,Anulowano
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.,Nie można zmieniać daty początkowej i końcowej uworzonego już Roku Podatkowego.
"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,Konto Kasa lub Bank jest wymagane dla tworzenia zapisów Płatności
Cash/Bank Account,Konto Kasa/Bank
Casual Leave,Casual Leave
Cell Number,Telefon komórkowy
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,Plan Kont
Chart of Cost Centers,Struktura kosztów (MPK)
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.,To konto zawiera konta potomne. Nie można usunąć takiego konta.
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,Osoba kontaktowa
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,MPK
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","Kraj, Strefa czasowa i Waluta"
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,Codziennie
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,Data urodzenia
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,Daty
Days Since Last Order,Dni od ostatniego zamówienia
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,Domyślne konto bankowe
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,Domyślna grupa klientów
Default Expense Account,Domyślne konto rozchodów
Default Income Account,Domyślne konto przychodów
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,Domyślna jednostka
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,Powiadomienia na e-mail
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.,Nie jest możliwe wykonywanie zapisów na zamkniętym Roku Podatkowym.
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,Koszt
Expense Account,Konto Wydatków
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 Podatkowy
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,Grupa lub Konto
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,Zapisy księgowe
Journal Entry,Journal Entry
Journal Voucher,Polecenia Księgowania
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,Język
Last Name,Nazwisko
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,Tworzenie Zapisów Księgowych dla każdej zmiany stanu Magazynu
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,Nadrzędne konto
Parent Cost Center,Parent Cost Center
Parent Customer Group,Parent Customer Group
Parent Detail docname,Parent Detail docname
Parent Item,Element nadrzędny
Parent Item Group,Grupa Elementu nadrzędnego
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,Nadrzędne konto (Grupa) nie może być zwykłym kontem
Parent account does not exist,Nadrzędne konto nie istnieje
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,Wprowadź konto Wydatków
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,Wybierz konto Bank
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,Wybierz Rok Podatkowy
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,Należy stworzyć własny Plan Kont zanim rozpocznie się księgowanie
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,Punkt Sprzedaży
Point-of-Sale Setting,Konfiguracja Punktu Sprzedaży
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,Koszty Sprzedaży
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,Faktura Sprzedaży {0} została już wprowadzona
Sales Invoice {0} must be cancelled before cancelling this Sales Order,Faktura Sprzedaży {0} powinna być anulowana przed anulowaniem samego Zlecenia Sprzedaży
Sales Order,Zlecenie sprzedaży
Sales Order Date,Data Zlecenia
Sales Order Item,Pozycja Zlecenia Sprzedaży
Sales Order Items,Pozycje Zlecenia Sprzedaży
Sales Order Message,Informacje Zlecenia Sprzedaży
Sales Order No,Nr Zlecenia Sprzedaży
Sales Order Required,Sales Order Required
Sales Order Trends,Sales Order Trends
Sales Order required for Item {0},Zlecenie Sprzedaży jest wymagane dla Elementu {0}
Sales Order {0} is not submitted,Zlecenie Sprzedaży {0} nie jest jeszcze złożone
Sales Order {0} is not valid,Zlecenie Sprzedaży {0} jest niepoprawne
Sales Order {0} is stopped,Zlecenie Sprzedaży {0} jest wstrzymane
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,Sprzedaże zwrócone
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,Sobota
Schedule,Harmonogram
Schedule Date,Schedule Date
Schedule Details,Schedule Details
Scheduled,Zaplanowane
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,Wybierz Elementy
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,Wybierz Swój Język
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.,Wybierz kraj oraz sprawdź strefę czasową i walutę
"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,Ustawienia Systemowe
"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.,Miejsca Powstawania Kosztów.
Tree of finanial accounts.,Rejestr operacji gospodarczych.
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,Nazwa Użytkownika
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,Magazyn wymagany w ustawieniach Punktu Sprzedaży (POS)
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},Data Początkowa i Data Końcowa są już zdefiniowane dla Roku Podatkowego {0}
Year Start Date and Year End Date are not within Fiscal Year.,Data Początkowa i Data Końcowa nie zawierają się w Roku Podatkowym.
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,Nie można przypisać jako nadrzędne konto tego samego konta
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,Nie można wykonywać zapisów po stronie debetowej oraz kredytowej tego samego konta w jednym czasie
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,Zapisz formularz aby kontynuować
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,Rok Podatkowy rozpoczyna się 
Your financial year ends on,Rok Podatkowy kończy się 
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
