<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_en" script:language="StarBasic">Option Explicit

Sub LoadEnglishLanguage()

	sProductname = GetProductname
	sOK = &quot;~OK&quot; 
	sCancel = &quot;Cancel&quot;
	sColumnHeader = &quot;Column Header&quot;
	sInsertStockName = &quot;Please enter shares in your portfolio.&quot;
	sTitle = &quot;&lt;PRODUCTNAME&gt;: Stocks Manager&quot;
	sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
	sMsgError = &quot;Input Error&quot;
	sMsgNoName = sInsertStockname
	sMsgNoQuantity = &quot;Please enter a quantity larger than 0&quot;
	sMsgNoDividend = &quot;Please enter the dividend per share or the total dividend&quot;
	sMsgNoExchangeRate = &quot;Please enter the correct exchange rate (old shares -&gt; new shares)&quot;
	sMsgNoValidExchangeDate = &quot;Please enter a valid date for the split.&quot;
	sMsgWrongExchangeDate = &quot;Splitting not possible, as transactions already exist after the split date.&quot;
	sMsgSellTooMuch = &quot;You cannot sell that many shares. Maximum: &quot;
	sMsgConfirm = &quot;Confirmation Required&quot;
	sMsgFreeStock = &quot;Do you intend to enter free shares?&quot;
	sMsgTotalLoss = &quot;Do you intend to enter a total loss?&quot;
	sMsgAuthorization = &quot;Security Query&quot;
	sMsgDeleteAll = &quot;Do you want to delete all movements and reset the portfolio overview?&quot;
	cSplit = &quot;Stock split on &quot;
	sHistory = &quot;History&quot;
	TransactTitle(1) = 	 &quot;StarOffice Stocks Manager: Selling Shares&quot;
	TransactTitle(2) = &quot;StarOffice Stocks Manager: Buying Shares&quot;
	StockRatesTitle(1) = &quot;StarOffice Stocks Manager: Dividend Payment&quot;
	StockRatesTitle(2) = &quot;Stock Split&quot;
	StockRatesTitle(3) = sHistory
	sDepotCurrency = &quot;Portfolio Currency&quot;	
	sStockName = &quot;Name of Stock&quot;
	TransactMode = LIFO	&apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
	DateCellStyle = &quot;Result Date&quot;
	CurrCellStyle = &quot;1&quot;
	sStartDate = &quot;Start date:&quot;
	sEndDate = &quot;End date:&quot;
	sStartUpWelcome = &quot;This template enables you to manage your stock portfolio efficiently.&quot;
	sStartUpChooseMarket = &quot;First, select your reference currency and thus the stock exchange for the Internet update.&quot;
	sStartUpHint = &quot;Unfortunately, the only &lt;History&gt; function available to you is that for the American market.&quot;
	sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
	sNoInternetUpdate = &quot;without Internet update&quot;
	sMarketPlace = &quot;Stock exchange:&quot;
	sNoInternetDataAvailable = &quot;No prices could be received from the Internet!&quot;
	sCheckInternetSettings = &quot;Possible causes could be: &lt;BR&gt;Your Internet settings have to be modified. &lt;BR&gt;The Symbol (e.g. Code, Ticker Symbol) entered for the stock was incorrect.&quot;
	sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)

	sMsgEndDatebeforeNow = &quot;The end date has to be before today&apos;s date.&quot;
	sMsgStartDatebeforeEndDate = &quot;The start date has to be before the end date.&quot;

	sMarket(0,0) = &quot;American Dollar&quot;
	sMarket(0,1) = &quot;$&quot;
	sMarket(0,2) = &quot;New York&quot;
	sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
	sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
				   &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
				   &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
	sMarket(0,5) = &quot;Symbol&quot;
	sMarket(0,6) = &quot;en&quot;
	sMarket(0,7) = &quot;US&quot;
	sMarket(0,8) = &quot;409&quot;
	sMarket(0,9) = &quot;44&quot;
	sMarket(0,10) = &quot;1&quot;
	
	sMarket(1,0) = &quot;Euro&quot;
	sMarket(1,1) = chr(8364)
	sMarket(1,2) = &quot;Frankfurt&quot;
	sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
	sMarket(1,5) = &quot;Ticker Symbol&quot;
	sMarket(1,6) = &quot;de;nl;pt;el&quot;
	sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
	sMarket(1,8) = &quot;407;413;816;408&quot;
	sMarket(1,9) = &quot;59/9&quot;
	sMarket(1,10) = &quot;1&quot;

	sMarket(2,0) = &quot;British Pound&quot;
	sMarket(2,1) = &quot;£&quot;
	sMarket(2,2) = &quot;London&quot;
	sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
	sMarket(2,5) = &quot;Symbol&quot;
	sMarket(2,6) = &quot;en&quot;
	sMarket(2,7) = &quot;GB&quot;
	sMarket(2,8) = &quot;809&quot;
	sMarket(2,9) = &quot;44&quot;
	sMarket(2,10) = &quot;1&quot;

	sMarket(3,0) = &quot;Japanese Yen&quot;
	sMarket(3,1) = &quot;¥&quot;
	sMarket(3,2) = &quot;Tokyo&quot;
	sMarket(3,3) = &quot;&quot;
	sMarket(3,5) = &quot;Code&quot;
	sMarket(3,6) = &quot;ja&quot;
	sMarket(3,7) = &quot;JP&quot;
	sMarket(3,8) = &quot;411&quot;
	sMarket(3,9) = &quot;&quot;
	sMarket(3,10) = &quot;&quot;
	
	sMarket(4,0) = &quot;Hong Kong Dollar&quot;
	sMarket(4,1) = &quot;HK$&quot;
	sMarket(4,2) = &quot;Hong Kong&quot;
	sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
	sMarket(4,5) = &quot;Number&quot;
	sMarket(4,6) = &quot;zh&quot;
	sMarket(4,7) = &quot;HK&quot;	
	sMarket(4,8) = &quot;C04&quot;
	sMarket(4,9) = &quot;44&quot;
	sMarket(4,10) = &quot;1&quot;

	sMarket(5,0) = &quot;Australian Dollar&quot;
	sMarket(5,1) = &quot;$&quot;
	sMarket(5,2) = &quot;Sydney&quot;
	sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
	sMarket(5,5) = &quot;Symbol&quot;
	sMarket(5,6) = &quot;en&quot;
	sMarket(5,7) = &quot;AU&quot;
	sMarket(5,8) = &quot;C09&quot;
	sMarket(5,9) = &quot;44&quot;
	sMarket(5,10) = &quot;1&quot;

