 (Half Day), (Hálfan dag)
 and year: , og ár: 
""" does not exists",""" er ekki til"
%  Delivered,%  Afhent
% Amount Billed,% Upphæð reikningsfærð
% Billed,% Reikningsfært
% Completed,% Lokið
% Delivered,% Afhent
% Installed,% Uppsett
% Milestones Achieved,% Áföngum náð
% Milestones Completed,% Áföngum lokið
% Received,% Móttekið
% Tasks Completed,% Verkefnum lokið
% of materials billed against this Purchase Order.,% of materials billed against this Purchase Order.
% of materials billed against this Sales Order,% of materials billed against this Sales Order
% of materials delivered against this Delivery Note,% of materials delivered against this Delivery Note
% of materials delivered against this Sales Order,% of materials delivered against this Sales Order
% of materials ordered against this Material Request,% of materials ordered against this Material Request
% of materials received against this Purchase Order,% of materials received against this Purchase Order
'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,'Upphafsdagur' er krafist
'From Date' must be after 'To Date','Upphafsdagur' verður að vera nýrri en 'Lokadagur'
'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 %s,'Notification Email Addresses' not specified for recurring %s
'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,'Lokadagur' er krafist
'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.
"**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.To distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**","**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.To distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**"
**Currency** Master,**Currency** Master
**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.,**Fiscal Year** represents a Financial Year. All accounting entries and other major transactions are tracked against **Fiscal Year**.
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
90-Above,90-Above
"<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>"
"<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>","<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN:  {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>"
A Customer Group exists with same name please change the Customer name or rename the Customer Group,A Customer Group exists with same name please change the Customer name or rename the Customer Group
A Customer exists with same name,Viðskiptavinur til með sama nafni
A Lead with this email id should exist,Ábending með kenni netfangs ætti að vera til
A Product or Service,Vara eða þjónusta
"A Product or a Service that is bought, sold or kept in stock.","Vara eða þjónustu sem er keypt, seld eða haldið á lager."
A Supplier exists with same name,Birgir til með sama nafni
A condition for a Shipping Rule,Skilyrði fyrir reglu vöruflutninga
A logical Warehouse against which stock entries are made.,A logical Warehouse against which stock entries are made.
A symbol for this currency. For e.g. $,Tákn fyrir þennan gjaldmiðil. For e.g. $
A third party distributor / dealer / commission agent / affiliate / reseller who sells the companies products for a commission.,Þriðja aðila dreifingaraðili / söluaðili / umboðsaðili umboðslauna / hlutdeildarfélag / endurseljandi sem selur fyrirtækjum vörur fyrir þóknun.
"A user with ""Expense Approver"" role","A user with ""Expense Approver"" role"
AMC Expiry Date,AMC Expiry Date
Abbr,Abbr
Abbreviation cannot have more than 5 characters,Skammstöfun má ekki hafa fleiri en 5 stafi
Above Value,Umfram gildi
Absent,Fjarverandi
Acceptance Criteria,Viðtökuskilyrði
Accepted,Samþykkt
Accepted + Rejected Qty must be equal to Received quantity for Item {0},Samþykkt + Hafnað magn skulu vera jöfn mótteknu magni fyrir lið {0}
Accepted Quantity,Samþykkt magn
Accepted Warehouse,Samþykkt vörugeymsla
Account,Reikningur
Account Balance,Reikningsstaða
Account Created: {0},Reikningur stofnaður: {0}
Account Details,Reiknings upplýsingar
Account Group,Reikninga hópur
Account Head,Account Head
Account Name,Reikningsnafn
Account Type,Rekningsgerð
"Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'","Account balance already in Credit, you are not allowed to set 'Balance Must Be' as 'Debit'"
"Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'","Account balance already in Debit, you are not allowed to set 'Balance Must Be' as 'Credit'"
Account for the warehouse (Perpetual Inventory) will be created under this Account.,Account for the warehouse (Perpetual Inventory) will be created under this Account.
Account head {0} created,Account head {0} created
Account must be a balance sheet account,Account must be a balance sheet account
Account with child nodes cannot be converted to ledger,Account with child nodes cannot be converted to ledger
Account with existing transaction can not be converted to group.,Account with existing transaction can not be converted to group.
Account with existing transaction can not be deleted,Account with existing transaction can not be deleted
Account with existing transaction cannot be converted to ledger,Account with existing transaction cannot be converted to ledger
Account {0} cannot be a Group,Account {0} cannot be a Group
Account {0} does not belong to Company {1},Account {0} does not belong to Company {1}
Account {0} does not belong to company: {1},Account {0} does not belong to company: {1}
Account {0} does not exist,Account {0} does not exist
Account {0} does not exists,Account {0} does not exists
Account {0} has been entered more than once for fiscal year {1},Account {0} has been entered more than once for fiscal year {1}
Account {0} is frozen,Account {0} is frozen
Account {0} is inactive,Account {0} is inactive
Account {0} is not valid,Account {0} is not valid
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}: Parent account {1} can not be a ledger,Account {0}: Parent account {1} can not be a ledger
Account {0}: Parent account {1} does not belong to company: {2},Account {0}: Parent account {1} does not belong to company: {2}
Account {0}: Parent account {1} does not exist,Account {0}: Parent account {1} does not exist
Account {0}: You can not assign itself as parent account,Account {0}: You can not assign itself as parent account
Account: {0} can only be updated via Stock Transactions,Account: {0} can only be updated via Stock Transactions
Accountant,Bókari
Accounting,Bókhald
"Accounting Entries can be made against leaf nodes, called","Accounting Entries can be made against leaf nodes, called"
Accounting Entry for Stock,Accounting Entry for Stock
"Accounting entry frozen up to this date, nobody can do / modify entry except role specified below.","Accounting entry frozen up to this date, nobody can do / modify entry except role specified below."
Accounting journal entries.,Accounting journal entries.
Accounts,Reikningar
Accounts Browser,Accounts Browser
Accounts Frozen Upto,Accounts Frozen Upto
Accounts Manager,Accounts Manager
Accounts Payable,Viðskiptaskuldir
Accounts Receivable,Viðskiptakröfur
Accounts Settings,Accounts Settings
Accounts User,Accounts User
Achieved,Achieved
Active,Virkt
Active: Will extract emails from ,Active: Will extract emails from 
Activity,Aðgerðir
Activity Log,Activity Log
Activity Log:,Activity Log:
Activity Type,Activity Type
Actual,Actual
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,Raundagsetning bókunar
Actual Qty,Raunmagn
Actual Qty (at source/target),Raunmagn (við upptök/markmið)
Actual Qty After Transaction,Raunmagn eftir færslu
Actual Qty is mandatory,Raunmagn er bindandi
Actual Qty: Quantity available in the warehouse.,Raunmagn: Magn í boði á lager.
Actual Quantity,Raunmagn
Actual Start Date,Actual Start Date
Add,Add
Add / Edit Prices,Add / Edit Prices
Add / Edit Taxes and Charges,Add / Edit Taxes and Charges
Add Child,Add Child
Add Serial No,Add Serial No
Add Taxes,Add Taxes
Add or Deduct,Add or Deduct
Add rows to set annual budgets on Accounts.,Add rows to set annual budgets on Accounts.
Add to Cart,Add to Cart
Add to calendar on this date,Add to calendar on this date
Add/Remove Recipients,Add/Remove Recipients
Address,Address
Address & Contact,Address & Contact
Address & Contacts,Address & Contacts
Address Desc,Address Desc
Address Details,Address Details
Address HTML,Address HTML
Address Line 1,Address Line 1
Address Line 2,Address Line 2
Address Template,Address Template
Address Title,Address Title
Address Title is mandatory.,Address Title is mandatory.
Address Type,Address Type
Address master.,Address master.
Administrative Expenses,Stjórnunarkostnaður
Administrative Officer,Administrative Officer
Administrator,Stjórnandi
Advance Amount,Heildarupphæð
Advance Paid,Advance Paid
Advance amount,Advance amount
Advance paid against {0} {1} cannot be greater \					than Grand Total {2},Advance paid against {0} {1} cannot be greater \					than Grand Total {2}
Advances,Advances
Advertisement,Advertisement
Advertising,Advertising
Aerospace,Aerospace
After Sale Installations,After Sale Installations
Against,Against
Against Account,Á móti reikning
Against Docname,Á móti nafni skjals
Against Doctype,Á móti gerð skjals
Against Document Detail No,Á móti upplýsinganúmeri skjals
Against Document No,Á móti skjalanúmeri
Against Expense Account,Á móti kostnaðarreikningi
Against Income Account,Á móti tekjureikningi
Against Invoice,Á móti reikningi
Against Invoice Posting Date,Á móti bókunardagsetningu
Against Journal Voucher,Á móti færslu í færslubók
Against Journal Voucher {0} does not have any unmatched {1} entry,Á móti færslu í færslubók {0} hefur ekki samsvarandi {1} færslu
Against Journal Voucher {0} is already adjusted against some other voucher,Á móti færslu í færslubók {0} er þegar tengd við aðra færslu
Against Purchase Invoice,Á móti innkaupareikningi
Against Purchase Order,Á móti innkaupapöntun
Against Sales Invoice,Á móti sölureikningi
Against Sales Order,Á móti sölupöntun
Against Supplier Invoice {0} dated {1},Á móti reikningi frá birgja {0} dagsettum {1}
Against Voucher,Á móti fylgiskjali
Against Voucher No,Á móti fylgiskjali nr
Against Voucher Type,Á móti gerð fylgiskjals
"Against Voucher Type must be one of Purchase Order, Purchase Invoice or Journal Voucher","Á móti gerð fylgiskjals verður að vera eitt af innkaupapöntun, innkaupareikningi eða færslu í færslubók"
"Against Voucher Type must be one of Sales Order, Sales Invoice or Journal Voucher","Á móti gerð fylgiskjals verður að vera eitt af sölupöntun, sölureikningi eða færslu í færslubók"
Age,Aldur
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,Ageing date is mandatory for opening entry
Agent,Umboðsmaður
"Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials","Aggregate group of **Items** into another **Item**. This is useful if you are bundling a certain **Items** into a package and you maintain stock of the packed **Items** and not the aggregate **Item**. The package **Item** will have ""Is Stock Item"" as ""No"" and ""Is Sales Item"" as ""Yes"".For Example: If you are selling Laptops and Backpacks separately and have a special price if the customer buys both, then the Laptop + Backpack will be a new Sales BOM Item.Note: BOM = Bill of Materials"
Aging Date,Aging Date
Aging Date is mandatory for opening entry,Aging Date is mandatory for opening entry
Agriculture,Landbúnaður
Airline,Flugfélag
All,Allt
All Addresses.,Öll heimilisföng.
All Contact,Allir tengiliðir
All Contacts.,Allir tengiliðir
All Customer Contact,All Customer Contact
All Customer Groups,All Customer Groups
All Day,Allan daginn
All Employee (Active),Allir starfsmenn (virkir)
All Item Groups,All Item Groups
All Lead (Open),Allar ábendingar (opnar)
All Products or Services.,Allar vörur eða þjónusta.
All Sales Partner Contact,All Sales Partner Contact
All Sales Person,All Sales Person
All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.,All Sales Transactions can be tagged against multiple **Sales Persons** so that you can set and monitor targets.
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,Allt hefur nú þegar verið reikningsfært
All these items have already been invoiced,Allt þetta hér hefur nú þegar verið reiknisfært
Allocate,Úthluta
Allocate leaves for a period.,Úthluta fríum á tímabil.
Allocate leaves for the year.,Úthluta fríum á árið.
Allocated,Úthlutað
Allocated Amount,Úthlutuð fjárhæð
Allocated Budget,Úthlutuð kostnaðaráætlun
Allocated amount,Úthlutuð fjárhæð
Allocated amount can not be negative,Úthlutuð fjárhæð getur ekki verið neikvæð
Allocated amount can not greater than unadusted amount,Allocated amount can not greater than unadusted amount
Allow Bill of Materials,Allow Bill of Materials
Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item,Allow Bill of Materials should be 'Yes'. Because one or many active BOMs present for this item
Allow Children,Allow Children
Allow Dropbox Access,Allow Dropbox Access
Allow Google Drive Access,Allow Google Drive Access
Allow Negative Balance,Allow Negative Balance
Allow Negative Stock,Leyfa neikvæðar birgðir
Allow Production Order,Leyfa framleiðslupöntun
Allow User,Leyfa notanda
Allow Users,Leyfa notendur
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,Allowance Percent
Allowance for over-{0} crossed for Item {1},Allowance for over-{0} crossed for Item {1}
Allowance for over-{0} crossed for Item {1}.,Allowance for over-{0} crossed for Item {1}.
Allowed Role to Edit Entries Before Frozen Date,Allowed Role to Edit Entries Before Frozen Date
Amended From,Amended From
Amount,Upphæð
Amount (Company Currency),Amount (Company Currency)
Amount Paid,Upphæð greidd
Amount to Bill,Amount to Bill
Amounts not reflected in bank,Amounts not reflected in bank
Amounts not reflected in system,Amounts not reflected in system
Amt,Amt
An Customer exists with same name,Viðskiptavinur til með sama nafni
"An Item Group exists with same name, please change the item name or rename the item group","An Item Group exists with same name, please change the item name or rename the item group"
"An item exists with same name ({0}), please change the item group name or rename the item","An item exists with same name ({0}), please change the item group name or rename the item"
Analyst,Greinir
Annual,Árlegur
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 {1}. Please make its status 'Inactive' to proceed.,Another Salary Structure {0} is active for employee {1}. 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,Fatnaður & Aukabúnaður
Applicability,Gildi
Applicable Charges,Gildandi gjöld
Applicable For,Gilda fyrir
Applicable Holiday List,Gildandi listi fyrir fríið
Applicable Territory,Gildandi svæði
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,Nafn umsækjanda
Applicant for a Job,Umsækjandi um vinnu
Applicant for a Job.,Umsækjandi um vinnu.
Application of Funds (Assets),Eignir
Applications for leave.,Umsókn um leyfi.
Applies to Company,Gildir um fyrirtæki
Apply / Approve Leaves,Apply / Approve Leaves
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,Staða samþykkis
Approval Status must be 'Approved' or 'Rejected',Staða samþykkis verður að vera 'Samþykkt' eða 'Hafnað'
Approved,Samþykkt
Approver,Samþykkjandi
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', 'Has Batch 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', 'Has Batch No', 'Is Stock Item' and 'Valuation Method'"
Asset,Eign
Assistant,Aðstoðarmaður
Associate,Samstarfsmaður
Atleast one of the Selling or Buying must be selected,Atleast one of the Selling or Buying must be selected
Atleast one warehouse is mandatory,Atleast one warehouse is mandatory
Attach Image,Hengja við mynd
Attach Letterhead,Hengja við bréfshausinn
Attach Logo,Hengdu við logo
Attach Your Picture,Hengdu við myndina þína
Attendance,Aðsókn
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.
Auditor,Auditor
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,Auto-raise Material Request if quantity goes below re-order level in a warehouse
Automatically compose message on submission of transactions.,Automatically compose message on submission of transactions.
Automatically updated via Stock Entry of type Manufacture or Repack,Automatically updated via Stock Entry of type Manufacture or Repack
Automotive,Automotive
Autoreply when a new mail is received,Autoreply when a new mail is received
Available,Available
Available Qty at Warehouse,Available Qty at Warehouse
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
Avg Daily Outgoing,Avg Daily Outgoing
Avg. Buying Rate,Avg. Buying Rate
Awesome Products,Meirihàttar vörur
Awesome Services,Meirihàttar þjónusta
BOM Detail No,BOM Detail No
BOM Explosion Item,BOM Explosion Item
BOM Item,BOM Item
BOM No,BOM No
BOM No. for a Finished Good Item,BOM No. for a Finished Good Item
BOM Operation,BOM Operation
BOM Operations,BOM Operations
BOM Rate,BOM Rate
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,Afritunarstjóri
Backup Right Now,Afrita núna
Backups will be uploaded to,Backups will be uploaded to
Balance,Balance
Balance Qty,Balance Qty
Balance Sheet,Efnahagsreikningur
Balance Value,Balance Value
Balance for Account {0} must always be {1},Balance for Account {0} must always be {1}
Balance must be,Balance must be
"Balances of Accounts of type ""Bank"" or ""Cash""","Balances of Accounts of type ""Bank"" or ""Cash"""
Bank,Bank
Bank / Cash Account,Bank / Cash Account
Bank A/C No.,Bank A/C No.
Bank Account,Bank Account
Bank Account No.,Bank Account No.
Bank Accounts,Bankareikningar
Bank Clearance Summary,Bank Clearance Summary
Bank Draft,Bank Draft
Bank Name,Bank Name
Bank Overdraft Account,Yfirdráttarreikningur
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,Barcode
Barcode {0} already used in Item {1},Barcode {0} already used in Item {1}
Based On,Based On
Basic,Basic
Basic Info,Basic Info
Basic Information,Basic Information
Basic Rate,Basic Rate
Basic Rate (Company Currency),Basic Rate (Company Currency)
Batch,Batch
Batch (lot) of an Item.,Batch (lot) of an Item.
Batch Finished Date,Batch Finished Date
Batch ID,Batch ID
Batch No,Batch No
Batch Started Date,Batch Started Date
Batch Time Logs for Billing.,Batch Time Logs for Billing.
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 of Material,Bill of Material
Bill of Material to be considered for manufacturing,Bill of Material to be considered for manufacturing
Bill of Materials (BOM),Bill of Materials (BOM)
Billable,Billable
Billed,Billed
Billed Amount,Billed Amount
Billed Amt,Billed Amt
Billing,Billing
Billing (Sales Invoice),Billing (Sales Invoice)
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,Birthday
Block Date,Block Date
Block Days,Block Days
Block Holidays on important days.,Block Holidays on important 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,Brand
Brand Name,Brand Name
Brand master.,Brand master.
Brands,Brands
Breakdown,Breakdown
Broadcasting,Broadcasting
Brokerage,Brokerage
Budget,Budget
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
Bundle items at time of sale.,Bundle items at time of sale.
Business Development Manager,Business Development Manager
Buyer of Goods and Services.,Buyer of Goods and Services.
Buying,Innkaup
Buying & Selling,Buying & Selling
Buying Amount,Buying Amount
Buying Settings,Buying Settings
"Buying must be checked, if Applicable For is selected as {0}","Buying must be checked, if Applicable For is selected as {0}"
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
CENVAT Capital Goods,CENVAT Capital Goods
CENVAT Edu Cess,CENVAT Edu Cess
CENVAT SHE Cess,CENVAT SHE Cess
CENVAT Service Tax,CENVAT Service Tax
CENVAT Service Tax Cess 1,CENVAT Service Tax Cess 1
CENVAT Service Tax Cess 2,CENVAT Service Tax Cess 2
Calculate Based On,Calculate Based On
Calculate Total Score,Calculate Total Score
Calendar Events,Calendar Events
Call,Call
Calls,Calls
Campaign,Campaign
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,Hætt við
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 Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved.,Cannot change Fiscal Year Start Date and Fiscal Year End Date once the Fiscal Year is saved.
"Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency.","Cannot change company's default currency, because there are existing transactions. Transactions must be cancelled to change the default currency."
Cannot convert Cost Center to ledger as it has child nodes,Cannot convert Cost Center to ledger as it has child nodes
Cannot covert to Group because Master Type or Account Type is selected.,Cannot covert to Group because Master Type or Account Type is selected.
Cannot deactive or cancle BOM as it is linked with other BOMs,Cannot deactive or cancle BOM as it is linked with other BOMs
"Cannot declare as lost, because Quotation has been made.","Cannot declare as lost, because Quotation has been made."
Cannot deduct when category is for 'Valuation' or 'Valuation and Total',Cannot deduct when category is for 'Valuation' or 'Valuation and Total'
"Cannot delete Serial No {0} in stock. First remove from stock, then delete.","Cannot delete Serial No {0} in stock. First remove from stock, then delete."
"Cannot directly set amount. For 'Actual' charge type, use the rate field","Cannot directly set amount. For 'Actual' charge type, use the rate field"
"Cannot overbill for Item {0} in row {0} more than {1}. To allow overbilling, please set in Stock Settings","Cannot overbill for Item {0} in row {0} more than {1}. To allow overbilling, please set in Stock Settings"
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,Eigið fé
Capital Equipments,Fjárfestingarvara
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,Reiðufé
Cash In Hand,Handbært fé
Cash Voucher,Færsla fyrir reiðufé
Cash or Bank Account is mandatory for making payment entry,Reiðufé eða bankareikningur er nauðsynlegur til að gera greiðslu færslu 
Cash/Bank Account,Reiðufé/Bankareikningur
Casual Leave,Óformlegt leyfi
Cell Number,Farsímanúmer
Change Abbreviation,Breyta skammstöfun
Change UOM for an Item.,Breyta mælieiningu (UOM) fyrir hlut.
Change the starting / current sequence number of an existing series.,Change the starting / current sequence number of an existing series.
Channel Partner,Samstarfsaðili
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,Gjaldfærsluhæfur
Charges are updated in Purchase Receipt against each item,Charges are updated in Purchase Receipt against each item
Charges will be distributed proportionately based on item amount,Charges will be distributed proportionately based on item amount
Charity and Donations,Góðgerðarstarfsemi og gjafir
Chart Name,Chart Name
Chart of Accounts,Bókhaldslykill
Chart of Cost Centers,Chart of Cost Centers
Check how the newsletter looks in an email by sending it to your email.,Check how the newsletter looks in an email by sending it to your email.
"Check if recurring invoice, uncheck to stop recurring or put proper End Date","Check if recurring invoice, uncheck to stop recurring or put proper End Date"
"Check if recurring order, uncheck to stop recurring or put proper End Date","Check if recurring order, 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,Hakaðu við til að virkja
Check to make Shipping Address,Check to make Shipping Address
Check to make primary address,Hakaðu við til að gera að aðal heimilisfangi
Chemical,Chemical
Cheque,Ávísun
Cheque Date,Dagsetning ávísunar
Cheque Number,Númer ávísunar
Child account exists for this account. You can not delete this account.,Child account exists for this account. Þú getur ekki eytt þessum reikning.
City,Borg
City/Town,Borg/Bær
Claim Amount,Kröfuupphæð
Claims for company expense.,Krafa fyrir kostnað.
Class / Percentage,Class / Percentage
Classic,Classic
Classification of Customers by region,Flokkun viðskiptavina eftir svæðum
Clear Table,Hreinsa töflu
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,Loka
Close Balance Sheet and book Profit or Loss.,Loka efnahagsreikningi og bóka hagnað eða tap.
Closed,Lokað
Closing (Cr),Closing (Cr)
Closing (Dr),Closing (Dr)
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
CoA Help,CoA Help
Code,Kóði
Cold Calling,Cold Calling
Color,Litur
Column Break,Dálkaskil
Column Break 1,Column Break 1
Comma separated list of email addresses,Kommu aðgreindur listi af netföngum
Comment,Athugasemd
Comments,Athugasemdir
Commercial,Commercial
Commission,Þóknun
Commission Rate,Hlutfall þóknunar
Commission Rate (%),Hlutfall þóknunar (%)
Commission on Sales,Söluþóknun
Commission rate cannot be greater than 100,Hlutfall þóknunar getur ekki orðið meira en 100
Communication,Samskipti
Communication HTML,HTML samskipti
Communication History,Samskiptasaga
Communication log.,Samskiptaferli.
Communications,Samskipti
Company,Fyrirtæki
Company (not Customer or Supplier) master.,Company (not Customer or Supplier) master.
Company Abbreviation,Skammstöfun fyrirtækis
Company Details,Fyrirtækjaupplýsingar
Company Email,Netfang fyrirtækis
"Company Email ID not found, hence mail not sent","Company Email ID not found, hence mail not sent"
Company Info,Fyrirtækjaupplýsingar
Company Name,Nafn fyrirtækis
Company Settings,Stillingar fyrirtækis
Company is missing in warehouses {0},Fyrirtæki vantar í vörugeymslu {0}
Company is required,Fyrirtæki er krafist
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,Lokið
Complete Setup,Ljúka uppsetningu
Completed,Lokið
Completed Production Orders,Framleiðslupöntunum sem er lokið
Completed Qty,Magn sem er lokið
Completion Date,Lokadagsetning
Completion Status,Completion Status
Computer,Tölva
Computers,Tölvubúnaður
Confirmation Date,Dagsetning staðfestingar
Confirmed orders from Customers.,Staðfestar pantanir frá viðskiptavinum.
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,Ráðgjafi
Consulting,Ráðgjöf
Consumable,Consumable
Consumable Cost,Consumable Cost
Consumable cost per hour,Consumable cost per hour
Consumed,Consumed
Consumed Amount,Consumed Amount
Consumed Qty,Consumed Qty
Consumer Products,Neytandavörur
Contact,Tengiliður
Contact Control,Stjórnun tengiliðar
Contact Desc,Contact Desc
Contact Details,Upplýsingar um tengilið
Contact Email,Tengiliður neffang
Contact HTML,Contact HTML
Contact Info,Upplýsingar um tengilið
Contact Mobile No,Farsímanúmer tengiliðs
Contact Name,NAfn tengiliðs
Contact No.,Nr tengiliðs.
Contact Person,Tengiliður
Contact Type,Gerð tengiliðs
Contact master.,Contact master.
Contacts,Tengiliðir
Content,Innihald
Content Type,Gerð innihalds
Contra Voucher,Samningsfærsla
Contract,Samningur
Contract End Date,Lokadagur samnings
Contract End Date must be greater than Date of Joining,Lokadagur samnings verður að vera nýrri en dagsetning skráningar
Contribution %,Framlag %
Contribution (%),Framlag (%)
Contribution Amount,Upphæð framlags
Contribution to Net Total,Framlag til samtals nettó
Conversion Factor,Umreiknistuðull
Conversion Factor is required,Umreiknistuðuls er krafist
Conversion factor cannot be in fractions,Umreiknistuðull getur ekki verið í broti
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 to Group,Convert to Group
Convert to Ledger,Convert to Ledger
Converted,Converted
Copy From Item Group,Copy From Item Group
Cosmetics,Cosmetics
Cost Center,Cost Center
Cost Center Details,Cost Center Details
Cost Center For Item with Item Code ',Cost Center For Item with Item Code '
Cost Center Name,Cost Center Name
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 Delivered Items,Cost of Delivered Items
Cost of Goods Sold,Kostnaðarverð seldra vara
Cost of Issued Items,Cost of Issued Items
Cost of Purchased Items,Cost of Purchased Items
Costing,Costing
Country,Land
Country Name,Nafn lands
Country wise default Address Templates,Sjálfgefið landstengt heimilisfangasnið
"Country, Timezone and Currency","Land, tímabelti og Gjaldmiðill"
Cr,Cr
Create Bank Voucher for the total salary paid for the above selected criteria,Stofna færslu í banka fyrir greidd heildarlaun með völdum viðmiðum að ofan
Create Customer,Stofna viðskiptavin
Create Material Requests,Create Material Requests
Create New,Create New
Create Opportunity,Create Opportunity
Create Payment Entries against Orders or Invoices.,Create Payment Entries against Orders or Invoices.
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 Send Newsletters,Create and Send Newsletters
"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,Stofnað af
Creates salary slip for above mentioned criteria.,Creates salary slip for above mentioned criteria.
Creation Date,Creation Date
Creation Document No,Creation Document No
Creation Document Type,Creation Document Type
Creation Time,Creation Time
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
Cross Listing of Item in multiple groups,Cross Listing of Item in multiple groups
Currency,Currency
Currency Exchange,Currency Exchange
Currency Name,Currency Name
Currency Settings,Currency Settings
Currency and Price List,Currency and Price List
Currency exchange rate master.,Currency exchange rate master.
Current Address,Current Address
Current Address Is,Current Address Is
Current Assets,Veltufjármunir
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,Skammtímaskuldir
Current Stock,Núverandi birgðir
Current Stock UOM,Current Stock UOM
Current Value,Current Value
Custom,Custom
Custom Autoreply Message,Custom Autoreply Message
Custom Message,Custom Message
Customer,Viðskiptavinur
Customer (Receivable) Account,Viðskiptavinur (kröfu) reikningur
Customer / Item Name,Viðskiptavinur / Nafn hlutar
Customer / Lead Address,Viðskiptavinur / Heimilisfang ábendingar
Customer / Lead Name,Viðskiptavinur / Nafn ábendingar
Customer > Customer Group > Territory,Viðskiptavinur > Viðskiptavinaflokkur > Svæði
Customer Account,Viðskiptareikningur
Customer Account Head,Customer Account Head
Customer Acquisition and Loyalty,Customer Acquisition and Loyalty
Customer Address,Customer Address
Customer Addresses And Contacts,Customer Addresses And Contacts
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 Id,Customer Id
Customer Intro,Customer Intro
Customer Issue,Customer Issue
Customer Issue against Serial No.,Customer Issue against Serial No.
Customer Name,Customer Name
Customer Naming By,Customer Naming By
Customer Service,Customer Service
Customer database.,Customer database.
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
Customers Not Buying Since Long Time ,Customers Not Buying Since Long Time 
Customerwise Discount,Customerwise Discount
Customize, Sérsníða
Customize the Notification,Sérsníða tilkynninguna
Customize the introductory text that goes as a part of that email. Each transaction has a separate introductory text.,Aðlaga inngangs texta sem fer sem hluti af tölvupóstinum. Hver viðskipti eru með sérstakan inngangs texta.
DN Detail,DN Detail
Daily,Daglega
Daily Time Log Summary,Daily Time Log Summary
Database Folder ID,Database Folder ID
Database of potential customers.,Database of potential customers.
Date,Dagsetning
Date Format,Dagsetningarsnið
Date Of Retirement,Dagsetning starfsloka
Date Of Retirement must be greater than Date of Joining,Dagsetning starfsloka verður að vera nýrri en dagsetning skráningar
Date is repeated,Dagsetningin er endurtekin
Date of Birth,Fæðingardagur
Date of Issue,Date of Issue
Date of Joining,Dagsetning skráningar
Date of Joining must be greater than Date of Birth,Dagsetning skráningar verður að vera nýrri en fæðingardagur
Date on which lorry started from supplier warehouse,Þann dag sem vöruflutningabifreið byrjaði frá vörugeymslu birgja
Date on which lorry started from your warehouse,Þann dag sem vöruflutningabifreið byrjaði frá eigin vörugeymslu
Dates,Dagsetningar
Days Since Last Order,Dagar frá síðustu pöntun
Days for which Holidays are blocked for this department.,Dagar sem frídagar eru lokaðir fyrir þessa deild.
Dealer,Söluaðili
Debit,Debet
Debit Amt,Debet upphæð
Debit Note,Debit Note
Debit To,Debet á
Debit and Credit not equal for this voucher. Difference is {0}.,Debet og kredit eru ekki jöfn fyrir þetta fylgiskjal. Mismunurinn er {0}.
Deduct,Draga frá
Deduction,Frádráttur
Deduction Type,Gerð frádráttar
Deduction1,Frádráttur1
Deductions,Frádrættir
Default,Sjálfgefið
Default Account,Sjálfgefinn reikningur
Default Address Template cannot be deleted,Sjálfgefið heimilisfangasnið er ekki hægt að eyða
Default Amount,Sjálfgefin upphæð
Default BOM,Sjálfgefinn efnislisti
Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.,Sjálfgefinn banki / Sjóðreikningur verður sjálfkrafa uppfærður í verslunarkerfi (POS) reikning þegar þessi háttur er valinn.
Default Bank Account,Sjálfgefinn bankareikningur
Default Buying Cost Center,Default Buying Cost Center
Default Buying Price List,Sjálfgefinn innkaupaverðlisti
Default Cash Account,Sjálfgefinn sjóðreikningur
Default Company,Sjálfgefið fyrirtæki
Default Cost Center,Default Cost Center
Default Currency,Sjálfgefinn gjaldmiðill
Default Customer Group,Sjálfgefinn viðskiptavinaflokkur
Default Expense Account,Sjálfgefinn kostnaðarreikningur
Default Income Account,Sjálfgefinn tekjureikningur
Default Item Group,Default Item Group
Default Price List,Sjálfgefinn verðlisti
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,Sjálfgefnar stillingar
Default Source Warehouse,Sjálfgefið uppruna vörugeymslu
Default Stock UOM,sjálfgefin birgðamælieining
Default Supplier,Sjálfgefinn birgir
Default Supplier Type,Sjálfgefin gerð birgja
Default Target Warehouse,Default Target Warehouse
Default Territory,Sjálfgefið svæði
Default Unit of Measure,Sjálfgefin mælieining
"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,Sjálfgefin verðmatsaðferð
Default Warehouse,Sjálfgefin vörugeymsla
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>","Define Budget for this Cost Center. To set budget action, see <a href=""#!List/Company"">Company Master</a>"
Del,Eyða
Delete,Eyða
Delete {0} {1}?,Eyða {0} {1}?
Delivered,Afhent
Delivered Amount,Afhent upphæð
Delivered Items To Be Billed,Afhent atriði til innheimtu
Delivered Qty,Afhent magn
Delivered Serial No {0} cannot be deleted,Afhent raðnúmer {0} ekki hægt að eyða
Delivery Date,Afhendingardagsetning
Delivery Details,Afhendingarupplýsingar
Delivery Document No,Nr afhendingarskjals
Delivery Document Type,Gerð afhendingarskjals
Delivery Note,Afhendingarseðill
Delivery Note Item,Atriði á afhendingarseðli
Delivery Note Items,Atriði á afhendingarseðli
Delivery Note Message,Skilaboð á afhendingarseðli
Delivery Note No,Númer afhendingarseðils
Delivery Note Required,Afhendingarseðils krafist
Delivery Note Trends,Afhendingarseðilsþróun
Delivery Note {0} is not submitted,Afheningarseðill {0} er ekki skilað
Delivery Note {0} must not be submitted,Afhendingarseðill {0} má ekki skila
Delivery Note/Sales Invoice,Afhedingarseðill/Sölureikningur
Delivery Notes {0} must be cancelled before cancelling this Sales Order,Afhendingarseðlar {0} verður að fella niður áður en hægt er að fella niður sölupöntunina
Delivery Status,Afhendingarstaða
Delivery Time,Afheningartími
Delivery To,Afhending til
Department,Deild
Department Stores,Stórverslanir
Depends on LWP,Depends on LWP
Depreciation,Afskriftir
Description,Lýsing
Description HTML,HTML lýsing
Description of a Job Opening,Lýsing á lausu starfi
Designation,Merking
Designer,Hönnuður
Detailed Breakup of the totals,Ítarlegar heildarniðurstöður
Details,Upplýsingar
Difference (Dr - Cr),Mismunur (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,Beinn kostnaður
Direct Income,Beinar tekjur
Disable,Gera óvirkt
Disable Rounded Total,Gera óvirkt rúnnuð alls
Disabled,Óvirkur
Discount,Afsláttur
Discount  %,Afsláttur  %
Discount %,Afsláttur %
Discount (%),Afsláttur (%)
Discount Amount,Afsláttarupphæð
"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,Afsláttarprósenta
Discount Percentage can be applied either against a Price List or for all Price List.,Afsláttarprósenta er hægt að nota annaðhvort á verðlista eða fyrir alla verðlista.
Discount must be less than 100,Afsláttur verður að vera minni en 100
Discount(%),Afsláttur(%)
Dispatch,Senda
Display all the individual items delivered with the main items,Display all the individual items delivered with the main items
Distinct unit of an Item,Distinct unit of an Item
Distribution,Dreifing
Distribution Id,Distribution Id
Distribution Name,Dreifingarnafn
Distributor,Dreifingaraðili 
Divorced,Fráskilinn
Do Not Contact,Ekki hafa samband
Do not show any symbol like $ etc next to currencies.,Ekki sýna tákn eins og $ o. s. frv. við hliðina á gjaldmiðlum.
Do really want to unstop production order: ,Do really want to unstop production order: 
Do you really want to STOP ,Viltu örugglega hætta 
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: ,Viltu hætta við framleiðslu pöntun: 
Doc Name,Nafn skjals
Doc Type,Gerð skjals
Document Description,Lýsing á skjali
Document Type,Skjalagerð
Documents,Skjöl
Domain,Domain
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,Sækja snið
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"
Dr,Dr
Draft,Draft
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,Virðisaukaskattur
ERPNext Setup,ERPNext uppsetning
Earliest,Earliest
Earnest Money,Fyrirframgreiðslur
Earning,Earning
Earning & Deduction,Earning & Deduction
Earning Type,Earning Type
Earning1,Earning1
Edit,Breyta
Edu. Cess on Excise,Edu. Cess on Excise
Edu. Cess on Service Tax,Edu. Cess on Service Tax
Edu. Cess on TDS,Edu. Cess on TDS
Education,Menntun
Educational Qualification,Menntun og hæfi
Educational Qualification Details,Menntun og hæfisupplýsingar
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,Electricity Cost
Electricity cost per hour,Electricity cost per hour
Electronics,Electronics
Email,Tölvupóstur
Email Digest,Samantekt tölvupósts
Email Digest Settings,Stillingar samantekt tölvupósts
Email Digest: ,Samantekt tölvupósts: 
Email Id,Netfang
"Email Id where a job applicant will email e.g. ""jobs@example.com""","Netfang þar sem atvinnu umsækjandi sendir tölvupóst t.d. ""jobs@example.com"""
Email Notifications,Tölvupósts tilkynningar
Email Sent?,Tölvupóstur sendur?
Email Settings for Outgoing and Incoming Emails.,Tölvupósts stillingar fyrir sendan og móttekin tölvupóst.
"Email id must be unique, already exists for {0}","Netfang verður að vera einstakt, þegar til fyrir {0}"
Email ids separated by commas.,Netföng aðskilin með kommu.
"Email settings for jobs email id ""jobs@example.com""","Email settings for jobs email id ""jobs@example.com"""
"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,Neyðartengiliður
Emergency Contact Details,Upplýsingar um neyðartengilið
Emergency Phone,Neyðarsímanúmer
Employee,Starfsmaður
Employee Birthday,Afmælisdagur starfsmanns
Employee Details,Upplýsingar um starfsmann
Employee Education,Starfsmenntun
Employee External Work History,Employee External Work History
Employee Information,Upplýsingar um starfsmann
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,Nafn starfsmanns
Employee Number,Númer starfsmanns
Employee Records to be created by,Employee Records to be created by
Employee Settings,Stillingar starfsmanns
Employee Type,Gerð starfsmanns
Employee can not be changed,Ekki hægt að breyta starfsmanni
"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.,Stafsmannafærslur.
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,Enabled
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 date of current order's period,End date of current order's period
End of Life,End of Life
Energy,Energy
Engineer,Engineer
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 email id separated by commas, order will be mailed automatically on particular date","Enter email id separated by commas, order 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,Risna
Entries,Entries
Entries against ,Entries against 
Entries are not allowed against this Fiscal Year if the year is closed.,Entries are not allowed against this Fiscal Year if the year is closed.
Equity,Eigið fé
Error: {0} > {1},Error: {0} > {1}
Estimated Material Cost,Estimated Material Cost
"Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:","Even if there are multiple Pricing Rules with highest priority, then following internal priorities are applied:"
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 Duty 10,Excise Duty 10
Excise Duty 14,Excise Duty 14
Excise Duty 4,Excise Duty 4
Excise Duty 8,Excise Duty 8
Excise Duty @ 10,Excise Duty @ 10
Excise Duty @ 14,Excise Duty @ 14
Excise Duty @ 4,Excise Duty @ 4
Excise Duty @ 8,Excise Duty @ 8
Excise Duty Edu Cess 2,Excise Duty Edu Cess 2
Excise Duty SHE Cess 1,Excise Duty SHE Cess 1
Excise Page Number,Excise Page Number
Excise Voucher,Excise Voucher
Execution,Execution
Executive Search,Executive Search
Exhibition,Exhibition
Existing Customer,Existing Customer
Exit,Exit
Exit Interview Details,Exit Interview Details
Expected,Expected
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
Expected balance as per bank,Expected balance as per bank
Expense,Kostnaður
Expense / Difference account ({0}) must be a 'Profit or Loss' account,Expense / Difference account ({0}) must be a 'Profit or Loss' account
Expense Account,Expense Account
Expense Account is mandatory,Expense Account is mandatory
Expense Approver,Expense Approver
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,Rekstrargjöld
Expenses Booked,Bókfærð rekstrargjöld
Expenses Included In Valuation,Kostnaður við birgðamat
Expenses booked for the digest period,Expenses booked for the digest period
Expired,Expired
Expiry,Expiry
Expiry Date,Expiry Date
Exports,Exports
External,External
Extract Emails,Extract Emails
FCFS Rate,FCFS Rate
Failed: ,Failed: 
Family Background,Family Background
Fax,Fax
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,Fjárhagsgreiningar
Financial Chart of Accounts. Imported from file.,Financial Chart of Accounts. Imported from file.
Financial Services,Financial Services
Financial Year End Date,Financial Year End Date
Financial Year Start Date,Financial Year Start Date
Finished Goods,Fullunnar vörur
First Name,First Name
First Responded On,First Responded On
Fiscal Year,Fiscal Year
Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0},Fiscal Year Start Date and Fiscal Year End Date are already set in Fiscal Year {0}
Fiscal Year Start Date and Fiscal Year End Date cannot be more than a year apart.,Fiscal Year Start Date and Fiscal Year End Date cannot be more than a year apart.
Fiscal Year Start Date should not be greater than Fiscal Year End Date,Fiscal Year Start Date should not be greater than Fiscal Year End Date
Fiscal Year {0} not found.,Fiscal Year {0} not found.
Fixed Asset,Fastafjármunir
Fixed Assets,Fastafjármunir
Fixed Cycle Cost,Fixed Cycle Cost
Fold,Fold
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,Food
"Food, Beverage & Tobacco","Food, Beverage & Tobacco"
"For 'Sales BOM' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Sales BOM' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table.","For 'Sales BOM' items, Warehouse, Serial No and Batch No will be considered from the 'Packing List' table. If Warehouse and Batch No are same for all packing items for any 'Sales BOM' item, those values can be entered in the main Item table, values will be copied to 'Packing List' table."
For Company,For Company
For Employee,For Employee
For Employee Name,For Employee Name
For Price List,For Price List
For Production,For Production
For Reference Only.,For Reference Only.
For Sales Invoice,For Sales Invoice
For Server Side Print Formats,For Server Side Print Formats
For Supplier,For Supplier
For Warehouse,For Warehouse
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 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"
"For {0}, only credit entries can be linked against another debit entry","For {0}, only credit entries can be linked against another debit entry"
"For {0}, only debit entries can be linked against another credit entry","For {0}, only debit entries can be linked against another credit entry"
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,Burðargjöld
Friday,Föstudagur
From,Frá
From Bill of Materials,From Bill of Materials
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,Upphafsdagur
From Date cannot be greater than To Date,Upphfsdagur verður að vera nýrri en lokadagur
From Date must be before To Date,From Date must be before To Date
From Date should be within the Fiscal Year. Assuming From Date = {0},From Date should be within the Fiscal Year. Assuming From Date = {0}
From Datetime,From Datetime
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 Billed,Fully Billed
Fully Completed,Fully Completed
Fully Delivered,Fully Delivered
Furniture and Fixture,Skrifstofuáhöld
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,Aðalbók
General Settings,General Settings
Generate Description HTML,Generate Description 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
"Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight.","Generate packing slips for packages to be delivered. Used to notify package number, package contents and its weight."
Generates HTML to include selected image in the description,Generates HTML to include selected image in the description
Get Advances Paid,Get Advances Paid
Get Advances Received,Get Advances Received
Get Current Stock,Get Current Stock
Get Items,Get Items
Get Items From Purchase Receipts,Get Items From Purchase Receipts
Get Items From Sales Orders,Get Items From Sales Orders
Get Items from BOM,Get Items from BOM
Get Last Purchase Rate,Get Last Purchase Rate
Get Outstanding Invoices,Get Outstanding Invoices
Get Outstanding Vouchers,Get Outstanding Vouchers
Get Relevant Entries,Get Relevant Entries
Get Sales Orders,Get Sales Orders
Get Specification Details,Get Specification Details
Get Stock and Rate,Get Stock and Rate
Get Template,Get Template
Get Terms and Conditions,Get Terms and Conditions
Get Unreconciled Entries,Get Unreconciled Entries
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,Altækar stillingar
"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.,Goods received from Suppliers.
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,Heildarhagnaður
Gross Profit %,Heildarhagnaður %
Gross Profit (%),Heildarhagnaður % (%)
Gross Weight,Heildarþyngd
Gross Weight UOM,Heildarþyngd mælieiningar (UOM)
Group,Group
Group Node,Group Node
Group by Account,Flokka eftir reikningi
Group by Voucher,Flokka eftir fylgiskjali
Group or Ledger,Group or Ledger
Groups,Groups
Guest,Guest
HR Manager,HR Manager
HR Settings,HR Settings
HR User,HR User
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,Has Batch No
Has Child Node,Has Child Node
Has Serial No,Has Serial No
Head of Marketing and Sales,Head of Marketing and Sales
Header,Header
Heads (or groups) against which Accounting Entries are made and balances are maintained.,Heads (or groups) against which Accounting Entries are made and balances are maintained.
Health Care,Health Care
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,High
History In Company,History In Company
Hold,Hold
Holiday,Frí
Holiday List,Listi yfir frí
Holiday List Name,Nafn á lista yfir frí
Holiday master.,Holiday master.
Holidays,Frídagar
Home,Heim
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,Klukkustund
Hour Rate,Tímagjald
Hour Rate Labour,Tímagjald vinna
Hours,Klukkustundir
How Pricing Rule is applied?,How Pricing Rule is applied?
How frequently?,Hversu oft?
"How should this currency be formatted? If not set, will use system defaults","Hvernig ætti þessi gjaldmiðill að vera sniðinn? Ef ekki sett, mun nota sjálfgefna kerfisstillingu"
Human Resources,Mannauður
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 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 multiple Pricing Rules continue to prevail, users are asked to set Priority manually to resolve conflict.","If multiple Pricing Rules continue to prevail, users are asked to set Priority manually to resolve conflict."
"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 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 selected Pricing Rule is made for 'Price', it will overwrite Price List. Pricing Rule price is the final price, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field.","If selected Pricing Rule is made for 'Price', it will overwrite Price List. Pricing Rule price is the final price, so no further discount should be applied. Hence, in transactions like Sales Order, Purchase Order etc, it will be fetched in 'Rate' field, rather than 'Price List Rate' field."
"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 two or more Pricing Rules are found based on the above conditions, Priority is applied. Priority is a number between 0 to 20 while default value is zero (blank). Higher number means it will take precedence if there are multiple Pricing Rules with same conditions.","If two or more Pricing Rules are found based on the above conditions, Priority is applied. Priority is a number between 0 to 20 while default value is zero (blank). Higher number means it will take precedence if there are multiple Pricing Rules with same conditions."
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
Ignore Pricing Rule,Ignore Pricing Rule
Ignored: ,Ignored: 
Image,Image
Image View,Image View
Implementation Partner,Implementation Partner
Import Attendance,Import Attendance
Import Failed!,Innsetning mistókst!
Import Log,Import Log
Import Successful!,Innsetning tókst!
Imports,Imports
In Hours,In Hours
In Process,In Process
In Qty,In Qty
In Stock,In Stock
In Words,In Words
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,Tekjur
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 number of General Ledger Entries found. You might have selected a wrong Account in the transaction.,Incorrect number of General Ledger Entries found. You might have selected a wrong Account in the transaction.
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 (Only Draft),Indicates that the package is a part of this delivery (Only Draft)
Indirect Expenses,Annar rekstrarkostnaður
Indirect Income,Aðrar tekjur
Individual,Individual
Industry,Industry
Industry Type,Industry Type
Inspected By,Inspected By
Inspection Criteria,Inspection Criteria
Inspection Required,Inspection Required
Inspection Type,Inspection Type
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,Instructions
Interested,Interested
Intern,Intern
Internal,Internal
Internet Publishing,Internet Publishing
Introduction,Introduction
Invalid Barcode,Invalid Barcode
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,Inventory
Inventory & Support,Inventory & Support
Investment Banking,Investment Banking
Investments,Fjárfestingar
Invoice,Reikningur
Invoice Date,Dagsetning reiknings
Invoice Details,Reikningsupplýsingar
Invoice No,Reikningsnúmer
Invoice Number,Reikningsnúmer
Invoice Type,Reikningsgerð
Invoice/Journal Voucher Details,Invoice/Journal Voucher Details
Invoiced Amount,Reikningsupphæð
Invoiced Amount (Exculsive Tax),Reikningsfærð upphæð (án skatts)
Is Active,Er virkur
Is Advance,Is Advance
Is Cancelled,Er frestað
Is Carry Forward,Is Carry Forward
Is Default,Er sjálfgefið
Is Encash,Is Encash
Is Fixed Asset Item,Er fastafjármuna hlutur
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,Is Purchase Item
Is Recurring,Is Recurring
Is Sales Item,Is Sales Item
Is Service Item,Is Service Item
Is Stock Item,Is Stock Item
Is Sub Contracted Item,Is Sub Contracted Item
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,Item
Item #{0}: Ordered qty can not less than item's minimum order qty (defined in item master).,Item #{0}: Ordered qty can not less than item's minimum order qty (defined in item master).
Item Advanced,Item Advanced
Item Barcode,Item Barcode
Item Batch Nos,Item Batch Nos
Item Classification,Item Classification
Item Code,Item Code
Item Code > Item Group > Brand,Item Code > Item Group > Brand
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,Item Description
Item Desription,Item Desription
Item Details,Item Details
Item Group,Item Group
Item Group Name,Item Group Name
Item Group Tree,Item Group Tree
Item Group not mentioned in item master for item {0},Item Group not mentioned in item master for item {0}
Item Groups in Details,Item Groups in Details
Item Image (if not slideshow),Item Image (if not slideshow)
Item Name,Item Name
Item Naming By,Item Naming By
Item Price,Item Price
Item Prices,Item Prices
Item Quality Inspection Parameter,Item Quality Inspection Parameter
Item Reorder,Item Reorder
Item Row {0}: Purchase Receipt {1} does not exist in above 'Purchase Receipts' table,Item Row {0}: Purchase Receipt {1} does not exist in above 'Purchase Receipts' table
Item Serial No,Item Serial No
Item Serial Nos,Item Serial Nos
Item Shortage Report,Item Shortage Report
Item Supplier,Item Supplier
Item Supplier Details,Item Supplier Details
Item Tax,Item Tax
Item Tax Amount,Item Tax Amount
Item Tax Rate,Item Tax Rate
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,Item To Manufacture
Item UOM,Item UOM
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 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 must be added using 'Get Items from Purchase Receipts' button,Item must be added using 'Get Items from Purchase Receipts' button
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,Item to be manufactured or repacked
Item valuation rate is recalculated considering landed cost voucher amount,Item valuation rate is recalculated considering landed cost voucher amount
Item valuation updated,Item valuation updated
Item will be saved by this name in the data base.,Item will be saved by this name in the data base.
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,Items
Items To Be Requested,Items To Be Requested
Items required,Items required
"Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty","Items to be requested which are ""Out of Stock"" considering all warehouses based on projected qty and minimum order qty"
Items which do not exist in Item master can also be entered on customer's request,Items which do not exist in Item master can also be entered on customer's request
Itemwise Discount,Itemwise Discount
Itemwise Recommended Reorder Level,Itemwise Recommended Reorder Level
Job Applicant,Job Applicant
Job Opening,Job Opening
Job Profile,Job Profile
Job Title,Job Title
"Job profile, qualifications required etc.","Job profile, qualifications required etc."
Jobs Email Settings,Jobs Email Settings
Journal Entries,Journal Entries
Journal Entry,Journal Entry
Journal Voucher,Journal Voucher
Journal Voucher Detail,Journal Voucher Detail
Journal Voucher Detail No,Journal Voucher Detail No
Journal Voucher {0} does not have account {1} or already matched against other voucher,Journal Voucher {0} does not have account {1} or already matched against other voucher
"Journal Voucher {0} is linked against Order {1}, hence it must be fetched as advance in Invoice as well.","Journal Voucher {0} is linked against Order {1}, hence it must be fetched as advance in Invoice as well."
Journal Vouchers {0} are un-linked,Journal Vouchers {0} are un-linked
"Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. ","Keep Track of Sales Campaigns. Keep track of Leads, Quotations, Sales Order etc from Campaigns to gauge Return on Investment. "
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,LR No
Label,Label
Landed Cost Help,Landed Cost Help
Landed Cost Item,Landed Cost Item
Landed Cost Purchase Receipt,Landed Cost Purchase Receipt
Landed Cost Taxes and Charges,Landed Cost Taxes and Charges
Landed Cost Voucher,Landed Cost Voucher
Landed Cost Voucher Amount,Landed Cost Voucher Amount
Language,Language
Last Name,Eftirnafn
Last Order Amount,Last Order Amount
Last Purchase Rate,Last Purchase Rate
Last Sales Order Date,Last Sales Order Date
Latest,Latest
Lead,Ábending
Lead Details,Upplýsingar um ábendingu
Lead Id,Kenni ábendingar
Lead Name,Nafn ábendingar
Lead Owner,Eigandi ábendingar
Lead Source,Heimild ábendingarinnar
Lead Status,Staða ábendingarinnar
Lead Time Date,Afgreiðslutími dagsetning
Lead Time Days,Afgreiðslutími dagar
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.,Afgreiðslutími dagar er fjöldi daga þangað til þessi hlutur er væntalegur í vöruhúsið. This days is fetched in Material Request when you select this item.
Lead Type,Gerð ábendingar
Lead must be set if Opportunity is made from Lead,Ábending verður að vera stillt ef tækifæri er stofnað frá ábeningu
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,Vinstri
Legal,Legal
Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.,Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.
Legal Expenses,Lögfræðikostnaður
Letter Head,Bréfshaus
Letter Heads for print templates.,Bréfshaus fyrir sniðmát prentunar.
Level,Stig
Lft,Lft
Liability,Skuld
Link,Tengill
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 of users who can edit a particular Note,List of users who can edit a particular Note
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...,Hleð inn...
Loans (Liabilities),Lán (skuldir)
Loans and Advances (Assets),Fyrirframgreiðslur
Local,Local
"Log of Activities performed by users against Tasks that can be used for tracking time, billing.","Log of Activities performed by users against Tasks that can be used for tracking time, billing."
Login,Innskrá
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,Lágt
Lower Income,Lower Income
MTN Details,MTN Details
Main,Main
Main Reports,Helstu skýrslur
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,Viðhald
Maintenance Date,Viðhalds dagsetning
Maintenance Details,Viðhaldsupplýsingar
Maintenance Manager,Viðhaldsstjóri
Maintenance Schedule,Viðhaldsáætlun
Maintenance Schedule Detail,Upplýsingar um viðhaldsáætlun
Maintenance Schedule Item,Atriði viðhaldsáætlunar
Maintenance Schedule is not generated for all the items. Please click on 'Generate Schedule',Viðhaldsáætlunin er ekki búin til fyrir öll atriðin. Vinsamlegast smelltu á 'Búa til áætlun'
Maintenance Schedule {0} exists against {0},Viðhaldsáætlun {0} er til staðar gegn {0}
Maintenance Schedule {0} must be cancelled before cancelling this Sales Order,Viðhaldsáætlun {0} verður að fella niður áður en hægt er að fella niður sölupöntunina
Maintenance Schedules,Viðhaldsáætlanir
Maintenance Status,Viðhaldsstaða
Maintenance Time,Viðhaldstími
Maintenance Type,Viðhaldsgerð
Maintenance User,Viðhalds notandi
Maintenance Visit,Viðhalds heimsókn
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 ,Búa til 
Make Accounting Entry For Every Stock Movement,Make Accounting Entry For Every Stock Movement
Make Bank Voucher,Make Bank Voucher
Make Credit Note,Make Credit Note
Make Debit Note,Make Debit Note
Make Delivery,Make Delivery
Make Difference Entry,Make Difference Entry
Make Excise Invoice,Make Excise Invoice
Make Installation Note,Make Installation Note
Make Invoice,Make Invoice
Make Journal Voucher,Make Journal Voucher
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,Make Payment
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
Make Time Log Batch,Make Time Log Batch
Make new POS Setting,Make new POS Setting
Male,Karl
Manage Customer Group Tree.,Manage Customer Group Tree.
Manage Sales Partners.,Manage Sales Partners.
Manage Sales Person Tree.,Manage Sales Person Tree.
Manage Territory Tree.,Manage Territory Tree.
Manage cost of operations,Manage cost of operations
Management,Management
Manager,Manager
"Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order.","Mandatory if Stock Item is ""Yes"". Also the default warehouse where reserved quantity is set from Sales Order."
Manufacture,Manufacture
Manufacture against Sales Order,Manufacture against Sales Order
Manufactured Item,Manufactured Item
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,Manufacturer
Manufacturer Part Number,Manufacturer Part Number
Manufacturing,Framleiðsla
Manufacturing Manager,Manufacturing Manager
Manufacturing Quantity,Manufacturing Quantity
Manufacturing Quantity is mandatory,Manufacturing Quantity is mandatory
Manufacturing User,Manufacturing User
Margin,Margin
Marital Status,Marital Status
Market Segment,Market Segment
Marketing,Marketing
Marketing Expenses,Markaðskostnaður
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,Material Issue
Material Manager,Material Manager
Material Master Manager,Material Master Manager
Material Receipt,Material Receipt
Material Request,Material Request
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,Material Request Type
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,Material Transfer
Material User,Material User
Materials,Materials
Materials Required (Exploded),Materials Required (Exploded)
Max 5 characters,Max 5 characters
Max Days Leave Allowed,Max Days Leave Allowed
Max Discount (%),Max Discount (%)
Max Qty,Max Qty
Max discount allowed for item: {0} is {1}%,Max discount allowed for item: {0} is {1}%
Maximum Amount,Maximum Amount
Maximum {0} rows allowed,Maximum {0} rows allowed
Maxiumm discount for Item {0} is {1}%,Maxiumm discount for Item {0} is {1}%
Medical,Medical
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,Skilaboð
Message Parameter,Færibreyta skilaboða
Message Sent,Skilaboð send
Message updated,Skilaboð uppfærð
Messages,Skilaboð
Messages greater than 160 characters will be split into multiple messages,Skilaboðum með meira en 160 stöfum verður skipt upp í mörg skilaboð
Middle Income,Millitekjur
Milestone,Áfangi
Milestone Date,Dagsetning áfanga
Milestones,Áfangar
Milestones will be added as Events in the Calendar,Áföngum verður bætt við atburði í dagatalinu
Min Order Qty,Lágmarks magn pöntunar
Min Qty,Lágmarks magn
Min Qty can not be greater than Max Qty,Lágmarks magn getur ekki verið meira en hámarks magn
Minimum Amount,Lágmarksfjárhæð
Minimum Inventory Level,Lágmarks birgðastaða
Minimum Order Qty,Lágmarks magn pöntunar
Minute,Mínúta
Misc Details,Ýmsar upplýsingar
Miscellaneous Expenses,Ýmis gjöld
Miscelleneous,Ýmislegt
Mobile No,Farsímanúmer
Mobile No.,Farsímanúmer.
Mode of Payment,Greiðsluháttur
Modern,Nýtískulegur
Monday,Mánudagur
Month,Mánuður
Monthly,Mánaðarlega
Monthly Attendance Sheet,Mánaðarlegt mætingarblað
Monthly Earning & Deduction,Mánaðarlegar tekjur & frádráttur
Monthly Salary Register,Mánaðarleg launaskrá
Monthly salary statement.,Mánaðarlegt launayfirlit.
More Details,Nánari upplýsingar
More Info,Nánari upplýsingar
Motion Picture & Video,Kvikmynd & myndband
Moving Average,Hlaupandi meðaltal
Moving Average Rate,Hraði hlaupandi meðaltals
Mr,Mr
Ms,Ms
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. Verð reglur: {0}"
Music,Tónlist
Must be Whole Number,Verður að vera heil tala
Name,Nafn
Name and Description,Nafn og lýsing
Name and Employee ID,Nafn og starfsmanna kenni
"Name of new Account. Note: Please don't create accounts for Customers and Suppliers, they are created automatically from the Customer and Supplier master","Nafn á nýja reikningnum. 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,Neikvætt magn er ekki leyft
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 Profit / Loss,Net Profit / Loss
Net Total,Net Total
Net Total (Company Currency),Net Total (Company Currency)
Net Weight,Nettó þyngd
Net Weight UOM,Net Weight UOM
Net Weight of each Item,Net Weight of each Item
Net pay cannot be negative,Net pay cannot be negative
Never,Aldrei
New Account,Nýr reikningur
New Account Name,Nýtt reikningsnafn
New BOM,New BOM
New Communications,Ný samskipti
New Company,Nýtt fyrirtæki
New Cost Center,New Cost Center
New Cost Center Name,New Cost Center Name
New Customer Revenue,New Customer Revenue
New Customers,New Customers
New Delivery Notes,New Delivery Notes
New Enquiries,Nýjar fyrirspurnir
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,Ný verkefni
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
New {0},New {0}
New {0} Name,New {0} Name
New {0}: #{1},New {0}: #{1}
Newsletter,Fréttabréf
Newsletter Content,Innihald fréttabréfs
Newsletter Status,Staða fréttabréfs
Newsletter has already been sent,Fréttabréf hefur þegar verið sent
"Newsletters to contacts, leads.","Newsletters to contacts, leads."
Newspaper Publishers,Útgefendur dagblaðs
Next,Næst
Next Contact By,Next Contact By
Next Contact Date,Næsti dagur til að hafa samband
Next Date,Næsti dagur
Next Recurring {0} will be created on {1},Next Recurring {0} will be created on {1}
Next email will be sent on:,Næsti tölvupóstur verður sendur á:
No,Nei
No Customer Accounts found.,Engir reikningar fyrir viðskiptavin fundust.
No Customer or Supplier Accounts found,Engir reikningar fyrir viðskiptavin eða birgja fundust
No Data,Engin gögn
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 Permission,No Permission
No Production Orders created,No Production Orders created
No Remarks,Engar athugasemdir
No Supplier Accounts found. Supplier Accounts are identified based on 'Master Type' value in account record.,Engir reikningar fyrir birgja fundust. Supplier Accounts are identified based on 'Master Type' value in account record.
No Updates For,Engar uppfærslur fyrir
No accounting entries for the following warehouses,Engar bókhaldsfærslur fyrir eftirfarandi vöruhús
No addresses created,Engin heimilisföng stofnuð
No contacts created,Engir tengiliðir stofnaðir
No default Address Template found. Please create a new one from Setup > Printing and Branding > Address Template.,No default Address Template found. Please create a new one from Setup > Printing and Branding > Address Template.
No default BOM exists for Item {0},No default BOM exists for Item {0}
No description given,Engin lýsing gefin
No employee found,Enginn starfsmaður fannst
No employee found!,Enginn starfsmaður fannst!
No of Requested SMS,Fjöldi umbeðinna smáskilaboða (SMS)
No of Sent SMS,Fjöldi sendra smáskilaboða ( SMS)
No of Visits,Fjöldi heimsókna
No permission,Engin réttindi
No permission to use Payment Tool,Engin heimild til að nota greiðslu tól
No record found,Ekkert fannst
No records found in the Invoice table,No records found in the Invoice table
No records found in the Payment table,No records found in the Payment table
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,Not Available
Not Billed,Not Billed
Not Delivered,Not Delivered
Not In Stock,Not In Stock
Not Sent,Not Sent
Not Set,Not Set
Not allowed to update stock transactions older than {0},Not allowed to update stock transactions 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 is a free page where users can share documents / notes,Note is a free page where users can share documents / notes
"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: If payment is not made against any reference, make Journal Voucher manually.","Note: If payment is not made against any reference, make Journal Voucher manually."
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: Reference Date {0} is after invoice due date {1},Note: Reference Date {0} is after invoice due date {1}
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,Skýringar
Notes:,Skýringar:
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
Number of Order,Number of Order
Offer Date,Offer Date
Office,Office
Office Equipments,Skrifstofuáhöld og tæki
Office Maintenance Expenses,Viðhald húsnæðis
Office Rent,Húsaleiga
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.","Only Serial Nos with status ""Available"" can be delivered."
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,Open
Open Production Orders,Open Production Orders
Open Tickets,Open Tickets
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 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,Operations
Opportunity,Opportunity
Opportunity Date,Opportunity Date
Opportunity From,Opportunity From
Opportunity Item,Opportunity Item
Opportunity Items,Opportunity Items
Opportunity Lost,Opportunity Lost
Opportunity Type,Opportunity Type
Optional. This setting will be used to filter in various transactions.,Optional. This setting will be used to filter in various transactions.
Order Type,Order Type
Order Type must be one of {0},Order Type must be one of {0}
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.,Orders released for production.
Organization Name,Organization Name
Organization Profile,Organization Profile
Organization branch master.,Organization branch master.
Organization unit (department) master.,Organization unit (department) master.
Other,Other
Other Details,Other Details
Others,Others
Out Qty,Out Qty
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})
Overdue,Overdue
Overdue: ,Overdue: 
Overhead,Overhead
Overheads,Overheads
Overlapping conditions found between:,Overlapping conditions found between:
Overview,Overview
Owned,Owned
Owner,Owner
P L A - Cess Portion,P L A - Cess Portion
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,Verslunarkerfi
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
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,Paid
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,Pair
Parameter,Parameter
Parent Account,Parent Account
Parent Cost Center,Parent Cost Center
Parent Customer Group,Parent Customer Group
Parent Detail docname,Parent Detail docname
Parent Item,Parent Item
Parent Item Group,Parent Item Group
Parent Item {0} must be not Stock Item and must be a Sales Item,Parent Item {0} must be not Stock Item and must be a Sales Item
Parent Party Type,Parent Party Type
Parent Sales Person,Parent Sales Person
Parent Territory,Parent Territory
Parent Website Route,Parent Website Route
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,Party
Party Account,Party Account
Party Details,Party Details
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 Account,Payment Account
Payment Amount,Payment Amount
Payment Days,Payment Days
Payment Due Date,Payment Due Date
Payment Mode,Payment Mode
Payment Pending,Payment Pending
Payment Period Based On Invoice Date,Payment Period Based On Invoice Date
Payment Received,Payment Received
Payment Reconciliation,Payment Reconciliation
Payment Reconciliation Invoice,Payment Reconciliation Invoice
Payment Reconciliation Invoices,Payment Reconciliation Invoices
Payment Reconciliation Payment,Payment Reconciliation Payment
Payment Reconciliation Payments,Payment Reconciliation Payments
Payment Tool,Payment Tool
Payment Tool Detail,Payment Tool Detail
Payment Tool Details,Payment Tool Details
Payment Type,Payment Type
Payment against {0} {1} cannot be greater \					than Outstanding Amount {2},Payment against {0} {1} cannot be greater \					than Outstanding Amount {2}
Payment cannot be made for empty cart,Payment cannot be made for empty cart
Payment of salary for the month {0} and year {1},Payment of salary for the month {0} and year {1}
Payments,Payments
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
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.,Percentage variation in quantity to be allowed while receiving or delivering this item.
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,Period
Period Closing Entry,Period Closing Entry
Period Closing Voucher,Period Closing Voucher
Period From and Period To dates mandatory for recurring %s,Period From and Period To dates mandatory for recurring %s
Periodicity,Periodicity
Permanent Address,Permanent Address
Permanent Address Is,Permanent Address Is
Permission,Permission
Personal,Personal
Personal Details,Personal Details
Personal Email,Personal Email
Pharmaceutical,Pharmaceutical
Pharmaceuticals,Pharmaceuticals
Phone,Sími
Phone No,Phone No
Piecework,Piecework
Pincode,Pinn
Place of Issue,Place of Issue
Plan for maintenance visits.,Plan for maintenance visits.
Planned Qty,Planned Qty
"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,Planned Quantity
Planning,Planning
Plant,Plant
Plant and Machinery,"Vélar, áhöld og tæki"
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 Update SMS Settings,Please Update SMS Settings
Please add expense voucher details,Please add expense voucher details
Please add to Modes of Payment from Setup.,Please add to Modes of Payment from Setup.
Please click on 'Generate Schedule',Vinsamlegast smelltu á 'Búa til áætlun'
Please click on 'Generate Schedule' to fetch Serial No added for Item {0},Please click on 'Generate Schedule' to fetch Serial No added for Item {0}
Please click on 'Generate Schedule' to get schedule,Please click on 'Generate Schedule' to get schedule
Please create Customer from Lead {0},Please create Customer from Lead {0}
Please create Salary Structure for employee {0},Please create Salary Structure for employee {0}
Please create new account from Chart of Accounts.,Please create new account from Chart of Accounts.
Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.,Please do NOT create Account (Ledgers) for Customers and Suppliers. They are created directly from the Customer / Supplier masters.
Please enter 'Expected Delivery Date',Please enter 'Expected Delivery Date'
Please enter 'Is Subcontracted' as Yes or No,Please enter 'Is Subcontracted' as Yes or No
Please enter 'Repeat on Day of Month' field value,Please enter 'Repeat on Day of Month' field value
Please enter Account Receivable/Payable group in company master,Please enter Account Receivable/Payable group in company master
Please enter Approving Role or Approving User,Please enter Approving Role or Approving User
Please enter BOM for Item {0} at row {1},Please enter BOM for Item {0} at row {1}
Please enter Company,Please enter Company
Please enter Cost Center,Please enter Cost Center
Please enter Delivery Note No or Sales Invoice No to proceed,Please enter Delivery Note No or Sales Invoice No to proceed
Please enter Employee Id of this sales parson,Please enter Employee Id of this sales parson
Please enter Expense Account,Please enter Expense Account
Please enter Item Code to get batch no,Please enter Item Code to get batch no
Please enter Item Code.,Please enter Item Code.
Please enter Item first,Please enter Item first
Please enter Maintaince Details first,Please enter Maintaince Details first
Please enter Master Name once the account is created.,Please enter Master Name once the account is created.
Please enter Payment Amount in atleast one row,Please enter Payment Amount in atleast one row
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 Purchase Receipt first,Please enter Purchase Receipt first
Please enter Purchase Receipts,Please enter Purchase Receipts
Please enter Reference date,Please enter Reference date
Please enter Taxes and Charges,Please enter Taxes and Charges
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 {0},Please enter parent account group for warehouse {0}
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 the Against Vouchers manually,Please enter the Against Vouchers manually
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 find attached {0} #{1},Please find attached {0} #{1}
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 remove this Invoice {0} from C-Form {1},Please remove this Invoice {0} from C-Form {1}
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 see attachment,Please see attachment
"Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row","Please select Allocated Amount, Invoice Type and Invoice Number in atleast one row"
Please select Bank Account,Please select Bank Account
Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year,Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year
Please select Category first,Please select Category first
Please select Charge Type first,Please select Charge Type first
Please select Fiscal Year,Please select Fiscal Year
Please select Group or Ledger value,Please select Group or Ledger value
Please select Incharge Person's name,Please select Incharge Person's name
"Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM","Please select Item where ""Is Stock Item"" is ""No"" and ""Is Sales Item"" is ""Yes"" and there is no other Sales BOM"
Please select Price List,Please select Price List
Please select Start Date and End Date for Item {0},Please select Start Date and End Date for Item {0}
Please select Time Logs.,Please select Time Logs.
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 charge type first
Please select company first,Please select company 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 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 User ID field in an Employee record to set Employee Role,Please set User ID field in an Employee record to set Employee Role
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 POS Preferences,Please setup your POS Preferences
Please setup your chart of accounts before you start Accounting Entries,Vinsamlegast settu upp bókhaldslykilinn áður en þú byrjar að færa bókhaldið
Please specify,Vinsamlegast tilgreindu
Please specify Company,Vinsamlegast tilgreindu fyrirtæki
Please specify Company to proceed,Vinsamlegast tilgreindu fyrirtæki til að halda áfram
Please specify Default Currency in Company Master and Global Defaults,Please specify Default Currency in Company Master and Global Defaults
Please specify a,Vinsamlegast tilgreindu
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
Point of Sale,Point of Sale
Point-of-Sale Setting,Point-of-Sale Setting
Post Graduate,Post Graduate
Postal,Postal
Postal Expenses,Burðargjöld
Posting Date,Bókunardagsetning
Posting Time,Bókunartími
Posting date and posting time is mandatory,Bókunardagsetning og tími er skylda
Posting timestamp must be after {0},Tímastimpill bókunar verður að vera eftir {0}
Potential Sales Deal,Potential Sales Deal
Potential opportunities for selling.,Potential opportunities for selling.
Preferred Billing Address,Preferred Billing Address
Preferred Shipping Address,Preferred Shipping Address
Prefix,Prefix
Present,Present
Prevdoc DocType,Prevdoc DocType
Prevdoc Doctype,Prevdoc Doctype
Preview,Preview
Previous,Previous
Previous Work Experience,Previous Work Experience
Price,Price
Price / Discount,Price / Discount
Price List,Price List
Price List Currency,Price List Currency
Price List Currency not selected,Price List Currency not selected
Price List Exchange Rate,Price List Exchange Rate
Price List Master,Price List Master
Price List Name,Price List Name
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 Help,Pricing Rule Help
"Pricing Rule is first selected based on 'Apply On' field, which can be Item, Item Group or Brand.","Pricing Rule is first selected based on 'Apply On' field, which can be Item, Item Group or Brand."
"Pricing Rule is made to overwrite Price List / define discount percentage, based on some criteria.","Pricing Rule is made to overwrite Price List / define discount percentage, based on some criteria."
Pricing Rules are further filtered based on quantity.,Pricing Rules are further filtered based on quantity.
Print Format Style,Print Format Style
Print Heading,Print Heading
Print Without Amount,Print Without Amount
Print and Stationary,Prentun og pappír
Printing and Branding,Prentun og vörumerki
Priority,Forgangur
Private,Einka
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,Production
Production Order,Production Order
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
Production order number is mandatory for stock entry purpose manufacture,Production order number is mandatory for stock entry purpose manufacture
Products,Products
"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."
Professional Tax,Professional Tax
Profit and Loss,Rekstur
Profit and Loss Statement,Rekstrarreikningur
Project,Project
Project Costing,Project Costing
Project Details,Project Details
Project Id,Project Id
Project Manager,Project Manager
Project Milestone,Project Milestone
Project Milestones,Project Milestones
Project Name,Project Name
Project Start Date,Project Start Date
Project Status,Project Status
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 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,Projected Qty
Projects,Verkefni
Projects & System,Projects & System
Projects Manager,Projects Manager
Projects User,Projects User
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
Provisional Profit / Loss (Credit),Provisional Profit / Loss (Credit)
Public,Public
Published on website at: {0},Published on website at: {0}
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,Purchase
Purchase / Manufacture Details,Purchase / Manufacture Details
Purchase Analytics,Purchase Analytics
Purchase Common,Purchase Common
Purchase Details,Purchase Details
Purchase Discounts,Purchase Discounts
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 Item,Purchase Item
Purchase Manager,Purchase Manager
Purchase Master Manager,Purchase Master Manager
Purchase Order,Innkaupapöntun
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 Price List,Purchase Price List
Purchase Receipt,Purchase Receipt
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,Purchase Receipt No
Purchase Receipt Required,Purchase Receipt Required
Purchase Receipt Trends,Purchase Receipt Trends
Purchase Receipt must be submitted,Purchase Receipt must be submitted
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 Receipts,Purchase Receipts
Purchase Register,Purchase Register
Purchase Return,Purchase Return
Purchase Returned,Purchase Returned
Purchase Taxes and Charges,Purchase Taxes and Charges
Purchase Taxes and Charges Master,Purchase Taxes and Charges Master
Purchase User,Purchase User
"Purchase rate for item: {0} not found, which is required to book accounting entry (expense). Please mention item price against a buying price list.","Purchase rate for item: {0} not found, which is required to book accounting entry (expense). Please mention item price against a buying price list."
Purchse Order number required for Item {0},Purchse Order number required for Item {0}
Purpose,Tilgangur
Purpose must be one of {0},Tilgangurinn verður að vera einn af {0}
QA Inspection,Gæðaeftirlit
Qty,Magn
Qty Consumed Per Unit,Magn notað per einingu
Qty To Manufacture,Magn til framleiðslu
Qty as per Stock UOM,Qty as per Stock UOM
Qty to Deliver,Magn til afhendingar
Qty to Order,Magn til að panta
Qty to Receive,Magn til að taka á móti
Qty to Transfer,Magn sem á að flytja
Qualification,Flokkun
Quality,Gæði
Quality Inspection,Gæðaeftirlit
Quality Inspection Parameters,Quality Inspection Parameters
Quality Inspection Reading,Quality Inspection Reading
Quality Inspection Readings,Quality Inspection Readings
Quality Inspection required for Item {0},Quality Inspection required for Item {0}
Quality Management,Quality Management
Quality Manager,Quality Manager
Quantity,Quantity
Quantity Requested for Purchase,Quantity Requested for Purchase
Quantity and Rate,Quantity and Rate
Quantity and Warehouse,Quantity and Warehouse
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,Quantity of item obtained after manufacturing / repacking from given quantities of raw materials
Quantity required for Item {0} in row {1},Quantity required for Item {0} in row {1}
Quarter,Quarter
Quarterly,Quarterly
Quick Help,Flýtihjálp
Quotation,Kostnaðaráætlun
Quotation Item,Quotation Item
Quotation Items,Quotation Items
Quotation Lost Reason,Quotation Lost Reason
Quotation Message,Quotation Message
Quotation To,Quotation To
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,Random
Range,Range
Rate,Rate
Rate ,Rate 
Rate (%),Rate (%)
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,Raw Material
Raw Material Item Code,Raw Material Item Code
Raw Materials Supplied,Raw Materials Supplied
Raw Materials Supplied Cost,Raw Materials Supplied Cost
Raw material cannot be same as main Item,Raw material cannot be same as main Item
Re-Open Ticket,Re-Open Ticket
Re-Order Level,Re-Order Level
Re-Order Qty,Re-Order Qty
Re-order,Re-order
Re-order Level,Re-order Level
Re-order Qty,Re-order Qty
Read,Lesa
Reading 1,Aflestur 1
Reading 10,Aflestur 10
Reading 2,Aflestur 2
Reading 3,Aflestur 3
Reading 4,Aflestur 4
Reading 5,Aflestur 5
Reading 6,Aflestur 6
Reading 7,Aflestur 7
Reading 8,Aflestur 8
Reading 9,Aflestur 9
Real Estate,Fasteign
Reason,Ástæða
Reason for Leaving,Ástæða fyrir brottför
Reason for Resignation,Ástæða fyrir uppsögn
Reason for losing,Ástæða fyrir tapi
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,Received
Received Date,Received Date
Received Items To Be Billed,Received Items To Be Billed
Received Or Paid,Received Or Paid
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.,Record item movement.
Recurring Id,Recurring Id
Recurring Invoice,Recurring Invoice
Recurring Order,Recurring Order
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,Ref
Ref Code,Ref Code
Ref Date,Ref Date
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 No
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,Endurnýja
Registration Details,Skráningarupplýsingar
Registration Info,Skráningarupplýsingar
Rejected,Hafnað
Rejected Quantity,Hafnað magn
Rejected Serial No,Hafnað raðnúmer
Rejected Warehouse,Höfnuð vöruhús
Rejected Warehouse is mandatory against regected item,Rejected Warehouse is mandatory against regected item
Relation,Vensl
Relieving Date,Relieving Date
Relieving Date must be greater than Date of Joining,Relieving Date must be greater than Date of Joining
Remark,Athugasemd
Remarks,Athugasemdir
Remove item if charges is not applicable to that item,Remove item if charges is not applicable to that item
Rename,Endurnefna
Rename Log,Annáll fyrir endurnefningar
Rename Tool,Tól til að endurnefna
Rent Cost,Leiguverð
Rent per hour,Leiga á klukkustund
Rented,Leigt
Reorder Level,Endurpöntunarstig
Reorder Qty,Endurpöntunarmagn
Repack,Endurpakka
Repeat Customer Revenue,Repeat Customer Revenue
Repeat Customers,Repeat Customers
Repeat on Day of Month,Repeat on Day of Month
Replace,Replace
Replace Item / BOM in all BOMs,Replace Item / BOM in all BOMs
"Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM","Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate ""BOM Explosion Item"" table as per new BOM"
Replied,Replied
Report Date,Report Date
Report Type,Report Type
Report Type is mandatory,Report Type is mandatory
Reports to,Reports to
Reqd By Date,Reqd By Date
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.,Requests for items.
Required By,Required By
Required Date,Required Date
Required Qty,Required Qty
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,Research
Research & Development,Research & Development
Researcher,Researcher
Reseller,Reseller
Reserved,Reserved
Reserved Qty,Reserved Qty
"Reserved Qty: Quantity ordered for sale, but not delivered.","Reserved Qty: Quantity ordered for sale, but not delivered."
Reserved Quantity,Reserved Quantity
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,Ársniðurstaða
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,Auramismunur
Rounded Total,Rounded Total
Rounded Total (Company Currency),Rounded Total (Company Currency)
Row # ,Row # 
Row # {0}: ,Row # {0}: 
Row #{0}: Please specify Serial No for Item {1},Row #{0}: Please specify Serial No for Item {1}
Row {0}: Account {1} does not match with {2} {3} Name,Row {0}: Account {1} does not match with {2} {3} Name
Row {0}: Account {1} does not match with {2} {3} account,Row {0}: Account {1} does not match with {2} {3} account
Row {0}: Allocated amount {1} must be less than or equals to JV amount {2},Row {0}: Allocated amount {1} must be less than or equals to JV amount {2}
Row {0}: Allocated amount {1} must be less than or equals to invoice outstanding amount {2},Row {0}: Allocated amount {1} must be less than or equals to invoice outstanding amount {2}
Row {0}: Conversion Factor is mandatory,Row {0}: Conversion Factor is mandatory
Row {0}: Credit entry can not be linked with a {1},Row {0}: Credit entry can not be linked with a {1}
Row {0}: Debit entry can not be linked with a {1},Row {0}: Debit entry can not be linked with a {1}
Row {0}: Payment Amount cannot be greater than Outstanding Amount,Row {0}: Payment Amount cannot be greater than Outstanding Amount
Row {0}: Payment against Sales/Purchase Order should always be marked as advance,Row {0}: Payment against Sales/Purchase Order should always be marked as advance
Row {0}: Payment amount can not be negative,Row {0}: Payment amount can not be negative
Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.,Row {0}: Please check 'Is Advance' against Account {1} if this is an advance entry.
Row {0}: Qty is mandatory,Row {0}: Qty is mandatory
"Row {0}: Qty not avalable in warehouse {1} on {2} {3}.					Available Qty: {4}, Transfer Qty: {5}","Row {0}: Qty not avalable in warehouse {1} on {2} {3}.					Available Qty: {4}, Transfer Qty: {5}"
"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}: {1} is not a valid {2},Row {0}: {1} is not a valid {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.
SHE Cess on Excise,SHE Cess on Excise
SHE Cess on Service Tax,SHE Cess on Service Tax
SHE Cess on TDS,SHE Cess on TDS
SMS Center,SMS Center
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,Laun
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,Sala
Sales Analytics,Sales Analytics
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,Sales Details
Sales Discounts,Sales Discounts
Sales Email Settings,Sales Email Settings
Sales Expenses,Sölukostnaður
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,Sales Invoice No
Sales Invoice Trends,Sales Invoice Trends
Sales Invoice {0} has already been submitted,Sales Invoice {0} has already been submitted
Sales Invoice {0} must be cancelled before cancelling this Sales Order,Sales Invoice {0} must be cancelled before cancelling this Sales Order
Sales Item,Sales Item
Sales Manager,Sales Manager
Sales Master Manager,Sales Master Manager
Sales Order,Sales Order
Sales Order Date,Sales Order Date
Sales Order Item,Sales Order Item
Sales Order Items,Sales Order Items
Sales Order Message,Sales Order Message
Sales Order No,Sales Order No
Sales Order Required,Sales Order Required
Sales Order Trends,Sales Order Trends
Sales Order required for Item {0},Sales Order required for Item {0}
Sales Order {0} is not submitted,Sales Order {0} is not submitted
Sales Order {0} is not valid,Sales Order {0} is not valid
Sales Order {0} is stopped,Sales Order {0} is stopped
Sales Partner,Sales Partner
Sales Partner Name,Sales Partner Name
Sales Partner Target,Sales Partner Target
Sales Partners Commission,Sales Partners Commission
Sales Person,Sales Person
Sales Person Name,Sales Person Name
Sales Person Target Variance Item Group-Wise,Sales Person Target Variance Item Group-Wise
Sales Person Targets,Sales Person Targets
Sales Person-wise Transaction Summary,Sales Person-wise Transaction Summary
Sales Price List,Sales Price List
Sales Register,Sales Register
Sales Return,Sales Return
Sales Returned,Sales Returned
Sales Taxes and Charges,Sales Taxes and Charges
Sales Taxes and Charges Master,Sales Taxes and Charges Master
Sales Team,Sales Team
Sales Team Details,Sales Team Details
Sales Team1,Sales Team1
Sales User,Sales User
Sales and Purchase,Sales and Purchase
Sales campaigns.,Sales campaigns.
Salutation,Salutation
Sample Size,Sample Size
Sanctioned Amount,Sanctioned Amount
Saturday,Saturday
Schedule,Schedule
Schedule Date,Schedule Date
Schedule Details,Schedule Details
Scheduled,Scheduled
Scheduled Date,Scheduled Date
Scheduled to send to {0},Scheduled to send to {0}
Scheduled to send to {0} recipients,Scheduled to send to {0} recipients
Scheduler Failed Events,Scheduler Failed Events
School/University,School/University
Score (0-5),Score (0-5)
Score Earned,Score Earned
Score must be less than or equal to 5,Score must be less than or equal to 5
Scrap %,Scrap %
Seasonality for setting budgets.,Seasonality for setting budgets.
Secretary,Secretary
Secured Loans,Veðlán
Securities & Commodity Exchanges,Securities & Commodity Exchanges
Securities and Deposits,Verðbréf og innstæður
"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.","Select ""Yes"" if this item is used for some internal purpose in your company."
"Select ""Yes"" if this item represents some work like training, designing, consulting etc.","Select ""Yes"" if this item represents some work like training, designing, consulting etc."
"Select ""Yes"" if you are maintaining stock of this item in your Inventory.","Select ""Yes"" if you are maintaining stock of this item in your Inventory."
"Select ""Yes"" if you supply raw materials to your supplier to manufacture this item.","Select ""Yes"" if you supply raw materials to your supplier to manufacture this item."
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 Company...,Select Company...
Select DocType,Select DocType
Select Fiscal Year,Select Fiscal Year
Select Fiscal Year...,Select Fiscal Year...
Select Items,Select Items
Select Sales Orders,Select Sales Orders
Select Sales Orders from which you want to create Production Orders.,Select Sales Orders from which you want to create Production Orders.
Select Time Logs and Submit to create a new Sales Invoice.,Select Time Logs and Submit to create a new Sales Invoice.
Select Transaction,Select Transaction
Select Your Language,Select Your Language
Select account head of the bank where cheque was deposited.,Select account head of the bank where cheque was deposited.
Select company name first.,Select company name first.
Select template from which you want to get the Goals,Select template from which you want to get the Goals
Select the Employee for whom you are creating the Appraisal.,Select the Employee for whom you are creating the Appraisal.
Select the period when the invoice will be generated automatically,Select the period when the invoice will be generated automatically
Select the relevant company name if you have multiple companies,Select the relevant company name if you have multiple companies
Select the relevant company name if you have multiple companies.,Select the relevant company name if you have multiple companies.
Select type of transaction,Select type of transaction
Select who you want to send this newsletter to,Select who you want to send this newsletter to
Select your home country and check the timezone and currency.,Select your home country and check the timezone and currency.
"Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt.","Selecting ""Yes"" will allow this item to appear in Purchase Order , Purchase Receipt."
"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,Sala
Selling Amount,Selling Amount
Selling Rate,Selling Rate
Selling Settings,Selling Settings
"Selling must be checked, if Applicable For is selected as {0}","Selling must be checked, if Applicable For is selected as {0}"
Send,Send
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 automatic emails to Contacts on Submitting transactions.,Send automatic emails to Contacts on Submitting transactions.
Send mass SMS to your contacts,Send mass SMS to your contacts
Send regular summary reports via Email.,Send regular summary reports via Email.
Send to this list,Send to this list
Sender Name,Sender Name
Sent,Send
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 #,Serial #
Serial No,Serial No
Serial No / Batch,Serial No / Batch
Serial No Details,Serial No Details
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 found,Serial No {0} not found
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,Röð
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},Röð {0} er þegar notuð í {1}
Service,Þjónusta
Service Address,Service Address
Service Tax,Þjónustuskattur
Services,Þjónustur
Set,Set
"Set Default Values like Company, Currency, Current Fiscal Year, etc.","Stilla sjálfgefin gildi eins og fyrirtæki, gjaldmiðil, reikningsár o.fl."
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 Status as Available,Set Status as Available
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 this Address Template as default as there is no other default,Setting this Address Template as default as there is no other default
Setting up...,Setting up...
Settings,Stillingar
Settings for Accounts,Stillingar fyrir reikninga
Settings for Buying Module,Settings for Buying Module
Settings for HR Module,Settings for HR Module
Settings for Selling Module,Settings for Selling 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,Uppsetning
Setup Already Complete!!,Setup Already Complete!!
Setup Complete,Setup Complete
Setup SMS gateway settings,Setup SMS gateway settings
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,Share
Share With,Share With
Shareholders Funds,Óráðstafað eigið fé
Shipments to customers.,Shipments to customers.
Shipping,Shipping
Shipping Account,Shipping Account
Shipping Address,Shipping Address
Shipping Address Name,Shipping Address Name
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,Shop
Shopping Cart,Innkaupakarfa
Short biography for website and other publications.,Short biography for website and other publications.
Shortage Qty,Shortage Qty
"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,Show In Website
Show a slideshow at the top of the page,Show a slideshow at the top of the page
Show in Website,Show in Website
Show this slideshow at the top of the page,Show this slideshow at the top of the page
Show zero values,Show zero values
Shown in Website,Shown in Website
Sick Leave,Sick Leave
Signature,Signature
Signature to be appended at the end of every email,Signature to be appended at the end of every email
Single,Single
Single unit of an Item.,Single unit of an Item.
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,Software
Software Developer,Software Developer
"Sorry, Serial Nos cannot be merged","Sorry, Serial Nos cannot be merged"
"Sorry, companies cannot be merged","Sorry, companies cannot be merged"
Source,Source
Source File,Source File
Source Warehouse,Source Warehouse
Source and target warehouse cannot be same for row {0},Source and target warehouse cannot be same for row {0}
Source of Funds (Liabilities),Skuldir og eigið fé
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,Specification Details
Specifications,Specifications
Specify Exchange Rate to convert one currency into another,Specify Exchange Rate to convert one currency into another
"Specify a list of Territories, for which, this Price List is valid","Specify a list of Territories, for which, this Price List is valid"
"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 conditions to calculate shipping amount,Specify conditions to calculate shipping amount
"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
Sr,Sr
Standard,Standard
Standard Buying,Standard Buying
Standard Reports,Staðlaðar skýrslur
Standard Selling,Stöðluð sala
"Standard Terms and Conditions that can be added to Sales and Purchases.Examples:1. Validity of the offer.1. Payment Terms (In Advance, On Credit, part advance etc).1. What is extra (or payable by the Customer).1. Safety / usage warning.1. Warranty if any.1. Returns Policy.1. Terms of shipping, if applicable.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company.","Staðlaðir skilmálar og skilyrði sem hægt er að bæta við sölu og innkaup.Dæmi:1. Gildi tilboðsins.1. Greiðsluskilmálar (fyrirfram, í reikning, að hluta fyrirfram etc).1. Hvað er aukalega (eða það sem viðskiptavinur þarf að greiða).1. Öryggi / notkunarviðvörun.1. Ábyrgð ef einhver er.1. Skilareglur.1. Sendingarskilmálar, ef við á.1. Ways of addressing disputes, indemnity, liability, etc.1. Address and Contact of your Company."
Standard contract terms for Sales or Purchase.,Standard contract terms for Sales or Purchase.
"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.10. Add or Deduct: Whether you want to add or deduct the tax.","Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.10. Add or Deduct: Whether you want to add or deduct the tax."
"Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers.","Standard tax template that can be applied to all Sales Transactions. This template can contain list of tax heads and also other expense / income heads like ""Shipping"", ""Insurance"", ""Handling"" etc.#### NoteThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.#### Description of Columns1. Calculation Type:     - This can be on **Net Total** (that is the sum of basic amount).    - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.    - **Actual** (as mentioned).2. Account Head: The Account ledger under which this tax will be booked3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.4. Description: Description of the tax (that will be printed in invoices / quotes).5. Rate: Tax rate.6. Amount: Tax amount.7. Total: Cumulative total to this point.8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).9. Is this Tax included in Basic Rate?: If you check this, it means that this tax will not be shown below the item table, but will be included in the Basic Rate in your main item table. This is useful where you want give a flat price (inclusive of all taxes) price to customers."
Start,Byrja
Start Date,Byrjunardagsetning
Start POS,Ræsa verlunarkerfi (POS)
Start date of current invoice's period,Start date of current invoice's period
Start date of current order's period,Start date of current order'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,State
Statement of Account,Statement of Account
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,Birgðir
Stock Adjustment,Birgðaleiðrétting
Stock Adjustment Account,Reikningur fyrir birgðaleiðréttingu
Stock Ageing,Stock Ageing
Stock Analytics,Stock Analytics
Stock Assets,Vörubirgðir
Stock Balance,Stock Balance
Stock Entries already created for Production Order ,Stock Entries already created for Production Order 
Stock Entry,Stock Entry
Stock Entry Detail,Stock Entry Detail
Stock Expenses,Birgðagjöld
Stock Frozen Upto,Stock Frozen Upto
Stock Item,Stock Item
Stock Ledger,Stock Ledger
Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts,Stock Ledger Entries and GL Entries are reposted for the selected Purchase Receipts
Stock Ledger Entry,Stock Ledger Entry
Stock Ledger entries balances updated,Stock Ledger entries balances updated
Stock Level,Stock Level
Stock Liabilities,Birgðaskuldir
Stock Projected Qty,Stock Projected Qty
Stock Queue (FIFO),Stock Queue (FIFO)
Stock Received But Not Billed,Mótteknar birgðir en ekki greiddar
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 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'
Stock transactions before {0} are frozen,Stock transactions before {0} are frozen
Stock: ,Stock: 
Stop,Stop
Stop Birthday Reminders,Stop Birthday Reminders
Stop users from making Leave Applications on following days.,Stop users from making Leave Applications on following days.
Stopped,Stopped
Stopped order cannot be cancelled. Unstop to cancel.,Stopped order cannot be cancelled. Unstop to cancel.
Stores,Verslanir
Stub,Stub
Sub Assemblies,Sub Assemblies
"Sub-currency. For e.g. ""Cent""","Sub-currency. For e.g. ""Cent"""
Subcontract,Subcontract
Subcontracted,Subcontracted
Subject,Subject
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 Reconciled,Successfully Reconciled
Suggestions,Suggestions
Sunday,Sunday
Supplier,Supplier
Supplier (Payable) Account,Supplier (Payable) Account
Supplier (vendor) name as entered in supplier master,Supplier (vendor) name as entered in supplier master
Supplier > Supplier Type,Supplier > Supplier Type
Supplier Account,Supplier Account
Supplier Account Head,Supplier Account Head
Supplier Address,Supplier Address
Supplier Addresses and Contacts,Supplier Addresses and Contacts
Supplier Details,Supplier Details
Supplier Id,Supplier Id
Supplier Intro,Supplier Intro
Supplier Invoice Date,Supplier Invoice Date
Supplier Invoice No,Supplier Invoice No
Supplier Name,Supplier Name
Supplier Naming By,Supplier Naming By
Supplier Part Number,Supplier Part Number
Supplier Quotation,Supplier Quotation
Supplier Quotation Item,Supplier Quotation Item
Supplier Reference,Supplier Reference
Supplier Type,Supplier Type
Supplier Type / Supplier,Supplier Type / Supplier
Supplier Type master.,Supplier Type master.
Supplier Warehouse,Supplier Warehouse
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 of Goods or Services.,Supplier of Goods or Services.
Supplier warehouse where you have issued raw materials for sub - contracting,Supplier warehouse where you have issued raw materials for sub - contracting
Supplier(s),Supplier(s)
Supplier-Wise Sales Analytics,Supplier-Wise Sales Analytics
Support,Þjónusta
Support Analtyics,Support Analtyics
Support Analytics,Support Analytics
Support Email,Support Email
Support Email Settings,Support Email Settings
Support Manager,Support Manager
Support Password,Support Password
Support Team,Support Team
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,Kerfi
System Balance,Kerfisstaða
System Manager,Kerfisstjóri
System Settings,Kerfisstillingar
"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."
System for managing Backups,Kerfi til að stjórna afritun
TDS (Advertisement),TDS (Advertisement)
TDS (Commission),TDS (Commission)
TDS (Contractor),TDS (Contractor)
TDS (Interest),TDS (Interest)
TDS (Rent),TDS (Rent)
TDS (Salary),TDS (Salary)
Table for Item that will be shown in Web Site,Tafla fyrir atriði sem verða sýnd á vefsíðu
Taken,Taken
Target,Target
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
Task Subject,Task Subject
Tasks,Tasks
Tax,Tax
Tax Amount After Discount Amount,Tax Amount After Discount Amount
Tax Assets,Skatteignir
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,Tax Rate
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.
Taxes,Taxes
Taxes and Charges,Taxes and Charges
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,Technology
Telecommunications,Telecommunications
Telephone Expenses,Fjarskiptaútgjöld
Television,Television
Template,Template
Template for performance appraisals.,Template for performance appraisals.
Template of terms or contract.,Template of terms or contract.
Temporary Accounts (Assets),Tímabundnir reikningar (Eignir)
Temporary Accounts (Liabilities),Tímabundnir reikningar (Skuldir)
Temporary Assets,Tímabundnar eignir
Temporary Liabilities,Tímabundnar skuldir
Term Details,Term Details
Terms,Terms
Terms and Conditions,Terms and Conditions
Terms and Conditions Content,Terms and Conditions Content
Terms and Conditions Details,Terms and Conditions Details
Terms and Conditions Template,Terms and Conditions Template
Terms and Conditions1,Terms and Conditions1
Terretory,Terretory
Territory,Territory
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 date on which recurring order will be stop,The date on which recurring order 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 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 of the month on which auto order will be generated e.g. 05, 28 etc","The day of the month on which auto order will be generated e.g. 05, 28 etc"
"The day of the month on which auto order will be generated e.g. 05, 28 etc ","The day of the month on which auto order 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 selected item cannot have Batch,The selected item cannot have Batch
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.
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.
"Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc.","Then Pricing Rules are filtered out based on Customer, Customer Group, Territory, Supplier, Supplier Type, Campaign, Sales Partner etc."
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.
There were no updates in the items selected for this digest.,There were no updates in the items selected for this digest.
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 format is used if country specific format is not found,This format is used if country specific format is not found
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 tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.,This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.
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,Thursday
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 Status must be Submitted.,Time Log Status must be Submitted.
Time Log for tasks.,Time Log for tasks.
Time Log is not billable,Time Log is not billable
Time Log {0} must be 'Submitted',Time Log {0} must be 'Submitted'
Time Zone,Tímabelti
Time Zones,Tímabelti
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,To
To Currency,To Currency
To Date,Lokadagur
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 Date should be within the Fiscal Year. Assuming To Date = {0},To Date should be within the Fiscal Year. Assuming To Date = {0}
To Datetime,To Datetime
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,To Warehouse
"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,Til að stofna bankareikning
To create a Tax Account,Til að búa til virðisaukaskattsreikninga
"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 not apply Pricing Rule in a particular transaction, all applicable Pricing Rules should be disabled.","To not apply Pricing Rule in a particular transaction, all applicable Pricing Rules should be disabled."
"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.
Too many columns. Export the report and print it using a spreadsheet application.,Of margir dálkar. Flytjið út skýrsluna og prentið með töflureikni.
Tools,Verkfæri
Total,Alls
Total ({0}),Alls ({0})
Total Absent,Alls fjarverandi
Total Achieved,Alls náð
Total Actual,Total Raun niðurstaða
Total Advance,Alls fyrirfram
Total Amount,Heildarupphæð
Total Amount To Pay,Heikdarupphæð til greiðslu
Total Amount in Words,Heildarupphæð með orðum
Total Billing This Year: ,Heildar reikningsfærsla á þessu ári: 
Total Characters,Fjöldi stafa
Total Claimed Amount,Total Claimed Amount
Total Commission,Heildar umboðslaun
Total Cost,Heildarkostnaður
Total Credit,Heildar kredit
Total Debit,Heildar debet
Total Debit must be equal to Total Credit. The difference is {0},Heildar debet verður að stemma við heildar kredit. Mismunurinn er {0}
Total Deduction,Heildar frádráttur
Total Earning,Heildartekjur
Total Experience,Heildarreynsla
Total Fixed Cost,Allur fastur kostnaður
Total Hours,Heildar stundir
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,Total Operating Cost
Total Order Considered,Total Order Considered
Total Order Value,Total Order Value
Total Outgoing,Total Outgoing
Total Payment Amount,Total Payment Amount
Total Points,Total Points
Total Present,Total Present
Total Qty,Total Qty
Total Raw Material Cost,Total Raw Material Cost
Total Revenue,Total Revenue
Total Sanctioned Amount,Total Sanctioned Amount
Total Score (Out of 5),Total Score (Out of 5)
Total Target,Total Target
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 Variable Cost,Total Variable Cost
Total Variance,Total Variance
Total advance ({0}) against Order {1} cannot be greater \				than the Grand Total ({2}),Total advance ({0}) against Order {1} cannot be greater \				than the Grand Total ({2})
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. það er {0}
Total valuation for manufactured or repacked item(s) can not be less than total valuation of raw materials,Total valuation for manufactured or repacked item(s) can not be less than total valuation of raw materials
Total weightage assigned should be 100%. It is {0},Total weightage assigned should be 100%. það er {0}
Total(Amt),Heildar(upphæð)
Total(Qty),Heildar(magn)
Totals,Heildar
Track Leads by Industry Type.,Track Leads by Industry Type.
Track separate Income and Expense for product verticals or divisions.,Track separate Income and Expense for product verticals or divisions.
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,Færsla
Transaction Date,Færsludagur
Transaction not allowed against stopped Production Order {0},Færsla ekki heimil þegar hætt hefur verið við framleiðslupöntun {0}
Transfer,Flytja
Transfer Material,Flytja efni
Transfer Raw Materials,Flytja hráefni
Transferred Qty,Flutt magn
Transportation,Flutningur
Transporter Info,Upplýsingar um flytjanda
Transporter Name,Nafn flytjanda
Transporter lorry number,Númer á vöruflutningabifreið flytjanda
Travel,Ferð
Travel Expenses,Ferðakostnaður
Tree Type,Tree Type
Tree of Item Groups.,Tree of Item Groups.
Tree of finanial Cost Centers.,Tree of finanial Cost Centers.
Tree of finanial accounts.,Tree of finanial accounts.
Trial Balance,Trial Balance
Tuesday,Þriðjudagur
Type,Gerð
Type of document to rename.,Gerð skjals sem á að endurnefna
"Type of leaves like casual, sick etc.","Type of leaves like casual, sick etc."
Types of Expense Claim.,Tegundir af kostnaðarkröfum.
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,UOM Conversion Detail
UOM Conversion Details,UOM Conversion Details
UOM Conversion Factor,UOM Conversion Factor
UOM Conversion factor is required in row {0},UOM Conversion factor is required in row {0}
UOM Name,UOM Name
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,Í ábyrgð
Unit,Eining
Unit of Measure,Mælieining
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).","Unit of measurement of this item (e.g. Kg, Unit, No, Pair)."
Units/Hour,Eining/Klukkustund
Units/Shifts,Units/Shifts
Unpaid,Ógreitt
Unreconciled Payment Details,Unreconciled Payment Details
Unscheduled,Unscheduled
Unsecured Loans,Ótryggð lán
Unstop,Unstop
Unstop Material Request,Unstop Material Request
Unstop Purchase Order,Unstop Purchase Order
Unsubscribed,Unsubscribed
Upcoming Calendar Events (max 10),Upcoming Calendar Events (max 10)
Update,Update
Update Clearance Date,Update Clearance Date
Update Cost,Update Cost
Update Finished Goods,Uppfæra fullunnar vörur
Update Series,Uppfæra röð
Update Series Number,Uppfæra númer raðar
Update Stock,Update Stock
Update additional costs to calculate landed cost of items,Update additional costs to calculate landed cost of items
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,Efri tekjumörk
Urgent,Áríðandi
Use Multi-Level BOM,Use Multi-Level BOM
Use SSL,Nota SSL
Used for Production Plan,Notað í framleiðsluáætlun
User,Notandi
User ID,Notendakenni
User ID not set for Employee {0},Notendakenni ekki skilgreint fyrir starfsmann {0}
User Name,Notandanafn
User Name or Support Password missing. Please enter and try again.,Notandanafn eða stuðnings lykilorð vantar. Skráðu og reyndu aftur.
User Remark,Athugasemd notanda
User Remark will be added to Auto Remark,Athugasemd notanda verður bætt við sjálfvirk athugasemd
User Specific,Tiltekinn notandi
User must always select,Notandi verður alltaf að velja
User {0} is already assigned to Employee {1},User {0} is already assigned to Employee {1}
User {0} is disabled,Notandi {0} er óvirkur
Username,Notandanafn
Users who can approve a specific employee's leave applications,Users who can approve a specific employee's leave applications
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,Veitur
Utility Expenses,Veitugjöld
Valid For Territories,Valid For Territories
Valid From,Valid From
Valid Upto,Valid Upto
Valid for Territories,Valid for Territories
Validate,Validate
Valuation,Valuation
Valuation Method,Valuation Method
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
Variance,Variance
Vehicle Dispatch Date,Vehicle Dispatch Date
Vehicle No,Vehicle No
Venture Capital,Venture Capital
Verified By,Verified By
View Details,View Details
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 Detail Number,Voucher Detail Number
Voucher ID,Voucher ID
Voucher No,Númer fylgiskjals
Voucher Type,Færslugerð
Voucher Type and Date,Gerð og dagsetning fylgiskjals
Walk In,Walk In
Warehouse,Vörugeymsla
Warehouse Contact Info,Upplýsingar um tengilið vörugeymslu
Warehouse Detail,Upplýsingar um vörugeymslu
Warehouse Name,Nafn vörugeymslu
Warehouse and Reference,Vörugeymsla og tilvísun
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 not found in the system,Warehouse not found in the system
Warehouse required for stock Item {0},Warehouse required for stock Item {0}
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 {0}: Company is mandatory,Warehouse {0}: Company is mandatory
Warehouse {0}: Parent account {1} does not bolong to the company {2},Warehouse {0}: Parent account {1} does not bolong to the company {2}
Warehouse-wise Item Reorder,Warehouse-wise Item Reorder
Warehouses,Warehouses
Warehouses.,Warehouses.
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,Warranty Expiry Date
Warranty Period (Days),Warranty Period (Days)
Warranty Period (in days),Warranty Period (in days)
We buy this Item,We buy this Item
We sell this Item,We sell this Item
Website,Vefsíða
Website Description,Website Description
Website Item Group,Website Item Group
Website Item Groups,Website Item Groups
Website Manager,Website Manager
Website Settings,Website Settings
Website Warehouse,Website Warehouse
Wednesday,Wednesday
Weekly,Weekly
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,Welcome
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.,Where items are stored.
Where manufacturing operations are carried out.,Where manufacturing operations are carried out.
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,Wire Transfer
With Operations,With Operations
Work Details,Work Details
Work Done,Work Done
Work In Progress,Verk í vinnslu
Work-in-Progress Warehouse,Verk í vinnslu vörugeymsla
Work-in-Progress Warehouse is required before Submit,"Verk í vinnslu, vörugeymslu er krafist fyrir sendingu"
Working,Vinna
Working Days,Vinnudagar
Workstation,Vinnustöð
Workstation Name,Nafn á vinnustöð
Write Off Account,Afskrifta reikningur
Write Off Amount,Afskrifta upphæð
Write Off Amount <=,Afskrifta upphæð <=
Write Off Based On,Afskriftir byggðar á
Write Off Cost Center,Write Off Cost Center
Write Off Outstanding Amount,Afskrifa útistandandi upphæð
Write Off Voucher,Afskrifa fylgiskjal
Wrong Template: Unable to find head row.,Wrong Template: Unable to find head row.
Year,Ár
Year Closed,Ár lokað
Year End Date,Lokadagsetning árs
Year Name,Nafn árs
Year Start Date,Upphafsdagsetning árs
Year of Passing,Núverandi ár
Yearly,Árlega
Yes,Já
You are not authorized to add or update entries before {0},Þú hefur ekki leyfi til að bæta við eða uppfæra færslur fyrir {0}
You are not authorized to set Frozen value,Þú hefur ekki leyfi til að setja frosin gildi
You are the Expense Approver for this record. Please Update the 'Status' and Save,Þú ert kostnaðar samþykkjandi fyrir þessa færslu. 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.,You can enter the minimum quantity of this item to be ordered.
You can not change rate if BOM mentioned agianst any item,You can not change rate if BOM mentioned agianst any item
You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.,You can not enter both Delivery Note No and Sales Invoice No. Please enter any one.
You can not enter current voucher in 'Against Journal Voucher' column,You can not enter current voucher in 'Against Journal Voucher' column
You can set Default Bank Account in Company master,You can set Default Bank Account in Company master
You can start by selecting backup frequency and granting access for sync,You can start by selecting backup frequency and granting access for sync
You can submit this Stock Reconciliation.,You can submit this Stock Reconciliation.
You can update either Quantity or Valuation Rate or both.,You can update either Quantity or Valuation Rate or both.
You cannot credit and debit same account at the same time,You cannot credit and debit same account at the same time
You have entered duplicate items. Please rectify and try again.,You have entered duplicate items. Please rectify and try again.
You may need to update: {0},You may need to update: {0}
You must Save the form before proceeding,You must Save the form before proceeding
Your Customer's TAX registration numbers (if applicable) or any general information,Your Customer's TAX registration numbers (if applicable) or any general information
Your Customers,Your Customers
Your Login Id,Your Login Id
Your Products or Services,Your Products or Services
Your Suppliers,Your Suppliers
Your email address,Your email address
Your financial year begins on,Your financial year begins on
Your financial year ends on,Your financial year ends on
Your sales person who will contact the customer in future,Your sales person who will contact the customer in future
Your sales person will get a reminder on this date to contact the customer,Your sales person will get a reminder on this date to contact the customer
Your setup is complete. Refreshing...,Your setup is complete. Refreshing...
Your support email id - must be a valid email - this is where your emails will come!,Your support email id - must be a valid email - this is where your emails will come!
[Error],[Error]
[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
cannot be greater than 100,cannot be greater than 100
disabled user,disabled user
"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. Númer ávísunar
example: Next Day Shipping,example: Next Day Shipping
fold,fold
hidden,hidden
hours,hours
lft,lft
old_parent,old_parent
rgt,rgt
to,to
website page link,website page link
{0} '{1}' not in Fiscal Year {2},{0} '{1}' not in Fiscal Year {2}
{0} ({1}) must have role 'Expense Approver',{0} ({1}) must have role 'Expense Approver'
{0} ({1}) must have role 'Leave Approver',{0} ({1}) must have role 'Leave Approver'
{0} Credit limit {1} crossed,{0} Credit limit {1} crossed
{0} Recipients,{0} Recipients
{0} Serial Numbers required for Item {0}. Only {0} provided.,{0} Serial Numbers required for Item {0}. Only {0} provided.
{0} Tree,{0} Tree
{0} against Purchase Order {1},{0} against Purchase Order {1}
{0} against Sales Invoice {1},{0} against Sales Invoice {1}
{0} against Sales Order {1},{0} against Sales Order {1}
{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} can not be negative,{0} can not be negative
{0} created,{0} created
{0} days from {1},{0} days from {1}
{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 mandatory. Maybe Currency Exchange record is not created for {1} to {2}.,{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.
{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. Removing row #{1}.,{0} is not a valid Leave Approver. Removing row #{1}.
{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 reduced by {1} or you should increase overflow tolerance,{0} must be reduced by {1} or you should increase overflow tolerance
{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} 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} is fully billed,{0} {1} is fully billed
{0} {1} is not submitted,{0} {1} is not submitted
{0} {1} is stopped,{0} {1} is stopped
{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
{0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Cost Center is mandatory for Item {2}
{0}: {1} not found in Invoice Details table,{0}: {1} not found in Invoice Details table