&apos; ****************************End of the default subset*********************************
	CompleteMarketList()

	LocalizedCurrencies()

	With TransactModel
		.lblStockNames.Label = sStockname
		.lblQuantity.Label = &quot;Quantity&quot;
		.lblRate.Label = &quot;Price&quot;
		.lblDate.Label = &quot;Transaction Date&quot;
		.hlnCommission.Label = &quot;Other expenditures&quot;
		.lblCommission.Label = &quot;Commission&quot;
		.lblMinimum.Label = &quot;Min. Commission&quot;
		.lblFix.Label = &quot;Fixed Costs/Charges&quot;
		.cmdGoOn.Label = sOK
		.cmdCancel.Label = sCancel
	End With
	
	With StockRatesModel
		.optPerShare.Label = &quot;Dividends/Stocks&quot;
		.optTotal.Label = &quot;Total Dividends&quot;
		.lblDividend.Label = &quot;Amount&quot;
		.lblExchangeRate.Label = &quot;Exchange Rate (old-&gt;new)&quot;
		.lblColon.Label = &quot;:&quot;
		.lblDate.Label = &quot;Exchange Date:&quot;
		.lblStockNames.Label = sStockname
		.lblStartDate.Label = sStartDate
		.lblEndDate.Label = sEndDate
		.optDaily.Label = &quot;~Daily&quot;
		.optWeekly.Label = &quot;~Weekly&quot;
		.hlnInterval.Label = &quot;Time period&quot;
		.cmdGoOn.Label = sOk
		.cmdCancel.Label = sCancel
	End With
End Sub
</script:module>
