Index: branches/JrCs/package/Resources.old/ja.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/ja.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/ja.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon is a boot loader built using a combination of components which evolved from the development of David Elliott's fake EFI implementation added to Apple's boot-132 project.

+


+

Chameleon v2 is extended with many features. For example:

+


+

- Fully customizable GUI to bring some color to the Darwin Bootloader.

+

- Load a ramdisk to directly boot retail DVDs without additional programs.

+

- Hibernation. Enjoy resuming your Mac OS X with a preview image.

+

- SMBIOS override to modify the factory SMBIOS values.

+

- DSDT override to use a modified fixed DSDT which can solve several issues.

+

- Device Property Injection via device-properties string.

+

- hybrid boot0 / boot1h for MBR and GPT partitioned disks.

+

- Automatic FSB detection code even for recent AMD CPUs.

+

- Apple Software RAID support.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

FAQ's: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/ja.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/ja.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/ja.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "This software must be installed on the startup volume."; +"ERROR_INSTALL" = "This volume does not meet the requirements for this update."; + +"Newer_Package_Installed_message" = "A newer version of Chameleon is already installed"; +"Intel_Mac_message" = "This software cannot be installed on this computer."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Install Type"; +"InstallType_description" = "Choose to perform a new installation or upgrade an existing installation."; + +"New_title" = "New Installation"; +"New_description" = "Backup an existing /Extra folder, if found on the target partition. A new one will be created if any options are chosen from the installer, other than the Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Merge an existing /Extra folder, if found on the target, with any options chosen from the installer, other than the Bootloader. The original /Extra folder will be backed up."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon requires three essential files. (in simple terms) +boot0 (On the drive's MBR) responsible for loading boot1. +boot1 (On the partition's boot-sector) to finding boot2. +boot2 (On the partition's root directory) for loading kernel etc."; + +"Standard_title" = "Standard"; +"Standard_description" = "Install Chameleon's files to the root of the selected partition using either boot0 or boot0md depending on your system without destroying any existing Windows installation if you have one."; + +"EFI_title" = "EFI"; +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + +"noboot_title" = "Don't install the Bootloader"; +"noboot_description" = "Useful if you only want to install the extra's."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. +This is currently only used by the uClibc++ library. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "This module reads the edid information from the monitor attached to the main display. +The module is currently not integrated into trunk and has minimal uses as it stands. +Additionally, the module will patch the vesa modes available in pre intel hd graphics cards to provide proper resolution while booting."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. +*Please note that rtti and exceptions has both been disabled. +Source: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "This module permits the user to define the keyboard key mappings. This module and associated keymaps are installed by default."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilities"; +"Utility_description" = "Optional files to help setup"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Settings"; +"Options_description" = "Create an /Extra/org.chameleon.Boot.plist by selecting any of these boot options and kernel flags."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Hides Chameleon's boot banner in GUI. This is the text that is drawn at the top left corner of the screen displaying the release version etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Disables the default enabled graphic user interface."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Use the legacy 'dark grey' apple logo on the light grey screen for the boot process rather than the boot.png in the theme."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauses the boot process after Chameleon has finished it's setup then waits for a key press before it starts the mach kernel. Useful when combined with verbose boot for troubleshooting."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Enables the option to fix any EHCI ownership issues due to bad bioses."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Enables the option of adding 'built-in' to your ethernet devices."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Enables HPET on intel chipsets, for bioses that dont include the option."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "This option enables you to bypass bad sleep images."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disables the automatically enabled restart fix."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Enables the option to reset UHCI controllers before starting OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Enable specific Processor power state, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Enable specific Processor power state, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Enable specific Processor power state, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Enables the option to autodetect NVIDIA based GPUs and inject the correct info."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Enables UseAtiROM options."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Enables VBIOS option"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Chameleon default theme introduced for v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "A lovely simple theme by NoSmokingBandit from April 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Settings to control how Chameleon works."; + +// General +"General_title" = "General Options"; +"General_description" = "Choose from a selection of base options."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Choose from a selection of kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "A selection of options that deal with video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "A collection of sample themes +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/ja.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ja.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ja.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Do not install to an Apple Macintosh computer\ + +\fs22 \cf0 \ +\ +Developers :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Thanks to :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: ???\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/ja.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ja.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ja.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +The scripts have completed and a file\ + named \cf2 @LOG_FILENAME@\cf3 has been\ +written to the root of your chosen partition.\ +\ +\cf0 Please \cf4 read it\cf0 to find out if the installation was\ +successful and keep it for a record of what was done.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ja.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/ja.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ja.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/zh_TW.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/zh_TW.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/zh_TW.lproj/Description.html (revision 1843) @@ -0,0 +1,47 @@ + + + + + + + + + +

Chameleon 是一個結合許多組件的開機引導器。這些組件的演變來自於 David Elliott 加入 Apple boot-132 程式項目的 fake EFI 安裝工具。

+


+

Chameleon v2 現在已經擴充了許多功能。例如:

+


+

- 客製化的圖形使用者介面,為 Darwin Bootloader 帶來更多的色彩。

+

- 無須其他程式,即可載入 ramdisk 來直接啓動 零售版 DVD

+

- 支持睡眠。 可使用睡眠映像恢復繼續使用 Mac OS X

+

- 可使用修改過的 SMBIOS 覆蓋 SMBIOS 之出廠設定值。

+

- 可使用修正過的 DSDT 覆蓋原始 DSDT,並可解決許多問題。

+

- 可透過 device-properties string 自動注入設備屬性。

+

- 支持 MBR GPT 分割區磁盤的  boot0 / boot1h 多重開機功能。

+

- 具有自動偵測 FSB 碼功能,並可用於新式的 AMD CPU

+

- 支持 Apple Software RAID 功能。

+

- 支持 Nvidia & ATI/AMD 顯示卡啓用功能。

+

- 支持模組功能。

+

- 支持改編自 memtest86: http://www.memtest.org 的記憶體偵測功能。

+

- 具有自動生成 P-State C-State 的原生電源管理之功能。

+

- 具有訊息紀錄之功能。

+


+

源代碼依照 Gnu Public License v2 的原則釋放於以下網站上。

+

http://forge.voodooprojects.org/p/chameleon

+


+

常見問題: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/zh_TW.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/zh_TW.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/zh_TW.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,393 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "dkߎԚ_[݈(WN P_URwS[0"; +"ERROR_INSTALL" = "dkwS[*g&{Tdkfe@bvBl0"; + +"Newer_Package_Installed_message" = "|q}-N][݈NN PeHr,gv Chameleon 0"; +"Intel_Mac_message" = "dkߎԚ!ql(Wdkf +N[݈0"; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "[݈^W"; +"InstallType_description" = "xd2LhQe[݈bfe[݈0"; + +"New_title" = "hQe[݈"; +"New_description" = "PNvjRrR@S]X[(Wv /Extra v0YgxS boot NYvvQN[݈x \PNS gv /Extra -[eN &N^zev /Extra -[eN0"; + +"Upgrade_title" = "fe[݈"; +"Upgrade_description" = "TuOvjRrR@S]X[(Wv /Extra v0YgxS boot NYvvQN[݈x \TuOS gv /Extra -[eN0"; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "!| KN r N P_vjHh0 +boot0 ((Wlxxv MBR) eQ boot10 +boot1 ((WRrR@Sv_jx@S boot-sector) d \ boot20 +boot2 ((WRrR@Sv9hv) eQ|q}8h_I{I{0"; + +"Standard_title" = "jn[݈"; +"Standard_description" = "dkxg[݈ N P_jHh &NOgq`v|q}Bl\ boot0 b boot0md [eQ MBR vMR 440 MOCQ NMQ +dXNUO]}X[(Wv Windows _jx06q_ boot0 g(W,{N P_URRrR@Sd \ boot1h boot0md SN(W,{N Plxxv,{N P_URRrR@Sd \ boot1h0"; + +"EFI_title" = "EFI [݈"; +"EFI_description" = "dkxg[݈ N P_jHh0Rck8^υv EFI RrR@S &NOgq`v|q}Bl\ boot0 b boot0md [eQ MBR vMR 440 MOCQ NMQ +dXNUO]}X[(Wv Windows _jx06q_ boot0 g(W,{N P_URRrR@Sd \ boot1h boot0md SN(W,{N Plxxv,{N P_URRrR@Sd \ boot1h0"; + +"noboot_title" = "v +N[݈"; +"noboot_description" = " +N[݈r_\hV (i(ueP[݈ Extra D}N)0"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "!jD}x"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "!jD}[݈MOn /Extra/modules/klibc.dylib +dk!jD}(W Chameleon v library +NweO(uBf ScON Pjnv c library f}vQN!jD}ȓP}O(u 0 +vMRP g uClibc++ library ȓP}O(u0 +nNx: http://www.kernel.org/pub/linux/libs/klibc/ "; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "!jD}[݈MOn /Extra/modules/Resolution.dylib +dk!jD}g_#cv;No:yhV-N SvQU^v EDID nj +0 + P!jD}vMR&N*gteT0R trunk Hr,ggQ /fchszK\O0 +SY dk!jD}gOckeg Intel HD o:yaSv VESA !j_ S(W_j_\Bf c(uckxv㉐g^0"; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "!jD}[݈MOn /Extra/modules/uClibcxx.dylib +dk!jD}cON P|!|v c++ runtime library f}vQN!jD}ȓP}O(u0 +!jD},g +NcONUOR /f(uOAQ1vQN!jD}SO(u c++ 0 +ˊla rtti T OY ]\P(u0 +nNx: http://cxx.uclibc.org/ +OX[: klibc "; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "!jD}[݈MOn /Extra/modules/Keylayout.dylib +uvHO@\ dk!jD}AQ1O(u[uv cuv f\0"; + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "]wQx"; +"Utility_description" = "TSR[݈-[vjHh0"; + +"PrefPanel_title" = "|q}OP}Y-[bg"; +"PrefPanel_description" = "[݈ Chameleon |q}OP}Y-[bg0"; + +"SMBIOSDefault_title" = "SMBios.plist"; +"SMBIOSDefault_description" = " smbios.plist {O /Extra/Configuration0"; + +"Documentation_title" = "feN"; +"Documentation_description" = "Chameleon KbR[݈SO(uvfeN0"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "_jx"; +"Options_description" = "uR^ /Extra/org.chameleon.Boot.plist Sx(u`v Chameleon _jxSgQ8hSxe0"; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "(-/f Yes) υ Wb_O(uNbv Chameleon _jxU0"; + +"GUI_title" = "GUI=No"; +"GUI_description" = "(-/f Yes) \P(u -_UKNWb_O(uNb0"; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "(-/f No) _jkubO(uPq}v Apple W:y(}v^pp g) +NO(u;NLgQ@b[KN boot.png0"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "(-/f No) NPxekub vco:yRrR@S_jxdkub0"; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "(-/f No) _U(u[\_j!j_( +NgQs +o`bc:y)0"; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "(-/f No) _U(u (W_jW:yxU] +Neo:yRrR@SS㉐g^vs0}nj +vR0֖6qgNǸof;NL|vu]z (WOULcdBf {S/f^8^ g(uvnj +0"; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "(-/f No) (W Chameleon eQ[bu_f\P &N(W cNau _|~~ eQ mach kernel iTOULcdBf-dM (-v) !j__jNwO(u0"; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "(-/f 64 MO) SU(u 32 MO!j__\gQ8h_j ^-v 64 MO_j0"; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "(-/f No) _U(u EHCI OckR SO_NUO +No BIOS bv EHCI @b g +kOUL0"; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "(-/f No) _U(u\YN*Y}aS-[b0gQ^0vR0dkRSS}aSX%RpgQ^ &N!qERvR0"; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "(-/f No) +\ BIOS -N!q HPET xKN Intel vfGrD};N_jg 7_6R_U HPET R0"; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "(-/f No) _U(u7_6R˄aw wnje fPR dkxSN˄&N_eu +NckxKNO w fPj0"; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "(-/f Yes) \P(u R_U(uv͑e_jOckR (Intel CPU \(u)0"; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "(-/f No) _U(u UHCI OckR0S(W2eQ OS X KNMR HQ͑n UHCI c6RhV0"; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "(-/f Yes) \P(u R_U(uvaԚX%RR0"; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "(-/f No) Lion \(u x(u Yes \ eQȓcv KernelCache &N_eu /Extra/Extensions T /System/Library/Extensions S Extensions.mkext0^p(W KernelCache ]gQ+T@b g_vERBf MbSU(u0"; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "(-/f No) _U(uaw wUR Vf eQg_N!kO wBfOX[vaw w fP0"; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States New=Yes"; +"CSTUsingSystemIO_description" = "(-/f No) c(u SystemIO registers ub C-States _CST veel0(^SOv FixedHW el)"; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "(-/f No) -[ Yes _eu;N_jg BIOS gQ^KN SSDT h SS Extra nje>Y-Nv SSDT nje0/Extra/SSDT.aml0"; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "(-/f No) 7_6Rub C2 State p{t CPU nrKa SN CPU (WnrKa NUeNORrKa0N,OxeW['YvQ{HegasO0"; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "(-/f No) 7_6Rub C3 State p{t CPU nrKa SN CPU (WnrKa NUeNORrKa0N,OxeW['YvQ{HegasO0"; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "(-/f No) 7_6Rub C4 State p{t CPU nrKa SN CPU (WnrKa NUeNORrKa0N,OxeW['YvQ{HegasO0"; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "(-/f No) _U(uRub CPU nO wrKavR (C-States) {t CPU nrKa SN CPU (WnrKa NUe +N TNORrKa0"; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "(-/f No) _U(uRub CPU RhsrKavR (P-States) {t CPU '`rKa SN CPU (W +N T ϑ N9eR0"; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "-[U^㉐g^p 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "-[U^㉐g^p 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "-[U^㉐g^p 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "-[U^㉐g^p 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "-[U^㉐g^p 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "-[U^㉐g^p 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "-[U^㉐g^p 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "-[U^㉐g^p 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "-[U^㉐g^p 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "-[U^㉐g^p 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "-[U^㉐g^p 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "(-/f No) _U(uo:yaSuP,nR0RX%R o:yaS GPU &NleQckxv-Pl\'`nj +0"; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "(-/f No) _U(u ATI EEPRom R S(W +N7Ro:yaS BIOS v`l NO(uO9ev Rom0ˊ}T +Tp 0VenderID_DeviceID_SubsysID.rom +0 >en Extra nje>Y0Y/Extra/1002_68C1_FD501179.rom0"; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "(-/f No) _U(u Nvidia EEPRom R S(W +N7Ro:yaS BIOS v`l NO(uO9ev Rom0ˊ}T +Tp 0VenderID_DeviceID.rom +0 >en Extra nje>Y0Y/Extra/10de_0614.rom0"; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "(-/f No) _U(u Nvidia VBIOS R0Pݑ +\ Nvidia o:yaSvSxex ATI o:yaSˊRO(u0_U(uSo:yaSSxe S(Wo:yaSnj +-No:y ROM OckHr nj +0"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "-v !j_"; +"Verbose_description" = "O(u (-v) !j_{veQ AQ1`O(WU^ +NS r T OS X gQ8h iQ(W_jBf"uuv} +o`0/f(W_jBfcdOULvW,g(ul0"; + +"Singleusermode_title" = "-s UNO(u!j_"; +"Singleusermode_description" = "O(u (-s) UNO(u!j_{veQ (WcdOULBf Se(W_jO(u (-s) 2eQ OS X v BSD/Unix }TN!j_0"; + +"Ignorecaches_title" = "-f _eu Caches"; +"Ignorecaches_description" = "O(u (-f) _eu Caches !j_{veQ &N^ke_j_Pvvx FOS}1u_euv Caches NO OS X SN͑e eQ@b gMOe|q}vv kext jHh0"; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "S(WgN|q} +Ncd 'PCI configuration begin' v/00x2000 /f kIOPCIConfiguratorPFM64 flag S(W IOPCIFamily v source code -N~b0Rvܕ +o`0"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "S(WgN|q} +Ncd 'PCI configuration begin' v/00x3000 /f kIOPCIConfiguratorPFM64 flag S(W IOPCIFamily v source code -N~b0Rvܕ +o`0"; + + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion \(u0\P(u 'low power wake' vR (WU^aw wUKN_ gBfSg|vuU^ўO\vrl0"; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "_ Mac uvHO@\"; +"mac-de_description" = "O(u_ Wv Mac uvvuvHO@\"; + +"mac-es_title" = "sYr Mac uvHO@\"; +"mac-es_description" = "O(usYrv Mac uvvuvHO@\"; + +"mac-fr_title" = "l Mac uvHO@\"; +"mac-fr_description" = "O(ul Wv Mac uvvuvHO@\"; + +"mac-it_title" = "a'Y)R Mac uvHO@\"; +"mac-it_description" = "O(ua'Y)Rv Mac uvvuvHO@\"; + +"mac-se_title" = "^txQ Mac uvHO@\"; +"mac-se_description" = "O(u^txQv Mac uvvuvHO@\"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "l PC uvHO@\"; +"pc-fr_description" = "O(ul Wv PC uvvuvHO@\"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "gQ];NL"; +"Embed_description" = "Embed\ !|UNSe}o boot Bf gQ](W Chameleon ሄv;NL. "; + +"Legacy_title" = "Pq};NL"; +"Legacy_description" = "LegacyChameleon v2.0 RC1 vSY-;NL."; + +"Default_title" = "-;NL"; +"Default_description" = "DefaultChameleon v2.0 RC5 veHr-;NL."; + +"Bullet_title" = "P[H_;NL"; +"Bullet_description" = "BulletO NoSmokingBandit 2009.4 vN P\]SavP[H_;NL."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "c6Rx"; +"Control_description" = "-[c6R Chameleon vK\Oe_0"; + +// General +"General_title" = "N,x"; +"General_description" = "xSNNW,gvx0"; + +// KernelFlags +"KernelFlags_title" = "gQ8hSxe"; +"KernelFlags_description" = "xS gܕ kernel flags vT.zgQ8hSxe-[0"; + +// PowerManagement +"PowerManagement_title" = "n{t"; +"PowerManagement_description" = "NN-[n{tT speedstep vx0"; + +// Resolution +"Resolution_title" = "㉐g^-["; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "o:yaSx"; +"Video_description" = "NN-[o:yaSvx0"; + +// Keymaps +"Keymaps_title" = "uvHO@\"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = ";NLx"; +"Themes_description" = "6eƖvNN;NL{O0 +S(W http://forum.voodooprojects.org/index.php/board,7.0.html ~b0RfYv;NL0"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = " +N[݈"; +"ChooseNone-Resolution_description" = " +NxS[݈NUOU^㉐g^0"; + +"ChooseNone-keylayout_title" = " +N[݈"; +"ChooseNone-keylayout_description" = " +NxS[݈NUOuvHO@\0"; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/zh_TW.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/zh_TW.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/zh_TW.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,60 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset136 STHeitiTC-Light;\f2\fnil\fcharset134 STHeitiSC-Light; +} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\pard\qc + +\f1 \cf2 \'bd\'d0\'a4\'c5\'a6\'77\'b8\'cb\'a8\'ec +\f0 \cf2 Apple +\f1 \cf2 \'aa\'ba +\f0 \cf2 Macintosh +\f1 \cf2 \'b9\'71\'b8\'a3 +\f0 \cf2 \ +\pard\qc + +\fs22 \cf0 \ +\ +\pard\qc + +\f2 \cf0 \'e9\'5f\'b0\'6c\'d5\'df +\f0 :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +\pard\qc + +\f2 \cf0 \'b8\'d0\'d6\'78 +\f0 :\ +\pard\qc + +\b0 \cf0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\f2\b \cf0 \'b7\'e2\'d1\'62\'d5\'df +\f0 :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language +\f1 \'c2\'bd\'c4\'b6 +\f0 : crazybirdy, Ulimate\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/zh_TW.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/zh_TW.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/zh_TW.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset134 STHeitiSC-Light;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ + +\f1 \'b0\'b2\'d1\'62\'b3\'cc\'d0\'f2\'d2\'d1\'bd\'9b\'cd\'ea\'b3\'c9 +\f0 \ + +\f1 \'81\'4b\'d4\'da\'df\'78\'93\'f1\'b0\'b2\'d1\'62\'b5\'c4\'b7\'d6\'b8\'ee\'85\'5e\'bd\'a8\'c1\'a2 +\f0 \cf2 \ +@LOG_FILENAME@\cf3 +\f1 \cf0 \'bc\'6f\'e4\'9b\'ce\'c4\'bc\'fe\'a1\'a3 +\f0 \cf2 \ +\ + +\f1 \cf0 \'d5\'88 +\f0 +\f1 \cf4 \'d4\'94\'e9\'86\'bc\'6f\'e4\'9b\'ce\'c4\'bc\'fe +\f0 \cf0 \ + +\f1 \'b4\'5f\'d5\'4a\'b0\'b2\'d1\'62\'ca\'c7\'b7\'f1\'b3\'c9\'b9\'a6\'a3\'ac\'81\'4b\'b1\'a3\'c1\'f4\'b0\'b2\'d1\'62\'bc\'6f\'e4\'9b\'ce\'c4\'bc\'fe\'82\'e4\'b2\'e9\'a1\'a3 +\f0 \ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/zh_TW.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/zh_TW.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/zh_TW.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/he.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/he.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/he.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

חמליאון זה שילוב של רכיבי בוטלודרים שונים.
הוא מבוסס על יישום fake EFI של David Elliott לפרויקט boot-132 של אפל.
חמליאון מגיע עם תכונות עיקריות הבאות:

+


+

תכונות חדשות בחמליאון גרסה 2.0

+


+

- ממשק משתמש בעל התאמה אישית מלאה שמביאה צבעים לDarwin Bootloader.

+

- התחול דיסק התקנת OSX ריטייל על ידי העלאת ramdisk בלי להיעזר בתכנות נוספות.

+

- היברנציה. ליהנות מחזרת המערכת שלך ממצב היברנציה בעזרת preview image.

+

- עקיפת SMBIOS לשינוי ערכי מפעל של נתוני SMBIOS.

+

- עקיפת DSDT לשימוש בDSDT בהתאמה אישית אשר יכול לפתור מספר בעיות.

+

- אינג'קשן של Device Property באמצעות device-properties string.

+

- היבריד של boot0/boot1h לכוננים המחולקים בשיטות MBR ו GPT.

+

- קוד זיהוי אוטומטי של FSB אפילו למעבדי AMD החדשים.

+

- תמיכה בApple Software RAID.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

לקבלת מידע נוסף, אנא בקרו ב: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/he.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/he.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/he.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "       ."; +"ERROR_INSTALL" = "        ."; + +"Newer_Package_Installed_message" = "      "; +"Intel_Mac_message" = "        "; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Install Type"; +"InstallType_description" = "Choose to perform a new installation or upgrade an existing installation."; + +"New_title" = "New Installation"; +"New_description" = "Backup an existing /Extra folder, if found on the target partition. A new one will be created if any options are chosen from the installer, other than the Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Merge an existing /Extra folder, if found on the target, with any options chosen from the installer, other than the Bootloader. The original /Extra folder will be backed up."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon requires three essential files. (in simple terms) +boot0 (On the drive's MBR) responsible for loading boot1. +boot1 (On the partition's boot-sector) to finding boot2. +boot2 (On the partition's root directory) for loading kernel etc."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "  "; + +"EFI_title" = "EFI"; +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + +"noboot_title" = "Don't install the Bootloader"; +"noboot_description" = "Useful if you only want to install the extra's."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. +This is currently only used by the uClibc++ library. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "This module reads the edid information from the monitor attached to the main display. +The module is currently not integrated into trunk and has minimal uses as it stands. +Additionally, the module will patch the vesa modes available in pre intel hd graphics cards to provide proper resolution while booting."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. +*Please note that rtti and exceptions has both been disabled. +Source: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "This module permits the user to define the keyboard key mappings. This module and associated keymaps are installed by default."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilities"; +"Utility_description" = "Optional files to help setup"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Settings"; +"Options_description" = "    "; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Hides Chameleon's boot banner in GUI. This is the text that is drawn at the top left corner of the screen displaying the release version etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "  ,  GUI=n  org.chameleon.Boot.plist"; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Use the legacy 'dark grey' apple logo on the light grey screen for the boot process rather than the boot.png in the theme."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauses the boot process after Chameleon has finished it's setup then waits for a key press before it starts the mach kernel. Useful when combined with verbose boot for troubleshooting."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + +"EHCIacquire_title" = "EHCIacquire"; +"EHCIacquire_description" = "  org.chameleon.Boot.plist,      EHCI  =y "; + +"EthernetBuiltIn_title" = "EthernetBuiltIn"; +"EthernetBuiltIn_description" = " EthernetBuiltIn=y  org.chameleon.Boot.plist,     'built-in'  ethernet ."; + +"ForceHPET_title" = "ForceHPET"; +"ForceHPET_description" = "  org.chameleon.Boot.plist,    HPET  '  Intel,     .ForceHPET=y "; + +"ForceWake_title" = "ForceWake"; +"ForceWake_description" = "  org.chameleon.Boot.plist,     sleep images.ForceWake=y "; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disables the automatically enabled restart fix."; + +"UHCIreset_title" = "UHCIreset"; +"UHCIreset_description" = "  com.apple.Boot.plist,     UHCI   OSX.UHCIreset=y "; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Enable specific Processor power state, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Enable specific Processor power state, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Enable specific Processor power state, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler"; +"GraphicsEnabler_description" = "  org.chameleon.Boot.plist,         NVIDIA.GraphicsEnabler=y "; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Enables UseAtiROM options."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Enables VBIOS option"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "   ."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = " The Bullet   NoSmokingBandit"; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Settings to control how Chameleon works."; + +// General +"General_title" = "General Options"; +"General_description" = "Choose from a selection of base options."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Choose from a selection of kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "A selection of options that deal with video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "     +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/he.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/he.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/he.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Do not install to an Apple Macintosh computer\ + +\fs22 \cf0 \ +\ +Developers :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Thanks to :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: ???\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/he.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/he.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/he.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +The scripts have completed and a file\ + named \cf2 @LOG_FILENAME@\cf3 has been\ +written to the root of your chosen partition.\ +\ +\cf0 Please \cf4 read it\cf0 to find out if the installation was\ +successful and keep it for a record of what was done.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/he.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/he.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/he.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/id.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/id.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/id.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon adalah kombinasi dari berbagai macam komponen boot loader. Berbasiskan implementasi EFI palsu oleh David Elliott yang ditambahkan pada proyek Apple’s Boot-132

+


+

Fitur terbaru di Chameleon 2.0

+


+

- GUI yang dapat diubah-suaikan dengan bebas untuk mewarnai Bootloader Darwin.

+

- Jalankan DVD retail secara langsung dengan memuat sebuah image ramdisk tanpa bantuan program lain.

+

- Hibernasi. Nikmati melanjutkan pekerjaan pada Mac OS X anda dengan “pratinjau image”.

+

- SMBIOS override unutk memodifikasi SMBIOS bawaan.

+

- DSDT override unutk menggunakan modifikasi tertentu dari DSDT yang dapat menyelesaikan isu-isu tertentu.

+

- Device Property Injection melalui string device-properties.

+

- hybrid boot0 / boot1h for MBR dan Media partisi GPT.

+

- Pendeteksian kode FSB Secara otomatis walaupun pada PC AMD.

+

- Dukungan Apple Software RAID.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Untuk informasi lebih lanjut, kunjungi: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/id.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/id.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/id.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Perangkat lunak ini harus dipasang pada media boot."; +"ERROR_INSTALL" = "Media ini tidak memenuhi syarat untuk pembaruan."; + +"Newer_Package_Installed_message" = "Versi terbaru dari Chameleon sudah terpasang."; +"Intel_Mac_message" = "Perangkat lunak ini tidak dapat dipasang di komputer ini."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Install Type"; +"InstallType_description" = "Anda dapat memilih pemasangan baru atau meperbarui instalasi yang sudah ada."; + +"New_title" = "New Installation"; +"New_description" = "Menyimpan direktori Extra jika ditemukan di partisi tujuan. Direktori Extra akan dibuat jika ada opsi yang dipilih dari penginstall selain Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Menggunakan direktori Extra jika ditemukan di partisi tujuan, jika ada opsi yang dipilih dari penginstall selain Bootloader."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Chameleon memerlukan tiga berkas penting. (dalam kondisi sederhana) +boot0 (Pada drive MBR) bertanggung jawab dalam memuat boot1. +boot1 (Pada boot-sector partisi) untuk menemukan boot2. +boot2 (Pada root-folder partisi) untuk memuat kernel, dll."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "Opsi pemasangan ini memasang ketiga berkas penting dan membuat berkas boot0 ke 440 bytes pertama dari MBR, jadi tidak akan merusak bagian Sistem Operasi Windows. Kemudian boot0 mencari berkas boot1h pada partisi pertama yang aktif. +* Metode pemasangan ini mengaktifasi pilihan partisi yang anda sudah pilih."; + +"EFI_title" = "EFI"; +"EFI_description" = "Pasang berkas Chameleon ke partisi normal EFI yang tersembunyi Dengan menggunakan boot0 atau boot0md bergantung pada system anda tanpa menghapus partisi windows yang ada (jika tersedia)."; + +"noboot_title" = "Nihil"; +"noboot_description" = "Tidak memasang Chameleon (berguna jika Anda hanya ingin memasang komponen tambahan)"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modul Chameleon"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "Modul ini menyediakan librari standar c kepada modul untuk menyambung jika librari yang disediakan oleh chameleon kurang memadai. +Biasanya digunakan oleh librari uClibc++. +Sumber: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolusi"; +"AutoReso_description" = "Modul ini membaca informasi EDID dari monitor terpasang ke tampilan utama. Modul tidak langsung terintegrasi ke dalam bagasi 'trunk' dan telah digunakan seminimal mungkin pada saat dijalankan. Selain itu, modul akan patch mode vesa tersedia dalam pra intel hd kartu grafis untuk memberikan resolusi yang tepat saat booting."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Modul ini menyediakan minimalisme librari runtime c++ untunk digunakan pada modul lainnya. +Modul ini tidak menyediakan fungsionalitas dengan sendirinya, melainkan digunakan untuk memungkinkan untuk bahasa c + + untuk dipakai dalam modul lainnya. +Perlu diketahui bahwa rtti dan exceptions keduanya sudah dinon-aktifkan. +Sumber: http://cxx.uclibc.org/ +Ketergantungan: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Module ini memperkenankan anda memapping keyboard sendiri."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utility"; +"Utility_description" = "Berkas tambahan untuk membantu pemasangan"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Memasang Panel Preferensi untuk Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Menyalin contoh berkas smbios.plist di /Extra/Configuration."; + +"Documentation_title" = "Dokumentasi"; +"Documentation_description" = "Dokumentasi untuk pemasangan manual dan pemakaian Chameleon"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Opsi Boot"; +"Options_description" = "Membuat berkas /Extra/com.apple.Boot.plist dan memilih pilihan anda untuk mengontrol pengaturan Chameleon anda."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Menyembunyikan Judul pada tampilan awal Chameleon pada modus GUI."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Menonaktifkan GUI."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Menggunakan logo asli apple (abu-abu pada latar belakang putih) pada saat proses booting daripada berkas boot.png yang ada pada tema."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Menampilkan pilihan partisi tanpa adanya waktu time-out."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Mengaktifkan mode 'sunyi' (tanpa pesan ataupun pertanyaan)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Menon-aktifkan rincian resolusi layar dan partisi."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Memberhentikan sejenak proses boot setelah Chameleon selesai mengatur konfigurasinya dan menunggu untuk tombol untuk ditekan sebelum memulai mach kernel. Berguna pada saat dikombinasikan dengan 'verbose boot' untuk memecahkan masalah."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Jalankan kernel dalam mode 32bit daripada mode biasanya (mode 64bit)."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Mengaktifkan opsi untuk membetulkan semua isu kepemilikan EHCI yang dikarenakan BIOS yang rusak."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Mengaktifkan opsi dalam menambah  integrasi (built-in) ke perangkat ethernet anda."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Menghidupkan HPET pada chipset Intel, untuk BIOS yang tidak menyertakan opsi ini."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Opsi ini mengizinkan anda untuk melewati 'imaj tidur yang rusak'."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Menonaktifkan perbaikan pada 'proses mulai-ulang secara otomatis.' "; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Mengaktifkan opsi untuk mengatur-ulang pengontrol UHCI sebelum menyalakan OSX."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Mematikan opsi pengenalan RAM yang secara otomatis dinyalakan."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Hanya untuk OSX Lion. Menyalakan loading of dari kernel yang sudah dilink. ini akan mengabaikan /E/E and /S/L/E. gunakan ini JIKA anda telah mengetahui semua sudah mengandung yang anda perlukan."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Mencoba untuk memuat sleep image yang telah disimpan."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "New - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "C-State Baru! Metode generasi CST dengan menggunakan registrasi SystemIO daripada FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Menghiraukan tabel SSDT motherboard yang terintegrasi."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Mengaktifkan bagian spesifik power Prosesor tertentu, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Mengaktifkan bagian spesifik power Prosesor tertentu, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Mengaktifkan bagian spesifik power Prosesor tertentu, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Mengaktifkan secara otomatis processor C-States."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Mengaktifkan secara otomatis processor P-States."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Menset resolusi ke 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Menset resolusi ke 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Menset resolusi ke 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Menset resolusi ke 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Menset resolusi ke 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Menset resolusi ke 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Menset resolusi ke 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Menset resolusi ke 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Menset resolusi ke 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Menset resolusi ke 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Menset resolusi ke 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Mengaktifkan opsi untuk mendeteksi otomatis GPU berbasis NVIDIA dan memasukkan info-info yang benar."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Mengaktifkan opsi 'Gunakan ROM ATi'."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Mengaktifkan opsi 'Gunakan ROM nVidia'."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Mengaktifkan opsi VBIOS."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Menyalakan modus terlampir (verbose) dari Chameleon dan kernel OS X kernel saat booting. Penting untuk penyelesaian masalah"; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Modus opsi penyelesaian masalah dengan booting S X's BSD/Unix ke modus teks input."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Bukan merupakan opsi boot yang biasa digunakan sehari hari. Tapi sangat berguna jika anda ingin OS X meload semua berkas dari direktori system daripada yang sudah dicache pre-built."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Mengatur bootflag npci=0x2000 pada opsi Kernel"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Mengatur bootflag npci=0x3000 pada opsi Kernel"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Hanya untuk Lion. Mematikan fitur penyalaan rendah daya 'low power wake'yang dapat mengakibatkan layar gelap setelah komputer dalam posisi tidur."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "Mac Keyboard Jerman"; +"mac-de_description" = "Menggunakan Mac keyboard Jerman"; + +"mac-es_title" = "keyboard Mac Spanyol"; +"mac-es_description" = "Menggunakan keyboard Mac Spanyol"; + +"mac-fr_title" = "keyboard Mac Perancis"; +"mac-fr_description" = "Menggunakan keyboard Mac Perancis"; + +"mac-it_title" = "keyboard Mac Italia"; +"mac-it_description" = "Menggunakan keyboard Mac Italia"; + +"mac-se_title" = "keyboard Mac Swedia"; +"mac-se_description" = "Menggunakan keyboard Mac Swedia"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "PC Keyboard Perancis"; +"pc-fr_description" = "Menggunakan PC keyboard Perancis"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Versi simple yang lebih kecil daripada tema dasar yang baru digunakan para seat membuat versi dari Chameleon yang dimana memerlukan sebuah tema yang 'embedded'. "; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Tampilan dasar awal Chameleon"; + +"Default_title" = "Standard"; +"Default_description" = "Tampilan dasar baru Chameleon."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Tema yang cantik dan simple dari NoSmokingBandit sejak April 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Opsi Kontrol"; +"Control_description" = "Setting untuk mengotrol kerja Chameleon."; + +// General +"General_title" = "Opsi umum"; +"General_description" = "Pemilihan setting umum."; + +// KernelFlags +"KernelFlags_title" = "Opsi Kernel"; +"KernelFlags_description" = "Pilihan seleksi opsi kernel."; + +// PowerManagement +"PowerManagement_title" = "Manajemen Daya"; +"PowerManagement_description" = "Pilihan yang berhubungan dengan manajemen daya prosesor dan perubahan kecepatan prosesor otomatis (speedstep)."; + +// Resolution +"Resolution_title" = "Resolusi"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "Opsi seleksi untuk video."; + +// Keymaps +"Keymaps_title" = "Layout keyboard"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Tema"; +"Themes_description" = "Koleksi dari tema bawaan +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Jangan pilih resolusi."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Jangan pilih layout keyboard."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/id.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/id.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/id.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Jangan dinstall Apple Macintosh ASLI\ + +\fs22 \cf0 \ +\ +Tim pengembang :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Berterima kasih kepada :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Pakete :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: Rudolf Tingginehe & Babiloe\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/id.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/id.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/id.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Skrip ini telah selesai dan telah disematkan pada\ + berkas \cf2 @LOG_FILENAME@\cf3 yang ditaruh di\ +direktori utama dari partisi yang terinstall.\ +\ +\cf0 Silahkan \cf4 baca\cf0 berkas itu dan perhatikan apakah instalasi telah\ +sukses, dan simpan berkas tersebut jika selesai.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Hak kopi \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/id.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/id.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/id.lproj/License.rtf (revision 1843) @@ -0,0 +1,446 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138 +{\fonttbl\f0\froman\fcharset0 Times-Roman;} +{\colortbl;\red255\green255\blue255;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww25400\viewh19520\viewkind0 +\deftab720 +\pard\pardeftab720 + +\f0\fs24 \cf0 \cb2 APPLE LISENSI PUBLIK SUMBER \ +Versi 2.0 - 6 Agustus 2003 \ +\ +Silakan baca Lisensi ini dengan seksama sebelum men-download software ini. Dengan men-download atau menggunakan software ini, Anda setuju untuk terikat oleh syarat-syarat Lisensi ini. Jika Anda tidak atau tidak dapat setuju dengan persyaratan Lisensi ini, jangan mengunduh atau menggunakan perangkat lunak. \ +\ +\pard\pardeftab720 +\cf0 \cb1 1. Umum; Definisi. \cb2 Lisensi ini berlaku untuk setiap program atau pekerjaan lain yang Apple Computer, Inc ("Apple") membuat tersedia untuk umum dan yang memuat pemberitahuan yang ditempatkan oleh Apple mengidentifikasi program seperti atau bekerja sebagai "Kode Asli" dan menyatakan bahwa itu adalah tunduk pada syarat \cb1 ini Sumber Lisensi Apple Publik versi 2.0 ("Lisensi"). Sebagaimana digunakan dalam Perjanjian Lisensi ini: \ +\ +\pard\pardeftab720 +\cf0 \cb2 1.1 "Hak Paten Berlaku" berarti: (a) dalam kasus di mana Apple adalah pemberi hak, (i) klaim paten yang sekarang atau selanjutnya diakuisisi, dimiliki oleh atau ditugaskan untuk Apple dan (ii) bahwa subjek penutup yang terkandung dalam Kode Asli, tetapi hanya sejauh yang diperlukan untuk menggunakan, mereproduksi dan / atau mendistribusikan Kode Asli tanpa pelanggaran; dan (b) dalam kasus di mana Anda adalah pemberi hak, (i) klaim paten yang sekarang atau selanjutnya diakuisisi, dimiliki oleh atau ditugaskan untuk Anda dan (ii) bahwa subjek meliputi materi di modifikasi Anda, dilakukan sendiri atau dalam kombinasi dengan Kode Asli. \ +\ +\pard\pardeftab720 +\cf0 \cb1 1.2 "Kontributor" berarti setiap orang atau entitas yang menciptakan atau memberikan kontribusi terhadap penciptaan Modifikasi. \ +\ +\pard\pardeftab720 +\cf0 \cb2 1,3 "Kode Covered" berarti Kode Asli, Modifikasi, kombinasi Kode Asli dan setiap Modifikasi, dan / atau bagian masing-masing daripadanya. \ +\ +1,4 "eksternal Menyebarkan" berarti: (a) untuk mensublisensikan, mendistribusikan atau sebaliknya membuat Kode Covered tersedia, secara langsung atau tidak langsung, kepada siapa pun selain Engkau; dan / atau (b) untuk menggunakan Kode Covered, sendirian atau sebagai bagian dari pekerjaan yang lebih besar , dengan cara apapun untuk memberikan layanan, termasuk tetapi tidak terbatas pada pengiriman konten, melalui komunikasi elektronik dengan klien lain selain Anda. \ +\ +1,5 "Larger Work" berarti sebuah karya yang menggabungkan Kode Covered atau bagian-bagiannya dengan kode tidak diatur oleh ketentuan Lisensi ini. \ +\ +\pard\pardeftab720 +\cf0 \cb1 1,6 "Modifikasi" berarti setiap tambahan, penghapusan dari, dan / atau mengubah \ +untuk, substansi dan / atau struktur dari Kode Asli, apapun sebelumnya \ +\pard\pardeftab720 +\cf0 \cb2 Modifikasi, kombinasi Kode Asli dan apapun sebelumnya \ +\pard\pardeftab720 +\cf0 \cb1 Modifikasi, dan / atau bagian masing-masing daripadanya. Bila kode \ +dirilis sebagai serangkaian file, Modifikasi adalah: (a) setiap tambahan \ +\pard\pardeftab720 +\cf0 \cb2 atau penghapusan dari isi file yang berisi Kode Covered; \ +\pard\pardeftab720 +\cf0 \cb1 dan / atau (b) setiap file baru atau representasi lain dari program komputer \ +pernyataan yang mengandung bagian dari Kode Covered. \ +\ +1,7 "Kode Asli" berarti (a) Source Code program atau lainnya \ +bekerja sebagai awalnya dibuat tersedia oleh Apple di bawah Lisensi ini, \ +termasuk Source Code dari setiap update atau upgrade untuk program seperti \ +\pard\pardeftab720 +\cf0 \cb2 atau karya yang dibuat tersedia oleh Apple di bawah Lisensi ini, dan yang telah \ +\pard\pardeftab720 +\cf0 \cb1 tegas diidentifikasi oleh Apple seperti itu dalam header file (s) seperti \ +\pard\pardeftab720 +\cf0 \cb2 pekerjaan, dan (b) kode objek dikompilasi dari Source Code tersebut dan \ +\pard\pardeftab720 +\cf0 \cb1 awalnya disediakan oleh Apple di bawah Lisensi ini. \ +\ +1,8 "Kode Sumber" berarti bentuk yang dapat dibaca manusia dari sebuah program atau \ +pekerjaan yang cocok untuk membuat modifikasi untuk itu, termasuk semua \ +modul yang dikandungnya, ditambah berkas-berkas definisi antarmuka yang terkait, \ +\pard\pardeftab720 +\cf0 \cb2 script yang digunakan untuk mengendalikan kompilasi dan instalasi dieksekusi \ +\pard\pardeftab720 +\cf0 \cb1 (Kode objek). \ +\ +1,9 "Anda" atau "Anda" berarti seorang individu atau badan hukum berolahraga \ +hak di bawah Lisensi ini. Untuk badan hukum, "Anda" atau "Anda" \ +termasuk setiap entitas yang mengendalikan, dikendalikan oleh, atau berada di bawah \ +\pard\pardeftab720 +\cf0 \cb2 pengendalian bersama dengan, Anda, dimana "kontrol" berarti (a) kekuasaan, langsung \ +atau tidak langsung, menyebabkan arah atau manajemen entitas tersebut, \ +apakah dengan kontrak atau sebaliknya, atau (b) kepemilikan lima puluh persen \ +(50%) atau lebih dari saham yang beredar atau kepemilikan menguntungkan \ +\pard\pardeftab720 +\cf0 \cb1 seperti entitas. \ +\ +2. \cb2 Menggunakan diizinkan; Kondisi & Pembatasan. \cb1 Tunduk pada ketentuan \ +dan ketentuan dari Lisensi ini, Apple dengan ini memberikan Anda, efektif pada \ +tanggal Anda menerima Lisensi ini dan download Kode Asli, sebuah \ +\pard\pardeftab720 +\cf0 \cb2 seluruh dunia, bebas royalti, lisensi non-eksklusif, dengan tingkat \ +Hak Paten Apple dan hak cipta meliputi Berlaku Asli \ +\pard\pardeftab720 +\cf0 \cb1 Kode, untuk melakukan hal berikut: \ +\ +2.1 Kode tidak dirubah. Anda dapat menggunakan, mereproduksi, menampilkan, \ +\pard\pardeftab720 +\cf0 \cb2 internal mendistribusikan dalam organisasi Anda, dan Eksternal Deploy \ +\pard\pardeftab720 +\cf0 \cb1 verbatim, dimodifikasi salinan Kode Asli, untuk komersial atau \ +tujuan non-komersial, asalkan dalam setiap contoh: \ +\ +(A) Anda harus mempertahankan dan mereproduksi dalam semua salinan Kode Asli yang \ +\pard\pardeftab720 +\cf0 \cb2 hak cipta dan pemberitahuan hak kepemilikan lainnya dan penolakan dari Apple sebagai \ +mereka muncul dalam Kode Asli, dan tetap utuh semua pemberitahuan yang dibuat dalam \ +\pard\pardeftab720 +\cf0 \cb1 Asli Kode yang mengacu kepada Lisensi ini; dan \ +\ +(B) Anda harus menyertakan sebuah salinan dari Lisensi ini dengan setiap salinan Source \ +Kode Kode Tercakup dan dokumentasi Anda mendistribusikan atau eksternal \ +\pard\pardeftab720 +\cf0 \cb2 Menyebarkan, dan Anda mungkin tidak menawarkan atau memaksakan syarat pada Kode Sumber tersebut \ +yang mengubah atau membatasi Lisensi atau hak penerima ' \ +\pard\pardeftab720 +\cf0 \cb1 bawah ini, kecuali sebagaimana diizinkan dalam Bagian 6. \ +\ +2.2 Modifikasi Kode. Anda dapat memodifikasi Kode Covered dan menggunakan, mereproduksi, \ +menampilkan, melakukan, internal mendistribusikan dalam organisasi Anda, dan \ +Menyebarkan Modifikasi eksternal Anda dan Kode Covered, untuk komersial \ +atau non-komersial, asalkan dalam setiap contoh Anda juga \ +memenuhi semua persyaratan ini: \ +\ +(A) Anda harus memenuhi semua kondisi dari Bagian 2.1 sehubungan dengan \ +Kode Sumber Kode Covered; \ +\ +(B) Anda harus menduplikasi, sejauh itu belum ada, \ +\pard\pardeftab720 +\cf0 \cb2 perhatikan pada Lampiran A di setiap file dari Source Code dari semua Anda \ +\pard\pardeftab720 +\cf0 \cb1 Modifikasi, dan menyebabkan file dimodifikasi untuk membawa pemberitahuan menyolok yang \ +menyatakan bahwa Anda mengubah file dan tanggal perubahan tersebut, dan \ +\ +(C) Jika Anda eksternal Menyebarkan modifikasi Anda, Anda harus membuat \ +Kode Sumber dari semua Modifikasi Anda eksternal dikerahkan baik \ +\pard\pardeftab720 +\cf0 \cb2 tersedia untuk mereka kepada siapa Anda harus dikerahkan eksternal Anda \ +\pard\pardeftab720 +\cf0 \cb1 Modifikasi, atau tersedia untuk umum. Kode Sumber dari eksternal Anda \ +Modifikasi digunakan harus dirilis dibawah ketentuan yang ditetapkan dalam \ +Lisensi ini, termasuk lisensi hibah diatur dalam Bagian 3 \ +di bawah ini, selama Anda eksternal Menyebarkan Kode Covered atau dua belas \ +(12) bulan dari tanggal Deployment Eksternal awal, mana yang \ +lagi. \cb2 Anda sebaiknya mendistribusikan Kode Sumber Anda \ +\cb1 Eksternal dikerahkan Modifikasi elektronik (download misalnya dari \ +situs web). \ +\ +2.3 Distribusi Versi executable. Selain itu, jika Anda \ +Menyebarkan eksternal Kode Covered (Kode Asli dan / atau Modifikasi) di \ +kode objek, bentuk dieksekusi saja, Anda harus menyertakan menonjol \ +\pard\pardeftab720 +\cf0 \cb2 pemberitahuan, dalam kode itu sendiri serta dalam dokumentasi terkait, \ +\pard\pardeftab720 +\cf0 \cb1 menyatakan bahwa Kode Sumber dari Kode Tercakup tersedia di bawah \ +\pard\pardeftab720 +\cf0 \cb2 Lisensi ini dengan informasi tentang bagaimana dan di mana untuk mendapatkan seperti \ +\pard\pardeftab720 +\cf0 \cb1 Kode Sumber. \ +\ +2.4 Hak Pihak Ketiga. Anda secara tegas mengakui dan menyetujui bahwa \ +\pard\pardeftab720 +\cf0 \cb2 meskipun Apple dan setiap Contributor hibah lisensi untuk mereka \ +\pard\pardeftab720 +\cf0 \cb1 bagian masing-masing Kode Tercakup diuraikan di sini, tidak ada \ +jaminan yang disediakan oleh Apple atau Contributor bahwa Covered \ +Kode tidak melanggar paten atau kekayaan intelektual lain \ +hak dari entitas lain. Apple dan setiap Kontributor melepaskan setiap \ +\pard\pardeftab720 +\cf0 \cb2 kewajiban kepada Anda untuk klaim dibawa oleh setiap entitas lain berdasarkan \ +\pard\pardeftab720 +\cf0 \cb1 pelanggaran hak kekayaan intelektual atau sebaliknya. Sebagai \ +\pard\pardeftab720 +\cf0 \cb2 kondisi untuk melaksanakan hak dan lisensi yang diberikan di bawah ini, Anda \ +\pard\pardeftab720 +\cf0 \cb1 dengan ini mengasumsikan tanggung jawab untuk mengamankan setiap intelektual lainnya \ +hak milik yang dibutuhkan, jika ada. Misalnya, jika paten pihak ketiga \ +lisensi yang diperlukan untuk memungkinkan Anda untuk mendistribusikan Kode Covered, itu \ +Anda bertanggung jawab untuk memperoleh lisensi bahwa sebelum mendistribusikan \ +Kode Covered. \ +\ +3. Hibah Anda. \cb2 Dalam pertimbangan, dan sebagai kondisi untuk, yang \ +\cb1 lisensi yang diberikan kepada Anda di bawah Lisensi ini, Anda dengan ini memberikan kepada \ +orang atau badan yang menerima atau mendistribusikan Kode Covered dibawah ini \ +Lisensi non-eksklusif, bebas royalti, terus-menerus, lisensi tidak dapat dibatalkan, \ +Berlaku Anda di bawah Hak Paten dan kekayaan intelektual lainnya \ +\pard\pardeftab720 +\cf0 \cb2 hak (selain paten) yang dimiliki atau dikendalikan oleh Anda, untuk menggunakan, \ +\pard\pardeftab720 +\cf0 \cb1 mereproduksi, menampilkan, mengubah, mensublisensikan, mendistribusikan dan \ +Menyebarkan Modifikasi eksternal Anda dari lingkup yang sama dan luasnya sebagai \ +Apple lisensi dalam Bagian 2.1 dan 2.2 di atas. \ +\ +4. Pekerjaan lebih besar. Anda dapat membuat pekerjaan yang lebih besar dengan menggabungkan Covered \ +\pard\pardeftab720 +\cf0 \cb2 Kode dengan kode lain tidak diatur oleh ketentuan dari Lisensi ini dan \ +\pard\pardeftab720 +\cf0 \cb1 mendistribusikan Larger Work sebagai produk tunggal. Dalam setiap contoh tersebut, \ +Anda harus memastikan persyaratan Lisensi ini dipenuhi untuk \ +Kode Covered atau bagiannya. \ +\ +5. Keterbatasan pada Lisensi Paten. Kecuali secara tegas dinyatakan dalam \ +Bagian 2, tidak ada hak paten lainnya, tersurat maupun tersirat, yang diberikan oleh \ +Apel di sini. Modifikasi dan / atau lebih besar mungkin memerlukan tambahan Pekerjaan \ +lisensi paten dari Apple Apple yang dapat memberikan dalam sendiri \ +kebijaksanaan. \ +\ +6. Ketentuan Tambahan. \cb2 Anda dapat memilih untuk menawarkan, dan mengenakan biaya untuk, \ +\cb1 garansi, dukungan, ganti rugi atau kewajiban kewajiban dan / atau \ +hak sesuai dengan lingkup lisensi yang diberikan di sini \ +("Ketentuan Tambahan") ke satu atau lebih penerima Kode Covered. \ +Namun, Anda dapat melakukannya hanya atas nama Anda sendiri dan sebagai satu-satunya Anda \ +\pard\pardeftab720 +\cf0 \cb2 tanggung jawab, dan bukan atas nama Apple atau Contributor manapun. \cb1 Anda \ +harus mendapatkan persetujuan penerima bahwa Ketentuan Tambahan tersebut \ +yang ditawarkan oleh Anda sendiri, dan Anda setuju untuk mengganti kerugian, membela, \ +dan tahan Apple dan setiap Kontributor tidak berbahaya untuk segala kewajiban \ +\cb2 dikeluarkan oleh atau klaim menegaskan terhadap Apple atau Contributor tersebut dengan \ +\pard\pardeftab720 +\cf0 \cb1 alasan apapun Ketentuan Tambahan tersebut. \ +\ +7. Versi Lisensi. \cb2 Apple dapat mempublikasikan direvisi dan / atau baru \ +versi dari Lisensi ini dari waktu ke waktu. \cb1 Setiap versi akan diberikan \ +nomor membedakan versi. Setelah Kode asli telah diterbitkan \ +\pard\pardeftab720 +\cf0 \cb2 bawah versi tertentu dari Lisensi ini, Anda dapat terus menggunakannya \ +\pard\pardeftab720 +\cf0 \cb1 di bawah persyaratan versi itu. Anda juga dapat memilih untuk menggunakan seperti \ +\pard\pardeftab720 +\cf0 \cb2 Asli Kode di bawah persyaratan dari setiap versi berikutnya ini \ +\pard\pardeftab720 +\cf0 \cb1 Lisensi diterbitkan oleh Apple. \cb2 Tidak ada yang lain selain Apple memiliki hak untuk \ +\cb1 memodifikasi istilah yang berlaku untuk Kode Covered dibuat di bawah ini \ +Lisensi. \ +\ +8. \cb2 TIDAK ADA JAMINAN ATAU DUKUNGAN. \cb1 Kode Covered mungkin berisi secara keseluruhan atau \ +bagian pra-rilis, belum teruji, atau tidak sepenuhnya diuji bekerja. Para Covered \ +Kode dapat mengandung kesalahan yang dapat menyebabkan kegagalan atau kehilangan data, dan \ +mungkin tidak lengkap atau mengandung ketidakakuratan. Anda secara tegas mengakui \ +\pard\pardeftab720 +\cf0 \cb2 dan setuju bahwa penggunaan Kode Covered, atau bagiannya, adalah di \ +\pard\pardeftab720 +\cf0 \cb1 Anda tunggal dan seluruh risiko. KODE DICAKUP INI DISEDIAKAN "SEBAGAIMANA ADANYA" DAN \ +TANPA JAMINAN, ATAU UPGRADE DUKUNGAN DARI APAPUN DAN APPLE DAN \ +APPLE'S PEMBERI LISENSI (S) (SECARA KOLEKTIF DISEBUT SEBAGAI "APPLE" UNTUK \ +\pard\pardeftab720 +\cf0 \cb2 MAKSUD DARI BAGIAN 8 DAN 9) DAN SEMUA KONTRIBUTOR TEGAS MENOLAK \ +\pard\pardeftab720 +\cf0 \cb1 SEMUA JAMINAN DAN / ATAU KONDISI, TERSURAT MAUPUN TERSIRAT, TERMASUK, NAMUN \ +TIDAK TERBATAS PADA, JAMINAN TERSIRAT DAN / ATAU KETENTUAN \ +DIPERDAGANGKAN, KUALITAS YANG MEMUASKAN, KELAYAKAN UNTUK TUJUAN TERTENTU \ +\pard\pardeftab720 +\cf0 \cb2 TUJUAN, DARI KEAKURATAN, kenikmatan QUIET, DAN NONPELANGGARAN DARI KETIGA \ +\pard\pardeftab720 +\cf0 \cb1 HAK PIHAK. APPLE DAN KONTRIBUTOR SETIAP TIDAK MENJAMIN TERHADAP \ +\pard\pardeftab720 +\cf0 \cb2 GANGGUAN dengan kenikmatan ANDA KODE DICAKUP, BAHWA \ +\pard\pardeftab720 +\cf0 \cb1 FUNGSI YANG TERDAPAT DALAM KODE DICAKUP AKAN MEMENUHI PERSYARATAN ANDA, \ +BAHWA PENGOPERASIAN DARI KODE DICAKUP AKAN TERGANGGU ATAU \ +BEBAS KESALAHAN, ATAU BAHWA CACAT PADA KODE DICAKUP AKAN DIPERBAIKI. NO \ +INFORMASI LISAN MAUPUN TERTULIS ATAU NASIHAT YANG DIBERIKAN OLEH APPLE, AN APPLE \ +PERWAKILAN RESMI ATAU KONTRIBUTOR APAPUN AKAN MENCIPTAKAN JAMINAN. \ +\pard\pardeftab720 +\cf0 \cb2 Anda mengakui bahwa Kode Covered tidak dimaksudkan untuk digunakan dalam \ +\pard\pardeftab720 +\cf0 \cb1 pengoperasian fasilitas nuklir, navigasi pesawat terbang, komunikasi \ +sistem, atau mesin kontrol lalu lintas udara dalam hal kegagalan \ +Kode Covered bisa mengakibatkan kematian, cedera pribadi, atau berat \ +fisik atau kerusakan lingkungan. \ +\ +9. BATASAN TANGGUNG JAWAB. SEPANJANG TIDAK DILARANG OLEH HUKUM, TIDAK DI \ +\pard\pardeftab720 +\cf0 \cb2 KEADAAN APAPUN APPLE ATAU KONTRIBUTOR TIDAK BERTANGGUNG JAWAB UNTUK SETIAP APAPUN INSIDENTAL, \ +\pard\pardeftab720 +\cf0 \cb1 KHUSUS, TIDAK LANGSUNG ATAU KERUSAKAN AKIBAT YANG TIMBUL DARI ATAU BERKAITAN \ +\pard\pardeftab720 +\cf0 \cb2 UNTUK LISENSI INI ATAU PENGGUNAAN ANDA ATAU KETIDAKMAMPUAN UNTUK MENGGUNAKAN KODE DICAKUP, ATAU \ +BAGIAN DARINYA, BAIK BERDASARKAN TEORI KONTRAK, JAMINAN, \ +\pard\pardeftab720 +\cf0 \cb1 KESALAHAN (TERMASUK KELALAIAN), TANGGUNG JAWAB PRODUK ATAU LAINNYA, BAHKAN JIKA \ +APPLE ATAU KONTRIBUTOR TERSEBUT TELAH DIBERITAHUKAN TENTANG KEMUNGKINAN TERSEBUT \ +KERUSAKAN DAN MESKIPUN KEGAGALAN DARI TUJUAN PENTING DARI APAPUN \ +PERBAIKAN. \cb2 BEBERAPA WILAYAH HUKUM TIDAK MENGIZINKAN PEMBATASAN KEWAJIBAN \ +\cb1 KERUSAKAN INSIDENTAL ATAU AKIBAT, SEHINGGA PEMBATASAN INI MUNGKIN TIDAK BERLAKU \ +UNTUK ANDA. Dalam total kewajiban akan ada acara Apple untuk Anda untuk semua \ +kerusakan (selain mungkin diperlukan oleh hukum yang berlaku) di bawah ini \ +\pard\pardeftab720 +\cf0 \cb2 Lisensi melebihi jumlah lima puluh dolar ($ 50.00). \ +\ +\pard\pardeftab720 +\cf0 \cb1 10. Merek Dagang. \cb2 Lisensi ini tidak memberikan hak untuk menggunakan \ +\cb1 merek dagang atau nama dagang "Apple", "Apple Computer", "Mac", "Mac OS", \ +"QuickTime", "QuickTime Streaming Server" atau merek dagang lainnya, \ +\pard\pardeftab720 +\cf0 \cb2 merek layanan, logo atau nama dagang milik Apple (secara kolektif \ +\pard\pardeftab720 +\cf0 \cb1 "Apple Marks") atau merek dagang apapun, merek layanan, logo atau nama dagang \ +milik Contributor manapun. Anda setuju untuk tidak menggunakan Merek Apple di \ +atau sebagai bagian dari nama produk yang berasal dari Kode Asli atau \ +\pard\pardeftab720 +\cf0 \cb2 untuk mendukung atau mempromosikan produk yang berasal dari Kode Asli lainnya \ +dibandingkan secara tegas diizinkan oleh dan sesuai yang ketat setiap saat \ +\pard\pardeftab720 +\cf0 \cb1 dengan merek dagang Apple pedoman ketiga pihak penggunaan yang diposting \ +di http://www.apple.com/legal/guidelinesfor3rdparties.html. \ +\ +11. Kepemilikan. Sesuai dengan lisensi yang diberikan di bawah Lisensi ini, \ +\pard\pardeftab720 +\cf0 \cb2 Kontributor masing mempertahankan semua hak, kepemilikan dan kepentingan dalam dan terhadap setiap \ +\pard\pardeftab720 +\cf0 \cb1 Modifikasi yang dilakukan oleh Contributor tersebut. Apel mempertahankan semua hak, \ +judul dan kepentingan dalam dan Kode Asli dan setiap Modifikasi \ +\pard\pardeftab720 +\cf0 \cb2 dilakukan oleh atau atas nama dari Apple ("Apple Modifikasi"), dan Apple seperti \ +\pard\pardeftab720 +\cf0 \cb1 Modifikasi tidak akan secara otomatis tunduk kepada Lisensi ini. Apel \ +dapat, atas kebijakannya sendiri, memilih untuk Lisensi Apple seperti \ +Modifikasi di bawah Lisensi ini, atau pada istilah yang berbeda dari yang \ +terkandung dalam Lisensi ini atau mungkin memilih untuk tidak lisensi mereka sama sekali. \ +\ +12. Pemutusan. \ +\ +12.1 Pemutusan. Lisensi ini dan hak yang diberikan berdasarkan perjanjian ini akan \ +mengakhiri: \ +\ +(A) secara otomatis tanpa pemberitahuan dari Apple jika Anda gagal mematuhi \ +\pard\pardeftab720 +\cf0 \cb2 setiap istilah (s) dari Lisensi ini dan gagal untuk menyembuhkan pelanggaran tersebut dalam waktu 30 \ +\pard\pardeftab720 +\cf0 \cb1 hari menyadari pelanggaran tersebut; \ +\ +(B) langsung dalam hal keadaan yang dijelaskan dalam Bagian \ +13.5 (b), atau \ +\ +\pard\pardeftab720 +\cf0 \cb2 (C) secara otomatis tanpa pemberitahuan dari Apple jika Anda, setiap saat selama \ +\pard\pardeftab720 +\cf0 \cb1 istilah dari Lisensi ini, dimulai suatu tindakan atas pelanggaran paten \ +terhadap Apple, dengan ketentuan bahwa Apple tidak pertama dimulai \ +action untuk pelanggaran paten terhadap Anda dalam hal itu. \ +\ +12,2 Efek Penghentian. Setelah pengakhiran, Anda setuju untuk segera \ +menghentikan penggunaan lebih lanjut, reproduksi, modifikasi, sublicensing dan \ +distribusi Kode Covered. \cb2 Semua sublisensi ke Kode Covered \ +\cb1 yang telah benar diberikan sebelum pengakhiran akan bertahan \ +pemutusan Lisensi ini. Ketentuan yang, menurut sifatnya, \ +harus tetap berlaku melampaui penghentian Lisensi ini akan \ +bertahan hidup, termasuk namun tidak terbatas pada Bagian 3, 5, 8, 9, 10, 11, \ +12,2 dan 13. Tidak ada pihak yang akan bertanggung jawab untuk lainnya kompensasi, \ +ganti rugi atau kerusakan apapun semata-mata sebagai akibat penghentian \ +Lisensi ini sesuai dengan ketentuan-ketentuannya, dan pemutusan ini \ +Lisensi akan tanpa mengurangi hak-hak lainnya atau obat dari \ +pihak manapun. \ +\ +13. Miscellaneous. \ +\ +Pengguna-Akhir Pemerintahan 13.1. Kode Covered adalah "barang komersial" sebagaimana \ +ditentukan dalam FAR 2.101. \cb2 Pemerintah perangkat lunak dan data teknis hak-hak \ +\cb1 Kode Covered hanya menyertakan hak-hak yang lazim diberikan kepada \ +umum sebagaimana dimaksud dalam Lisensi ini. Ini lisensi komersial adat \ +\pard\pardeftab720 +\cf0 \cb2 dalam data teknis dan perangkat lunak disediakan sesuai dengan FAR \ +12,211 (Data Teknis) dan 12.212 (Perangkat Lunak Komputer) dan, untuk \ +\pard\pardeftab720 +\cf0 \cb1 Departemen Pertahanan pembelian, DFAR 252.227-7015 (Data Teknis - \ +Produk Komersial) dan 227,7202-3 (Hak di Komputer Komersial \ +Perangkat Lunak atau Dokumentasi Perangkat Lunak Komputer). Oleh karena itu, semua US \ +\pard\pardeftab720 +\cf0 \cb2 Pengguna Akhir Pemerintah memperoleh Kode Ditutupi dengan hanya hak-hak yang \ +\pard\pardeftab720 +\cf0 \cb1 sebagainya di sini. \ +\ +13.2 Hubungan Para Pihak. \cb2 Lisensi ini tidak akan ditafsirkan sebagai \ +\cb1 menciptakan agen, kemitraan, joint venture atau bentuk lainnya \ +\pard\pardeftab720 +\cf0 \cb2 hukum hubungan antara atau di antara Anda, Apple atau Contributor manapun, dan \ +Anda tidak akan mewakili sebaliknya, apakah tegas, oleh \ +Implikasinya, penampilan atau sebaliknya. \ +\ +\pard\pardeftab720 +\cf0 \cb1 13,3 Independen Pembangunan. \cb2 Tidak ada dalam Lisensi ini akan mengganggu \ +Hak Apple untuk memperoleh, lisensi, mengembangkan, memiliki orang lain mengembangkan untuk \ +itu, pasar dan / atau mendistribusikan teknologi atau produk yang melakukan \ +\cb1 fungsi yang sama atau mirip sebagai, atau bersaing dengan, \ +Modifikasi, Pekerjaan yang lebih besar, teknologi atau produk yang Anda mungkin \ +mengembangkan, memproduksi, memasarkan atau mendistribusikan. \ +\ +Pelepasan 13,4; Konstruksi. Kegagalan oleh Apple atau Contributor untuk \ +melaksanakan setiap ketentuan dari Lisensi ini tidak akan dianggap sebagai pengabaian \ +masa depan penegakan itu atau ketentuan lainnya. Setiap hukum atau \ +\pard\pardeftab720 +\cf0 \cb2 regulasi yang mengatur bahwa bahasa kontrak harus \ +\pard\pardeftab720 +\cf0 \cb1 ditafsirkan terhadap drafter tidak akan berlaku untuk Lisensi ini. \ +\ +13.5 Pemutusan. (A) Jika karena alasan apapun pengadilan yang kompeten \ +yurisdiksi menemukan ada ketentuan dari Lisensi ini, atau bagian daripadanya, \ +tidak dapat ditegakkan, bahwa ketentuan dari Lisensi akan ditegakkan untuk \ +maksimum yang diizinkan sejauh sehingga efek manfaat ekonomi \ +\pard\pardeftab720 +\cf0 \cb2 dan maksud dari para pihak, dan sisanya dari Lisensi ini akan \ +\pard\pardeftab720 +\cf0 \cb1 terus berlaku sepenuhnya. (B) Sekalipun demikian, \ +jika hukum yang berlaku melarang atau membatasi Anda dari sepenuhnya dan / atau \ +khusus sesuai dengan Bagian 2 dan / atau 3 atau mencegah \ +terlaksananya salah satu dari mereka Bagian, Lisensi ini akan \ +segera mengakhiri dan Anda harus segera menghentikan setiap penggunaan \ +yang Covered Kode dan menghancurkan semua salinan itu yang dalam Anda \ +kepemilikan atau kontrol. \ +\ +13,6 Penyelesaian Sengketa. Setiap litigasi atau penyelesaian sengketa lainnya \ +antara Anda dan Apple yang berkaitan dengan Lisensi ini akan berlangsung di \ +Distrik Utara California, dan Anda dan Apple dengan ini setuju \ +yurisdiksi pribadi, dan tempat di, negara bagian dan federal \ +pengadilan dalam Distrik yang sehubungan dengan Lisensi ini. Para \ +penerapan Konvensi PBB tentang Kontrak \ +Barang Internasional secara tegas dikecualikan. \ +\ +13,7 Seluruh Perjanjian; Hukum. Lisensi ini merupakan \ +seluruh kesepakatan antara para pihak sehubungan dengan subjek \ +materi perjanjian ini. Lisensi ini diatur oleh hukum \ +Amerika Serikat dan Negara Bagian California, kecuali bahwa tubuh \ +Hukum California mengenai konflik hukum. \ +\ +\pard\pardeftab720 +\cf0 \cb2 Dimana Anda berada di provinsi Quebec, Kanada, berikut \ +klausul berlaku: Para pihak dengan ini mengkonfirmasi bahwa mereka telah meminta \ +\pard\pardeftab720 +\cf0 \cb1 bahwa Lisensi ini dan semua dokumen terkait disusun dalam bahasa Inggris. Les \ +\pard\pardeftab720 +\cf0 \cb2 pihak ONT Exige que le contrat et tous hadir les dokumen \ +\pard\pardeftab720 +\cf0 \cb1 connexes soient en Anglais rediges. \ +\ +Bukti A. \ +\ +\pard\pardeftab720 +\cf0 \cb2 "Bagian Copyright (c) 1999-2003 Apple Computer, Inc Semua Hak \ +\pard\pardeftab720 +\cf0 \cb1 Dilindungi. \ +\ +File ini berisi Kode Asli dan / atau Modifikasi Kode Asli \ +sebagaimana didefinisikan dalam dan yang tunduk kepada Lisensi Publik Sumber Apple \ +Versi 2.0 ('Lisensi'). \cb2 Anda tidak dapat menggunakan file ini kecuali dalam \ +\cb1 sesuai dengan Lisensi. Silahkan memperoleh salinan Lisensi di \ +http://www.opensource.apple.com/apsl/ dan membacanya sebelum menggunakan \ +file. \ +\ +Kode asli dan semua perangkat lunak didistribusikan di bawah Lisensi ini \ +didistribusikan pada 'SEBAGAIMANA ADANYA' dasar, TANPA JAMINAN APAPUN, BAIK \ +\pard\pardeftab720 +\cf0 \cb2 TERSURAT MAUPUN TERSIRAT, DAN APPLE DENGAN INI MENYANGKAL SEMUA JAMINAN TERSEBUT, \ +\pard\pardeftab720 +\cf0 \cb1 TERMASUK TANPA TERBATAS, SEGALA GARANSI PENJUALAN, \ +KESESUAIAN UNTUK TUJUAN TERTENTU, kenikmatan QUIET ATAU NON-PELANGGARAN. \ +\pard\pardeftab720 +\cf0 \cb2 Silahkan lihat Lisensi untuk bahasa tertentu yang mengatur hak dan \ +\pard\pardeftab720 +\cf0 \cb1 keterbatasan di bawah Lisensi. "} Index: branches/JrCs/package/Resources.old/el.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/el.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/el.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon is a boot loader built using a combination of components which evolved from the development of David Elliott's fake EFI implementation added to Apple's boot-132 project.

+


+

Chameleon v2 is extended with many features. For example:

+


+

- Fully customizable GUI to bring some color to the Darwin Bootloader.

+

- Load a ramdisk to directly boot retail DVDs without additional programs.

+

- Hibernation. Enjoy resuming your Mac OS X with a preview image.

+

- SMBIOS override to modify the factory SMBIOS values.

+

- DSDT override to use a modified fixed DSDT which can solve several issues.

+

- Device Property Injection via device-properties string.

+

- hybrid boot0 / boot1h for MBR and GPT partitioned disks.

+

- Automatic FSB detection code even for recent AMD CPUs.

+

- Apple Software RAID support.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

FAQ's: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/el.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/el.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/el.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "          ."; +"ERROR_INSTALL" = "           ."; + +"Newer_Package_Installed_message" = "    Chameleon   ."; +"Intel_Mac_message" = "          ."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Install Type"; +"InstallType_description" = "Choose to perform a new installation or upgrade an existing installation."; + +"New_title" = "New Installation"; +"New_description" = "Backup an existing /Extra folder, if found on the target partition. A new one will be created if any options are chosen from the installer, other than the Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Merge an existing /Extra folder, if found on the target, with any options chosen from the installer, other than the Bootloader. The original /Extra folder will be backed up."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon requires three essential files. (in simple terms) +boot0 (On the drive's MBR) responsible for loading boot1. +boot1 (On the partition's boot-sector) to finding boot2. +boot2 (On the partition's root directory) for loading kernel etc."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "   Chameleon."; + +"EFI_title" = "EFI"; +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + +"noboot_title" = "Don't install the Bootloader"; +"noboot_description" = "Useful if you only want to install the extra's."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. +This is currently only used by the uClibc++ library. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "This module reads the edid information from the monitor attached to the main display. +The module is currently not integrated into trunk and has minimal uses as it stands. +Additionally, the module will patch the vesa modes available in pre intel hd graphics cards to provide proper resolution while booting."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. +*Please note that rtti and exceptions has both been disabled. +Source: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "This module permits the user to define the keyboard key mappings. This module and associated keymaps are installed by default."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilities"; +"Utility_description" = "Optional files to help setup"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Settings"; +"Options_description" = "Create an /Extra/org.chameleon.Boot.plist by selecting any of these boot options and kernel flags."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Hides Chameleon's boot banner in GUI. This is the text that is drawn at the top left corner of the screen displaying the release version etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "  .      'GUI=n'  org.chameleon.Boot.plist."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Use the legacy 'dark grey' apple logo on the light grey screen for the boot process rather than the boot.png in the theme."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauses the boot process after Chameleon has finished it's setup then waits for a key press before it starts the mach kernel. Useful when combined with verbose boot for troubleshooting."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = " EHCIacquire=y  org.chameleon.Boot.plist.      EHCI ownership issues due to bad bioses."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = " EthernetBuiltIn=y  org.chameleon.Boot.plist.        'built-in'   ."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = " ForceHPET=y  org.chameleon.Boot.plist.      HPET  Intel chipsets   BIOS      ."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = " ForceWake=y  org.chameleon.Boot.plist.        bad sleep images."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disables the automatically enabled restart fix."; + +"UHCIreset_title" = "UHCIreset"; +"UHCIreset_description" = " UHCIreset=y  org.chameleon.Boot.plist.      reset   UHCI       OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Enable specific Processor power state, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Enable specific Processor power state, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Enable specific Processor power state, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = " GraphicsEnabler=y  org.chameleon.Boot.plist.         GPU   NVidia        ."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Enables UseAtiROM options."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Enables VBIOS option"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Chameleon default theme introduced for v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "A lovely simple theme by NoSmokingBandit from April 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Settings to control how Chameleon works."; + +// General +"General_title" = "General Options"; +"General_description" = "Choose from a selection of base options."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Choose from a selection of kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "A selection of options that deal with video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = ""; +"Themes_description" = "    +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/el.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/el.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/el.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Do not install to an Apple Macintosh computer\ + +\fs22 \cf0 \ +\ +Developers :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Thanks to :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: ???\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/el.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/el.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/el.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +The scripts have completed and a file\ + named \cf2 @LOG_FILENAME@\cf3 has been\ +written to the root of your chosen partition.\ +\ +\cf0 Please \cf4 read it\cf0 to find out if the installation was\ +successful and keep it for a record of what was done.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/el.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/el.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/el.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/zh_CN.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/zh_CN.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/zh_CN.lproj/Description.html (revision 1843) @@ -0,0 +1,46 @@ + + + + + + + + + +

Chameleon 是一个结合许多组件的开机引导器。这些组件的演变来自于 David Elliott 加入 Apple boot-132 程序项目的 fake EFI 安装工具。

+


+

Chameleon v2 现在已经扩充了许多功能。例如:

+


+

- 客制化的图形用户介面,为 Darwin Bootloader 带来更多的色彩。

+

- 无须其他程序,即可载入 ramdisk 来直接启动 零售版 DVD

+

- 支持睡眠。 可使用睡眠映像恢复继续使用 Mac OS X

+

- 可使用修改过的 SMBIOS 覆盖 SMBIOS 之出厂设定值。

+

- 可使用修正过的 DSDT 覆盖原始 DSDT,并可解决许多问题。

+

- 可透过 device-properties string 自动注入设备属性。

+

- 支持 MBR GPT 分区磁盘的  boot0 / boot1h 多重开机功能。

+

- 具有自动侦测 FSB 码功能,并可用于新式的 AMD CPU

+

- 支持 Apple Software RAID 功能。

+

- 支持 Nvidia & ATI/AMD 显示卡启用功能。

+

- 支持模组功能。

+

- 支持改编自 memtest86: http://www.memtest.org 的内存侦测功能。

+

- 具有自动生成 P-State C-State 的原生电源管理之功能。

+

- 具有信息纪录之功能。

+


+

源代码依照 Gnu Public License v2 的原则释放于以下网站上。

+

http://forge.voodooprojects.org/p/chameleon

+


+

常见问题: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/zh_CN.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/zh_CN.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/zh_CN.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,377 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "dkoN_{[ň(WN*N/TRwS[0"; +"ERROR_INSTALL" = "dkwS[*g&{Tdkfe@bvBl0"; + +"Newer_Package_Installed_message" = "|~-N][ňNN*NeHr,gv Chameleon 0"; +"Intel_Mac_message" = "dkoNel(Wdk5u +N[ň0"; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "[ň{|W"; +"InstallType_description" = " bۏLhQe[ňbfe[ň0"; + +"New_title" = "hQe[ň"; +"New_description" = "YNvhR:S]X[(Wv /Extra vU_0Yg S boot NYvvQN[ň y \YNS gv /Extra neN v^^zev /Extra neN0"; + +"Upgrade_title" = "fe[ň"; +"Upgrade_description" = "Tv^vhR:S]X[(Wv /Extra vU_0Yg S boot NYvvQN[ň y \Tv^S gv /Extra neN0"; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "{ KN Sr N*N_veN0 +boot0 ((Wlxvv MBR) #}eQ boot10 +boot1 ((WR:Sv_:gx:S boot-sector) d[ boot20 +boot2 ((WR:Sv9hvU_) }eQ|~Q8hI{I{0"; + +"Standard_title" = "hQ[ň"; +"Standard_description" = "dk yO[ň N*N_eN v^Ogq`v|~Bl\ boot0 b boot0md QeQ MBR vMR 440 MOCQ NMQ_cOWNUO]~X[(Wv Windows :gx06qT boot0 O(W,{N*N/TRR:Sd[ boot1h boot0md SN(W,{N*Nlxvv,{N*N/TRR:Sd[ boot1h0"; + +"EFI_title" = "EFI [ň"; +"EFI_description" = "dk yO[ň N*N_eN0Rck8^υv EFI R:S v^Ogq`v|~Bl\ boot0 b boot0md QeQ MBR vMR 440 MOCQ NMQ_cOWNUO]~X[(Wv Windows :gx06qT boot0 O(W,{N*N/TRR:Sd[ boot1h boot0md SN(W,{N*Nlxvv,{N*N/TRR:Sd[ boot1h0"; + +"noboot_title" = "v +N[ň"; +"noboot_description" = " +N[ňSr_[hV ((uNN[ň Extra ~N)0"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "!jWW y"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "!jWW[ňMOn /Extra/modules/klibc.dylib +dk!jWW(W Chameleon v library +NweO(ue ScON*NhQv c library ~vQN!jWW~O(u 0 +vMRN g uClibc++ library ~O(u0 +nNx: http://www.kernel.org/pub/linux/libs/klibc/ "; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "!jWW[ňMOn /Extra/modules/Resolution.dylib +dk!jWWONޏcv;N>f:yhV-N SvQO\U^v EDID Oo`0 +ُ*N!jWWvMRv^*gteT0R trunk Hr,gQ /fǑrzЏ\O0 +SY dk!jWWOOckeg Intel HD >faSv VESA !j_ S(W_:g_[Bf Ǒ(ucknxvRs0"; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "!jWW[ňMOn /Extra/modules/uClibcxx.dylib +dk!jWWcON*N|{v c++ runtime library ~vQN!jWW~O(u0 +!jWW,g +NcONUOR /f(uegAQvQN!jWWSO(u c++ 0 +la rtti T OY ]y(u0 +nNx: http://cxx.uclibc.org/ +OX[: klibc "; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "!jWW[ňMOn /Extra/modules/Keylayout.dylib +.v^@\ dk!jWWAQ(u7b[IN.v c.v f\0"; + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "]wQ y"; +"Utility_description" = "OSR[ňnveN0"; + +"PrefPanel_title" = "|~OP}Ynbg"; +"PrefPanel_description" = "[ň Chameleon |~OP}Ynbg0"; + +"SMBIOSDefault_title" = "SMBios.plist"; +"SMBIOSDefault_description" = " +Y6R smbios.plist O /Extra/Configuration0"; + +"Documentation_title" = "feN"; +"Documentation_description" = "Chameleon KbR[ňSO(uvfeN0"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "_:g y"; +"Options_description" = "R^ /Extra/org.chameleon.Boot.plist S (u`v Chameleon _:g ySQ8hSpe0"; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "(؞/f Yes) υ Vb_(u7bNbv Chameleon _:g US0"; + +"GUI_title" = "GUI=No"; +"GUI_description" = "(؞/f Yes) y(u ؞_/TKNVb_(u7bNb0"; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "(؞/f No) _:g;ubO(u O~v Apple Logo(}v^ppg) +NO(u;NQ@b[INKN boot.png0"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "(؞/f No) ǏPpe;ub vc>f:yR:S_:g b;ub0"; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "(؞/f No) /T(uY؞_:g!j_( +NOQsOo`bc:y)0"; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "(؞/f No) /T(u (W_:gV:y US] +Ne>f:yR:SSRsv~Oo`vR0}6qONNǸof;NSuQz (Wcde tS/f^8^ g(uvOo`0"; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "(؞/f No) (W Chameleon }eQ[kTf\P v^(W cNa. T~~}eQ mach kernel Tcde-dM (-v) pUU!j__:gNwO(u0"; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "(؞/f 64 MO) /T(u 32 MO!j__[Q8h_:g ^؞v 64 MO_:g0"; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "(؞/f No) /T(u EHCI OckR SO +YNUO +No BIOS bv EHCI @b gCg0"; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "(؞/f No) /T(u\N*YQaSnb Q^ vR0dkRSSQaSƋ+R:NQ^ v^eqRvR0"; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "(؞/f No) [ BIOS -Ne HPET yKN Intel Gr~;Ng :_6R_/T HPET R0"; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "(؞/f No) /T(u:_6Rvaw wDe fPR dk ySNvv^_eu +NcknxKNO w fPeN0"; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "(؞/f Yes) y(u ꁨR/T(uv͑e_:gOckR (Intel CPU N(u)0"; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "(؞/f No) /T(u UHCI OckR0S(WۏeQ OS X KNMR HQ͑n UHCI c6RhV0"; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "(؞/f Yes) y(u ꁨR/T(uvQX[Ƌ+RR0"; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "(؞/f No) Lion N(u (u Yes \}eQcv KernelCache v^_eu /Extra/Extensions T /System/Library/Extensions S Extensions.mkext0^(W KernelCache ]Q+T@b g_vqRe Mb/T(u0"; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "(؞/f No) /T(uaw w$UR \Ջ}eQgTN!kO weOX[vaw w fP0"; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States New=Yes"; +"CSTUsingSystemIO_description" = "(؞/f No) Ǒ(u SystemIO registers ub C-States _CST veel0(^Segv FixedHW el)"; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "(؞/f No) n Yes _eu;Ng BIOS Q^KN SSDT h SS Extra eN9Y-Nv SSDT De0/Extra/SSDT.aml0"; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "(؞/f No) :_6Rub C2 State :N{t CPU 5unr` SN CPU (Wnr` NYNNORr`0N,egpeW['YvQHegasO0"; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "(؞/f No) :_6Rub C3 State :N{t CPU 5unr` SN CPU (Wnr` NYNNORr`0N,egpeW['YvQHegasO0"; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "(؞/f No) :_6Rub C4 State :N{t CPU 5unr` SN CPU (Wnr` NYNNORr`0N,egpeW['YvQHegasO0"; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "(؞/f No) /T(uꁨRub CPU nO wr`vR (C-States) {t CPU 5unr` SN CPU (Wnr` NYN +N TNORr`0"; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "(؞/f No) /T(uꁨRub CPU Rhsr`vR (P-States) {t CPU '`r` SN CPU (W +N T}ϑ N9eSR0"; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "n>f:yhVRs:N 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "n>f:yhVRs:N 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "n>f:yhVRs:N 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "n>f:yhVRs:N 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "n>f:yhVRs:N 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "n>f:yhVRs:N 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "n>f:yhVRs:N 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "n>f:yhVRs:N 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "n>f:yhVRs:N 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "n>f:yhVRs:N 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "n>f:yhVRs:N 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "(؞/f No) /T(u>faSOKmR0ꁨRƋ+R >faS GPU v^leQcknxvY^\'`Oo`0"; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "(؞/f No) /T(u ATI EEPRom R S(W +N7R>faS BIOS v`Q NO(uO9ev Rom0}T +T:N  VenderID_DeviceID_SubsysID.rom >en Extra eN9Y0Y/Extra/1002_68C1_FD501179.rom0"; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "(؞/f No) /T(u Nvidia EEPRom R S(W +N7R>faS BIOS v`Q NO(uO9ev Rom0}T +T:N  VenderID_DeviceID.rom >en Extra eN9Y0Y/Extra/10de_0614.rom0"; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "(؞/f No) /T(u Nvidia VBIOS R0N[ Nvidia >faSvSpe y ATI >faSRO(u0/T(uS>faSSpe S(W>faSOo`-N>f:y ROM OckHr Oo`0"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "-v pUU!j_"; +"Verbose_description" = "O(u (-v) pUU!j_ۏeQ AQ`(W>f:yhV +NS Sr T OS X Q8h $N(W_:geNuv~U_Oo`0ُ/f(W_:gecdvW,g(ul0"; + +"Singleusermode_title" = "-s US(u7b!j_"; +"Singleusermode_description" = "O(u (-s) US(u7b!j_ۏeQ (Wcde SN(W_:gO(u (-s) ۏeQ OS X v BSD/Unix }TN!j_0"; + +"Ignorecaches_title" = "-f _eu Caches"; +"Ignorecaches_description" = "O(u (-f) _eu Caches !j_ۏeQ v^^ke_:g_Yvv y FOS~1u_eu6Rv Caches NO OS X SN͑e}eQ@b gMON|~vU_v kext eN0"; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "S(WgN|~ +Ncd 'PCI configuration begin' v00x2000 /f kIOPCIConfiguratorPFM64 flag S(W IOPCIFamily v source code -N~b0RvsQOo`0"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "S(WgN|~ +Ncd 'PCI configuration begin' v00x3000 /f kIOPCIConfiguratorPFM64 flag S(W IOPCIFamily v source code -N~b0RvsQOo`0"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion N(u0y(u 'low power wake' vR (W>f:yhVaw w$UKNT geSOSu>f:yhVўO\vrQ0"; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "_ Mac .v^@\"; +"mac-de_description" = "O(u_Vv Mac .vv.v^@\"; + +"mac-es_title" = "sYr Mac .v^@\"; +"mac-es_description" = "O(usYrv Mac .vv.v^@\"; + +"mac-fr_title" = "l Mac .v^@\"; +"mac-fr_description" = "O(ulVv Mac .vv.v^@\"; + +"mac-it_title" = "a'Y)R Mac .v^@\"; +"mac-it_description" = "O(ua'Y)Rv Mac .vv.v^@\"; + +"mac-se_title" = "^txQ Mac .v^@\"; +"mac-se_description" = "O(u^txQv Mac .vv.v^@\"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "l PC .v^@\"; +"pc-fr_description" = "O(ulVv PC .vv.v^@\"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Q];N"; +"Embed_description" = "Embed\ {USNSNы boot e Q](W Chameleon ̑v;N."; + +"Legacy_title" = " O~;N"; +"Legacy_description" = "LegacyChameleon v2.0 RC1 vSY؞;N."; + +"Default_title" = "؞;N"; +"Default_description" = "DefaultChameleon v2.0 RC5 veHr؞;N."; + +"Bullet_title" = "P[9_;N"; +"Bullet_description" = "Bulleteg NoSmokingBandit 2009.4 vN*N\]S1rvP[9_;N."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "c6R y"; +"Control_description" = "nc6R Chameleon vЏ\Oe_0"; + +// General +"General_title" = "N, y"; +"General_description" = " SNNW,gv y0"; + +// KernelFlags +"KernelFlags_title" = "Q8hSpe"; +"KernelFlags_description" = " S gsQ kernel flags vTyQ8hSpen0SSN_:ge .eQN N}TNMTO(u0"; + +// PowerManagement +"PowerManagement_title" = "5un{t"; +"PowerManagement_description" = "NNn5un{tT speedstep v y0"; + +// Resolution +"Resolution_title" = "Rsn"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = ">faS y"; +"Video_description" = "NNn>faSv y0"; + +// Keymaps +"Keymaps_title" = ".v^@\"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = ";N y"; +"Themes_description" = " ƖvNN;NO0 +S(W http://forum.voodooprojects.org/index.php/board,7.0.html ~b0RfYv;N0"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = " +N[ň"; +"ChooseNone-Resolution_description" = " +N S[ňNUO>f:yhVRs0"; + +"ChooseNone-keylayout_title" = " +N[ň"; +"ChooseNone-keylayout_description" = " +N S[ňNUO.v^@\0"; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/zh_CN.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/zh_CN.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/zh_CN.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,60 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset136 STHeitiTC-Light;\f2\fnil\fcharset134 STHeitiSC-Light; +} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\pard\qc + +\f1 \cf2 \uc0\u35831 \'a4\'c5\'a6\'77\u35013 \'a8\'ec +\f0 \cf2 Apple +\f1 \cf2 \'aa\'ba +\f0 \cf2 Macintosh +\f1 \cf2 \uc0\u30005 \u33041 +\f0 \cf2 \ +\pard\qc + +\fs22 \cf0 \ +\ +\pard\qc + +\f2 \cf0 \'bf\'aa\'b7\'a2\'d5\'df +\f0 :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +\pard\qc + +\f2 \cf0 \'b8\'d0\'d0\'bb +\f0 :\ +\pard\qc + +\b0 \cf0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\f2\b \cf0 \'b7\'e2\'d7\'b0\'d5\'df +\f0 :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language +\f1\fs20 \'c2\'bd\uc0\u35793 +\f0\fs18 : crazybirdy, Ulimate\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/zh_CN.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/zh_CN.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/zh_CN.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset134 STHeitiSC-Light;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ + +\f1 \'b0\'b2\'d7\'b0\'b3\'cc\'d0\'f2\'d2\'d1\'be\'ad\'cd\'ea\'b3\'c9 +\f0 \ + +\f1 \'b2\'a2\'d4\'da\'d1\'a1\'d4\'f1\'b0\'b2\'d7\'b0\'b5\'c4\'b7\'d6\'c7\'f8\'bd\'a8\'c1\'a2 +\f0 \cf2 \ +@LOG_FILENAME@\cf3 +\f1 \cf0 \'bc\'cd\'c2\'bc\'ce\'c4\'bc\'fe\'a1\'a3 +\f0 \cf2 \ +\ + +\f1 \cf0 \'c7\'eb +\f0 +\f1 \cf4 \'cf\'ea\'d4\'c4\'bc\'cd\'c2\'bc\'ce\'c4\'bc\'fe +\f0 \cf0 \ + +\f1 \'c8\'b7\'c8\'cf\'b0\'b2\'d7\'b0\'ca\'c7\'b7\'f1\'b3\'c9\'b9\'a6\'a3\'ac\'b2\'a2\'b1\'a3\'c1\'f4\'b0\'b2\'d7\'b0\'bc\'cd\'c2\'bc\'ce\'c4\'bc\'fe\'b1\'b8\'b2\'e9\'a1\'a3 +\f0 \ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/zh_CN.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/zh_CN.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/zh_CN.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/ar.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/ar.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/ar.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

‎‎الشامليون عباره عن مزيج من مختلف مكونات محمل الاقلاع٫
بنى عل ىالتطبيق Fake EFI لصاحبه David Elliott واضيف الى مشروع Apple's boot-132 ٫
‎تم تطوير الشامليون ليضم المميزات التالية

+


+

‎المميزات الجديده فى الشامليون ٢٫٠ +


+

- واجهه قابله للتخصيص الكامل لاضافه بعض الالوان لمحمل الاقلاع Darwin ٫

+

- اقلاع الاقراص الاصلية عن طريق تحميل صوره ل ramdisk مباشرة دون الحاجه لبرامج اضافية

+

- السبات Hibernation ٫ استمتع باستئناف الماكنتوش من الحالة السابقه ٫

+

- ‎امكانيه تعديل القيم المصنعيه ل SMBIOS باستخادم SMBIOS.plist ٫

+

- ‎امكانيه استخدام DSDT.aml ‎المصححة التى تسطيع حل الكثير من العيوب

+

- ‎امكانيه حقن بعض المكونات لكى تعمل عن الطريق device-properties string ٫

+

- ‎تحتوى على هجين من boot0 / boot1h ‎من اجل الاقراص المقسمة بنظامى MBR . GPT ٫

+

- ‎تحديد كود الناقل الامامى اوتوماتيكيا حتى مع اخر المعالجات لشركه AMD ٫

+

- ‎دعم ل Apple Software RAID

+

- دعم تشغيل كروت الشاشة من nvidia , Ati/AMD .

+

- دعم Module

+

- الكشف عن الذاكرة مقتبس من memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation لادارة الطاقة كما يجب ان يكون .

+

- Message logging.

+


+

هذا البرنامج صدر تحت رخضة الاصدار الثانى الهام ل Gnu .

+

http://forge.voodooprojects.org/p/chameleon

+


+

‎ لمزيد من المعلومات قم بزيارة موقعناhttp://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/ar.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/ar.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/ar.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = " J,( *+(J* G0' 'D(1F'E, 9DI H-/) 'D*.2JF (/! 'D*4:JD"; +"ERROR_INSTALL" = "G0' 'D('1*4F D'JAI (E*7D('* G0' 'D*-/J+ k"; + +"Newer_Package_Installed_message" = "*E ('DA9D *+(J* '5/'1 '-/+ EF G0' 'D(1F'E,"; +"Intel_Mac_message" = "D' JECF *+(J* G0' 'D(1F'E, 9DI G0' 'DCE(JH*1"; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "FH9 'D*+(J*"; +"InstallType_description" = "'.*'1 E' (JF *+(J* ,/J/ 'H *-/J+ 'DB/JE"; + +"New_title" = "*+(J* ,/J/"; +"New_description" = " ./ F3.) '-*J'7J) EF E,D/ 'D'C3*1' 'F H,/ AI 'D('1*4F 'DE.*'1 A3HA J*E 'F4'! H'-/ ,/J/ DH BE* ('.*J'1 'I EF 'D.J'1'* AI 'D(1F'E, :J1 'D(H* DH/1"; + +"Upgrade_title" = "*-/J+"; +"Upgrade_description" = "3HA J*E /E, 'I .J'1 'F* *.*'1G 'DI 'D.J'1'* 'DE6'A) ('DA9D AI AHD/1 'D'C3*1' AI 'D('1*4F 'DE.*'1 'D*+(J* 9DJG"; + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "'D(H* DH/1 J-*', 'DDI +D'+ EDA'* (('.*5'1 ) +boot0 (On the drive's MBR) responsible for loading boot1. +boot1 (On the partition's boot-sector) to finding boot2. +boot2 (On the partition's root directory) for loading kernel etc."; + +"Standard_title" = "Standard"; +"Standard_description" = "Install Chameleon's files to the root of the selected partition using either boot0 or boot0md depending on your system without destroying any existing Windows installation if you have one."; + +"EFI_title" = "EFI"; +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + +"noboot_title" = "Don't install the Bootloader"; +"noboot_description" = "EAJ/ '0' CF* *1J/ AB7 **(J* 'D'C3*1'"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. +This is currently only used by the uClibc++ library. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "G0G 'D'6'A) *B1' E9DHE'* 'D4'4) 'D'3'3J) 'DE*5D) ('D,G'2 +G0G 'D'6'A) :J1 E/E,G AI trunk 'DI 'D'F H DG' '3*./'E (3J7 +('D'6A) A'FG' *BHE ('D*9/JD 9DI vesa mode DC1H* 'D4'4) 'F*D D*-5D 9DI 12DJH4F 4'4*C '+F'! 'D'BD'9"; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. +This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. +Please note that rtti and exceptions has both been disabled. +Source: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "This module permits the user to define the keyboard key mappings. This module and associated keymaps are installed by default."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilities"; +"Utility_description" = "Optional files to help setup"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Settings"; +"Options_description" = "(H'37) '.*J'1 'I EF G0G 'D.J'1'* /Extra/org.chameleon.Boot.plist 'F4I"; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "'D9'! 'I C*('* *8G1 AI H',GG 'D(H* E+D 1BE F3.) 'D(H*"; + +"GUI_title" = "GUI=No"; +"GUI_description" = "'D:'! 'DH',GG 'D13HEJ) DD(H*"; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "'3*./'E DH,H 41C) '(D 'D'5DI '+F'! (/! 'D*4:JD (/D' EF 'DE9/D 'D0I J'*I E9 'D+JE"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "JHBA 'D*H(J* (9/ E' 'F JBHE 'D4'EJDHF (9EDJ'*G EAJ/ DH H',GC E4'CD EF 'D(H* DH/1 k"; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Enables the option to fix any EHCI ownership issues due to bad bioses."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Enables the option of adding 'built-in' to your ethernet devices."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Enables HPET on intel chipsets, for bioses that dont include the option."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "This option enables you to bypass bad sleep images."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disables the automatically enabled restart fix."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Enables the option to reset UHCI controllers before starting OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Enable specific Processor power state, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Enable specific Processor power state, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Enable specific Processor power state, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Enables the option to autodetect NVIDIA based GPUs and inject the correct info."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Enables UseAtiROM options."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Enables VBIOS option"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Chameleon default theme introduced for v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "A lovely simple theme by NoSmokingBandit from April 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Settings to control how Chameleon works."; + +// General +"General_title" = "General Options"; +"General_description" = "Choose from a selection of base options."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Choose from a selection of kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "A selection of options that deal with video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "A collection of sample themes +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/ar.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ar.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ar.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,69 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset178 GeezaPro;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10600\viewh10600\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\pard\qc + +\f1 \cf2 \'e1\'c7 +\f0 \cf2 +\f1 \cf2 \'ca\'cb\'c8\'ca\'e5 +\f0 \cf2 +\f1 \cf2 \'da\'e1\'ec +\f0 \cf2 +\f1 \cf2 \'c7\'cc\'e5\'d2\'c9 +\f0 \cf2 +\f1 \cf2 \'c7\'e1\'c3\'c8\'e1 +\f0 \cf2 +\f1 \cf2 \'c7\'e1\'c7\'d5\'e1\'ed\'c9 +\f0 \cf2 \cf2 \uc0\u8235 .\cf2 \uc0\u8236 \ +\pard\qc + +\fs22 \cf0 \ +\ +\pard\qc + +\fs20 \cf0 : +\f1 \'c7\'e1\'e3\'d8\'e6\'d1\'ed\'e4 +\f0\fs22 \ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +\pard\qc + +\fs20 \cf0 : +\f1 \'d4\'df\'d1\'c7 +\f0 +\f1 \'e1 +\f0 +\fs22 \ +\pard\qc + +\b0 \cf0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b\fs20 \cf0 : +\f1 \'c7\'e1\'cd\'d2\'e3\'c9 +\f0\fs22 \ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: Mohamed Khairy\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/ar.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ar.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ar.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,63 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset178 GeezaPro;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +\f1 \'c7\'e1\'e3\'ce\'d8\'e6\'d8\'c7\'ca \'ca\'e3\'ca +\f0 \uc0\u8235 , +\f1 \uc0\u8236 \'e6 \'e3\'e1\'dd +\f0 \ + +\f1 \'de\'cf +\f0 \cf2 @LOG_FILENAME@\cf3 +\f1 \'ed\'d3\'e3\'ec +\f0 \ + +\f1 \'df\'f1\'ca\'c8 \'e1\'cc\'d0\'d1 \'c7\'e1\'c8\'c7\'d1\'ca\'d4\'e4 \'c7\'e1\'e3\'ce\'ca\'c7\'d1\uc0\u8235 . +\f0 \uc0\u8236 \ +\ +\f1 \cf0 \'e3\'e4 +\f0 +\f1 \'dd\'d6\'e1\'df +\f0 +\f1 \cf4 \'c3\'de\'d1\'c3\'e5 +\f0 \cf0 +\f1 \'e1\'df\'ec +\f0 +\f1 \'ca\'da\'d1\'dd +\f0 +\f1 \'c7\'d0\'c7 +\f0 +\f1 \'df\'c7\'e4 +\f0 +\f1 \'c7\'e1\'ca\'cb\'c8\'ed\'ca +\f0 +\f1 \'ca\'e3 +\f0 +\f1 \'c8\'e4\'cc\'c7\'cd +\f0 \ + +\f1 \'e6\'c7\'cd\'ca\'dd\'d9 +\f0 +\f1 \'c8\'e5 +\f0 +\f1 \'df\'ca\'d3\'cc\'ed\'e1 \'e1\'e3\'c7 \'ca\'e3 \uc0\u8235 . +\f0 \uc0\u8236 \ +\cf5 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ar.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/ar.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ar.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/en.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/en.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/en.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon is a boot loader built using a combination of components which evolved from the development of David Elliott's fake EFI implementation added to Apple's boot-132 project.

+


+

Chameleon v2 is extended with many features. For example:

+


+

- Fully customizable GUI to bring some color to the Darwin Bootloader.

+

- Load a ramdisk to directly boot retail DVDs without additional programs.

+

- Hibernation. Enjoy resuming your Mac OS X with a preview image.

+

- SMBIOS override to modify the factory SMBIOS values.

+

- DSDT override to use a modified fixed DSDT which can solve several issues.

+

- Device Property Injection via device-properties string.

+

- hybrid boot0 / boot1h for MBR and GPT partitioned disks.

+

- Automatic FSB detection code even for recent AMD CPUs.

+

- Apple Software RAID support.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

FAQ's: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/en.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/en.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/en.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "This software must be installed on the startup volume."; +"ERROR_INSTALL" = "This volume does not meet the requirements for this update."; + +"Newer_Package_Installed_message" = "A newer version of Chameleon is already installed"; +"Intel_Mac_message" = "This software cannot be installed on this computer."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Install Type"; +"InstallType_description" = "Choose to perform a new installation or upgrade an existing installation."; + +"New_title" = "New Installation"; +"New_description" = "Backup an existing /Extra folder, if found on the target partition. A new one will be created if any options are chosen from the installer, other than the Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Merge an existing /Extra folder, if found on the target, with any options chosen from the installer, other than the Bootloader. The original /Extra folder will be backed up."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon requires three essential files. (in simple terms) +boot0 (On the drive's MBR) responsible for loading boot1. +boot1 (On the partition's boot-sector) to finding boot2. +boot2 (On the partition's root directory) for loading kernel etc."; + +"Standard_title" = "Standard"; +"Standard_description" = "Install Chameleon's files to the root of the selected partition using either boot0 or boot0md depending on your system without destroying any existing Windows installation if you have one."; + +"EFI_title" = "EFI"; +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + +"noboot_title" = "Don't install the Bootloader"; +"noboot_description" = "Useful if you only want to install the extra's."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. +This is currently only used by the uClibc++ library. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "This module reads the edid information from the monitor attached to the main display. +The module is currently not integrated into trunk and has minimal uses as it stands. +Additionally, the module will patch the vesa modes available in pre intel hd graphics cards to provide proper resolution while booting."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. +*Please note that rtti and exceptions has both been disabled. +Source: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "This module permits the user to define the keyboard key mappings. This module and associated keymaps are installed by default."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilities"; +"Utility_description" = "Optional files to help setup"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Settings"; +"Options_description" = "Create an /Extra/org.chameleon.Boot.plist by selecting any of these boot options and kernel flags."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Hides Chameleon's boot banner in GUI. This is the text that is drawn at the top left corner of the screen displaying the release version etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Disables the default enabled graphic user interface."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Use the legacy 'dark grey' apple logo on the light grey screen for the boot process rather than the boot.png in the theme."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauses the boot process after Chameleon has finished it's setup then waits for a key press before it starts the mach kernel. Useful when combined with verbose boot for troubleshooting."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Enables the option to fix any EHCI ownership issues due to bad bioses."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Enables the option of adding 'built-in' to your ethernet devices."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Enables HPET on intel chipsets, for bioses that dont include the option."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "This option enables you to bypass bad sleep images."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disables the automatically enabled restart fix."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Enables the option to reset UHCI controllers before starting OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Enable specific Processor power state, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Enable specific Processor power state, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Enable specific Processor power state, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Enables the option to autodetect NVIDIA based GPUs and inject the correct info."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Enables UseAtiROM options."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Enables VBIOS option"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Chameleon default theme introduced for v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "A lovely simple theme by NoSmokingBandit from April 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Settings to control how Chameleon works."; + +// General +"General_title" = "General Options"; +"General_description" = "Choose from a selection of base options."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Choose from a selection of kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "A selection of options that deal with video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "A collection of sample themes +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/en.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/en.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/en.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Do not install to an Apple Macintosh computer\ + +\fs22 \cf0 \ +\ +Developers :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Thanks to :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: blackosx\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/en.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/en.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/en.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +The scripts have completed and a file\ + named \cf2 @LOG_FILENAME@\cf3 has been\ +written to the root of your chosen partition.\ +\ +\cf0 Please \cf4 read it\cf0 to find out if the installation was\ +successful and keep it for a record of what was done.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/en.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/en.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/en.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/pt-PT.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/pt-PT.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/pt-PT.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

O Chameleon é um boot loader que combina vários componentes.
Ele é baseado na implementação de fake EFI feita por David Elliott, adicionada ao projeto boot-132 da Apple.
O Chameleon é extendido com as seguintes características chave:

+


+

Novos recursos no Chameleon 2.0

+


+

- Interface gráfica (GUI) totalmente personalizável para trazer algumas cores ao Bootloader Darwin.

+

- Inicializa DVDs retail lendo uma imagem ramdisk directamente, sem ajuda de nenhum programa adicional.

+

- Hibernação. Desfrute de continuar o seu Mac OS X com uma amostra de imagem da tela.

+

- Substituição de SMBIOS para modificar os valores de fábrica.

+

- Substituicção de DSDT para usar uma tabela modificada que pode resolver diversos problemas.

+

- Injecção de propriedades de dispositivo através do string device-properties.

+

- boot0 / boot1h híbridos para discos particionados em MBR e GPT.

+

- Detecção automática de FSB mesmo para processadores AMD recentes.

+

- Suporte a Software RAID da Apple.

+

- Ativação Placas Gráficas Nvidia & ATI/AMD.

+

- Suporte de Modulos

+

- Deteção Memoria adaptada de memtest86: http://www.memtest.org

+

- P-State automático & Geração C-State para gestão de energia nativa.

+

- Protocolo Mensagens.

+


+

Este código é distribuido sobre os termos da versão 2 da Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Para informações detalhadas visite: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/pt-PT.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/pt-PT.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/pt-PT.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,349 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Este software deve ser instalado no volume de inicializao."; +"ERROR_INSTALL" = "Este volume no preenche os requisitos para esta atualizao."; + +"Newer_Package_Installed_message" = "Uma verso mais recente do Chameleon j est instalada."; +"Intel_Mac_message" = "Este software no pode ser instalado neste computador."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Mtodo Instalao"; +"InstallType_description" = "Selecione para executar nova instalao ou atualizar existente."; + +"New_title" = "Nova Instalao"; +"New_description" = "Cpia de pasta /Extra, se encontrada na partio selecionada. Ser criada uma nova se selecionadas opes no instalador alm de Bootloader."; + +"Upgrade_title" = "Atualizao"; +"Upgrade_description" = "Junta na pasta /Extra, se encontrada na partio selecionada, com as opes selecionadas no instalador alm de Bootloader."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "O Chameleon requer trs arquivos essenciais (em termos simples): +boot0 (no MBR do drive) responsvel por carregar o boot1. +boot1 (no setor de boot da partio) para encontrar o boot2. +boot2 (no directrio raiz da partio) para carregar o kernel etc."; + +"Standard_title" = "Padro"; +"Standard_description" = "Instalar os arquivos do Chameleon na raiz da partio selecionada usando boot0 ou boot0md dependendo do seu sistema, sem danificar nenhuma instalao do Windows, se existir."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instalar os arquivos do Chameleon na partio EFI (normalmente oculta) usando boot0 ou boot0md dependendo do seu sistema, sem danificar nenhuma instalao do Windows, se existir."; + +"noboot_title" = "No instalar o boot loader"; +"noboot_description" = "til se voc quer instalar apenas os extras."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Mdulos do Chameleon"; +"Module_description" = "O sistema de mdulos incorporados ao Chameleon permite que um utilizador ou desenvolvedor estenda a funcionalidade bsica sem precisar substituir o arquivo boot principal."; + +"klibc_title" = "klibc"; +"klibc_description" = "Este mdulo fornece uma biblioteca C padro para link, caso a do Chameleon seja insuficiente. + usado actualmente apenas pela biblioteca uClibc++ +Fonte: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resoluo"; +"AutoReso_description" = "Este mdulo l a informao EDID do monitor conectado ao display principal. +Actualmente no est integrado ao trunk e tem uso mnimo no estado em que se encontra. +Adicionalmente o mdulo ajusta os modos VESA disponveis nas placas de vdeo pr Intel HD para proporcionar resoluo adequada no boot."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Este mdulo fornece uma biblioteca runtime C++ minimalista para uso em outros mdulos. +Ele no fornece funcionalidade por si s, mas usado para permitir o uso da linguagem C++ em outros mdulos. +Observe que rtti e exceptions foram ambos desativados. +Fonte: http://cxx.uclibc.org/ +Dependncias: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Este mdulo permite definir o mapeamento das teclas do teclado."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilitrios"; +"Utility_description" = "Arquivos opcionais para ajudar na configurao"; + +"PrefPanel_title" = "Painel de preferncias"; +"PrefPanel_description" = "Instala o painel de preferncias do Chameleon."; + +"SMBIOSDefault_title" = "SMBIOS.plist"; +"SMBIOSDefault_description" = "Copia um exemplo de smbios.plist para /Extra/Configuration."; + +"Documentation_title" = "Documentao"; +"Documentation_description" = "Documentao para instalao manual e uso do Chameleon."; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Opes de boot"; +"Options_description" = "Cria um arquivo /Extra/org.chameleon.Boot.plist e seleciona suas preferncias de configurao do Chameleon."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Oculta o banner do Chameleon na interface grfica."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Desabilita a interface grfica, ativada por padro."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Usa o logotipo legado da Apple (cinza e branco) no cran de boot, e no o do boot.png do tema."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Exibe o cran de seleo de partio sem mostrar a contagem regressiva."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Ativa o boot silencioso (sem mensagens ou opes)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Ativa a exibio de detalhes sobre parties e resoluo do cran."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pausa o processo de boot aps os ajustes do Chameleon e aguarda que uma tecla seja pressionada antes de iniciar o kernel. til para soluo de problemas quando usado em conjunto com o boot verbose."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Inicia o sistema no modo 32 bit, e no no modo padro 64 bit."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Ativa a opo que corrige falhas de EHCI ownership devido a problemas no BIOS."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Ativa a opo que inclui 'built-in' (integrado) nos dispositivos ethernet."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Ativa o HPET em chipsets Intel, para BIOS que no incluem a opo."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Essa opo permite contornar imagens de repouso com problema."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Desabilita a correo do problema ao reiniciar, ativada por padro."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Ativa a opo que reinicia os controladores UHCI antes de iniciar o OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Desativa a identificao automtica de memria RAM."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Yes vai carregar o kernel pre-linked e ignorar /Extra/Extensions e o Extensions.mkext de /System/Library/Extensions. O padro No, mas se voc usa o Lion numa partio RAID, Yes."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Tenta carregar a imagem de repouso gravada na ltima hibernao."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Novo - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Novo mtodo de gerao de C-States usando registros do SystemIO em vez de FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Descarta as tabelas SSDT da placa me."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Ativa power state especfico de processador, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Ativa power state especfico de processador, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Ativa power state especfico de processador, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Ativa a gerao automtica de estados de idle sleep do processador (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Ativa a gerao automtica de estados de power performance do processador (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Seleciona Modo Grfico 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Seleciona Modo Grfico 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Seleciona Modo Grfico 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Seleciona Modo Grfico 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Seleciona Modo Grfico 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Seleciona Modo Grfico 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Seleciona Modo Grfico 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Seleciona Modo Grfico 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Seleciona Modo Grfico 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Seleciona Modo Grfico 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Seleciona Modo Grfico 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Ativa a opo que auto detecta placas de vdeo e injecta as informaes corretas."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Ativa a opo UseAtiROM."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Ativa a opo UseNvidiaROM."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Ativa a opo VBIOS."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Modo Verbose"; +"Verbose_description" = "Ativa Modo Verbose, permite visualizar mensagens do Chameleon e do Kernel do OS X durante o boot. Essencial para detetar problemas."; + +"Singleusermode_title" = "Modo Single User"; +"Singleusermode_description" = "Usado no boot para alcanar a linha de comandos do OS X's BSD/Unix para resoluo de problemas."; + +"Ignorecaches_title" = "Ignorar Caches"; +"Ignorecaches_description" = "Usado para que o OS X carregue os ficheiros das suas pastas de sistema, em vez de usar as caches prviamente construidas."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Adiciona o parmetro npci=0x2000 em Kernel Flags."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Adiciona o parmetro npci=0x3000 em Kernel Flags."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "S Lion. Desabilita 'low power wake' caracteristica que por vezes apresenta o cran negro aps o computador acordar."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "Teclado Mac Alemo"; +"mac-de_description" = "Usa o layout para teclado Mac Alemo."; + +"mac-es_title" = "Teclado Mac Espanhol"; +"mac-es_description" = "Usa o layout para teclado Mac Espanhol."; + +"mac-fr_title" = "Teclado Mac Francs"; +"mac-fr_description" = "Usa o layout para teclado Mac Francs."; + +"mac-it_title" = "Teclado Mac Italiano"; +"mac-it_description" = "Usa o layout para teclado Mac Italiano."; + +"mac-se_title" = "Teclado Mac Sueco"; +"mac-se_description" = "Usa o layout para teclado Mac Sueco."; + +"mac-pt_title" = "Teclado Mac Portugus"; +"mac-pt_description" = "Usa o layout para teclado Mac Portugus."; + +"pc-de_title" = "Teclado PC Alemo"; +"pc-de_description" = "Usa o layout para teclado PC Alemo."; + +"pc-es_title" = "Teclado PC Espanhol"; +"pc-es_description" = "Usa o layout para teclado PC Espanhol."; + +"pc-fr_title" = "Teclado PC Francs"; +"pc-fr_description" = "Usa o layout para teclado PC Francs."; + +"pc-it_title" = "Teclado PC Italiano"; +"pc-it_description" = "Usa o layout para teclado PC Italiano."; + +"pc-se_title" = "Teclado PC Sueco"; +"pc-se_description" = "Usa o layout para teclado PC Sueco."; + +"pc-pt_title" = "Teclado PC Portugus"; +"pc-pt_description" = "Usa o layout para teclado PC Portugus"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Uma verso menor do novo tema padro, usada nas verses do Chameleon com tema embutido."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Tema padro anterior do Chameleon."; + +"Default_title" = "Standard"; +"Default_description" = "Novo tema padro do Chameleon."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "O tema Bullet por NoSmokingBandit"; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Opes Controle"; +"Control_description" = "Preferncias de controle do Chameleon."; + +// General +"General_title" = "Opes Generalistas"; +"General_description" = "Escolha de seleo de opes bsicas."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Escolha de seleo de kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Gesto Energia"; +"PowerManagement_description" = "Seleo de opes relativas a gesto de energia e speedstep."; + +// Resolution +"Resolution_title" = "Resoluo"; +"Resolution_description" = "Configura a resoluo do cran"; + +// Video +"Video_title" = "Video"; +"Video_description" = "Preferncias de Video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Temas"; +"Themes_description" = "Alguns exemplos de tema. +Mais temas podem ser encontrados em http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Nenhum"; +"ChooseNone-Resolution_description" = "No escolhe uma resoluo."; + +"ChooseNone-keylayout_title" = "Nenhum"; +"ChooseNone-keylayout_description" = "No escolhe uma keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/pt-PT.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/pt-PT.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pt-PT.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 N\'e3o instale num computador Apple Macintosh\ + +\fs22 \cf0 \ +\ +Desenvolvedores :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Agradecimentos :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Cr\'e9ditos pelos pacotes :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: artur-pt\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/pt-PT.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/pt-PT.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pt-PT.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Os scripts est\'e3o finalizados e foi gerado um\ + ficheiro \cf2 @LOG_FILENAME@\cf3 que se\ +encontra na raiz da parti\'e7\'e3o selecionada.\ +\ +\cf0 Por Favor \cf4 leia-o\cf0 para verificar se a instala\'e7\'e3o foi realizada\ +com sucesso e guarde como relat\'f3rio do que foi realizado.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/pt-PT.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/pt-PT.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pt-PT.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/bs.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/bs.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/bs.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon je kombinacija različitih komponenata bootloadera. On se zasniva na David Elliottovoj lažnoj EFI implementaciji dodanoj u Apple boot-132 projekt.

+


+

Nove funkcije u Chameleon 2.0

+


+

- Potpuno prilagođen grafički korisinički interfejs donosi vizuelna poboljšanja u Darwin Bootloaderu.

+

- Start sa retail DVD-om direktno učitava ramdisk slike bez pomoći dodatnih programa.

+

- Hibernacija. Uživajte u nastavaku rada vašeg Mac OS X-a sa pregledom slike.

+

- SMBIOS zamijena tvorničkih za modificiranu SMBIOS vrijednost.

+

- DSDT zamijena za korištenje modificiranog, ispravljenog DSDT-a koji može riješiti nekoliko problema.

+

- Implementacija svojstva uređaja putem svojstva niza.

+

- hibridni boot0 / boot1h za MBR i GPT particijske diskove.

+

- automatsko FSB kodno otkrivanje čak i za posljednje AMD procesore. 

+

- Apple softver RAID podrška.

+

- Nvidia & ATI/AMD Grafički Aktivator.

+

- Modul podrška

+

- Detekcija memorije prilagođena iz memtest86: http://www.memtest.org

+

- Automatsko generisanje P-State i C-State za izvorno upravljanje energijom.

+

- Prijava porukama.

+


+

Kod je objavljen pod verzijom 2 GNU javna licenca.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Za detaljne informacije posjetite: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/bs.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/bs.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/bs.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,401 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Ovaj softver mora biti instaliran na volumen sa kojeg se pokree."; +"ERROR_INSTALL" = "Ovaj volumen ne ispunjava uslove za ovu nadogradnju."; + +"Newer_Package_Installed_message" = "Nova verzija Chameleona ve je instalirana"; +"Intel_Mac_message" = "Ovaj softver ne mo~e biti instaliran na ovom ra +unaru"; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Tip instalacije"; +"InstallType_description" = "Odaberite za obavljanje nove instalacije ili za nadogradnju postojee instalacije."; + +"New_title" = "Nova instalacija"; +"New_description" = "Rezerva za postojei /Extra folder, ako je pronaen na ciljanoj particiji. Novi e biti stvoren ako izaberete bilo koju opciju u instaleru, osim Bootloadera."; + +"Upgrade_title" = "Nadogradnja"; +"Upgrade_description" = "Spaja postojei /Extra folder, ako je pronaen na ciljanoj particiji, sa svim opcijama izabranim iz instalera, osim Bootloadera."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Chameleon zahtjeva tri bitna fajla. (pojednostavljeno re +eno) +boot0 (MBR na disk pogonu) odgovoran za u +itavanje boot1. +boot1 (Na particiju za boot-sektor) za pronala~enje boot2. +boot2 (Na particiju za root direktorij) za u +itavanje Kernela itd."; + +"Standard_title" = "Standard"; +"Standard_description" = "instalira Chameleon fajlove u po +etnu datoteku diska (root) odabrane particije koristei bilo boot0 ili boot0md u zavisnosti od vaaeg sistema ne uniatavajui bilo kakvu Winodws instalaciju ukoliko je imate instaliranu."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instalira Chameleon fajlove za normalno skrivenu particiju EFI koristei bilo boot0 ili boot0md u zavisnosti od vaaeg sistema ne uniatavajui bilo kakvu Winodws instalaciju ukoliko je imate instaliranu."; + +"noboot_title" = "Ne instaliraj Bootloader"; +"noboot_description" = "Korisno ukoliko ~elite instalirati samo extra."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Chameleon Moduli"; +"Module_description" = "Moduli ugraeni u sistem Cameleona omoguavaju korisniku ili programeru proairenje funkcionalnosti Cameleon jezgre bez zamijene glavnog boot fajla. "; + +"klibc_title" = "klibc"; +"klibc_description" = "Ovaj modul omoguava standard c biblioteku za module za povezivanje ako chameleon biblioteka nije dovoljna. +Ovo se trenutno koristi samo sa uClibc++ bibliotekom. +Izvor: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Rezolucija"; +"AutoReso_description" = "Ovaj modul +ita edid informacije sa monitora priklju +enog na glavni ekran. +Modul trenutno nije integrisan u trunk i nije od velike primjene kao ato stoji. +Osim toga, modul e zakrpati VESA modove koji su prisutni u pred Intelovim HD grafi +kim karticama kako bi osigurale odgovarajuu rezoluciju ekrana prilikom podizanja."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Ovaj modul omoguava minimalisti +ku c++ runtime biblioteku za koriatenje u drugim modulima. +To ne pru~a funkcionalnost sama po sebi, umjesto toga, slu~i kako bi se omoguilo koriatenje c++ jezika u ostalim modulima. +Imajte na umu da su obe RTTI iznimke onemoguene. +Izvor: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Raspored tipki"; +"Keylayout_description" = "Ovaj modul omoguava korisniku da definira mapiranje tipki na tastaturi."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Korisno"; +"Utility_description" = "Menij fajlovi za pomo pri instalaciji"; + +"PrefPanel_title" = "Preferens Plo +a"; +"PrefPanel_description" = "Instalira Preferens plo +u za Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Kopira primjer smbios.plist u /Extra/Configuration."; + +"Documentation_title" = "Documentacija"; +"Documentation_description" = "Dokumentacija za Chameleon priru +nik, instaliranje i koriatenje"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Boot Opcije"; +"Options_description" = "Kreira /Extra/org.chameleon.Boot.plist i omogu +ava izbor ~eljene opcije za kontrolu Chameleon postavki."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Skriva Cameleon boot banner u grafi +kom korisni +kom inferfejsu (GUI)."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Onemoguava uklju +eni zadani korisni +ki grafi +ki interfejs."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Koristite legacy (sivi i bijeli) apple logo prilikom podizanja radije nego boot.png sliku iz teme"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Prikaz zaslona za odabir particije bez prikazivanja timeout ekrana."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Omoguava mod mirnog pokretanja (bez poruka ili redaka)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Onemoguava prikaz detalja o particiji i rezoluciji."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauzira boot proces nakon ato je Cameleon zavraio postavljanje, onda +eka na pritisak tipke prije nego se pokrene mach kernel. Korisno u kombinaciji sa verbose podizanjem za rijeaavanje problema."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Pokree jezgru (kernel) u 32bitnom modu radije nego u zadanom 64bitnom modu."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Omoguava opciju za popravak bilo kojih EHCI vlasni +kih prava zbog loaeg biosa."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Omoguava mogunost dodavanja "ugraeno" na vaae Ethernet ureaje."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Omoguava HPET na Intel +ipsetima, za biose koje ne uklju +uju ovu opciju."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Ova opcija omoguava vam da zaobiete loae uspavane slike (sleep images)."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Isklju +uje automatsko omoguavanje restart fix opcije"; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Omoguava opciju za reset UHCI kontrolera prije po +etka podizanja. "; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Isklju +uje omogueno automatsko RAM prepoznavanje."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Samo za Lion. Omoguava u +itavanje prethodno povezanog kernela. Ovo e ignorisati /E/E i /S/L/E. Ovo koristiti samo ako morate znati da sadr~i sve ato vam je potrebno."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Pokuaava da u +ita uspavanu sliku snimljenu iz prethodne hibernacije"; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "New - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Nova C-state _CST generacija metodom SystemIO registracije umjesto FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Odbacuje SSDT tablice ugraene na mati +noj plo +i."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Uklju +uje automatsko generisanje procesora u stanju mirovanja (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Omoguava automatsko generisanje snage procesora stanja performansi (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Postavite Grafi +ki Mod na 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Postavite Grafi +ki Mod na 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Postavite Grafi +ki Mod na 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Postavite Grafi +ki Mod na 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Postavite Grafi +ki Mod na 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Postavite Grafi +ki Mod na 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Postavite Grafi +ki Mod na 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Postavite Grafi +ki Mod na 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Postavite Grafi +ki Mod na 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Postavite Grafi +ki Mod na 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Postavite Grafi +ki Mod na 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Omoguava opciju auto prepoznavanja NVIDIA baziranih grafi +kih video kartica i upisuje pravilne informacije o istoj."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Uklju +uje UseAtiROM opciju."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Uklju +uje UseNvidiaROM opciju."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Uklju +uje VBIOS opciju"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Uklju +uje verbose prijavu i omoguava vam da vidite poruke iz oba Chameleon i kernel OS X prilikom pokretanja. Osnova za rjeaavanje problema."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Opcija za rjeaavanje problema koja se koristi za dizanje OS X BSD / Unix komandnog reda."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Opcija koja nije potrebna za svakodnevno podizanje, ali mo~e biti korisna ako ~elite da OS X u +ita sve fajlove iz sistemskog direktorija, radije nego se oslanjajui na pre-izgraenu predmemoriju."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Postavlja zastave npci = 0x2000 za Kernel Zastave"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Postavlja zastave npci = 0x3000 za Kernel Zastave"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Samo Lion. Isklju +uje 'low power wake' opciju koja ponekad ostavi crni ekran posije buenja iz spavanja."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Koriatenje tastature za Njema +ku Mac tastaturu"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Koriatenje tastature za `panjolsku Mac tastaturu"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Koriatenje tastature za Francusku Mac tastaturu"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Koriatenje tastature za Italijansku Mac tastaturu"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Koriatenje tastature za Svedsku Mac tastaturu"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Koriatenje tastature za Francusku PC tastaturu"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Manja, jednostavnija verzija nove zadane teme koja se koristi prilikom izgradnje Chameleon-a koji zahtjeva ugraenu temu. "; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleonova prethodno zadana tema."; + +"Default_title" = "Standard"; +"Default_description" = "Chameleonova trenutno zadana tema."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Predivna jednostavna tema od NoSmokingBandit iz Aprila 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Opcije za kontrolu rada Chameleona."; + +// General +"General_title" = "General Options"; +"General_description" = "Izaberite od selekcije iz baze opcija."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Izaberite od selekcije iz kernel zastava."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "Odabir opcija koje se bave upravljanjem potroanjom energije i SpeedStepom."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Postavlja rezoluciju ekrana za vaa monitor"; + +// Video +"Video_title" = "Video"; +"Video_description" = "Odabir opcija koje se bave s videom."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "Skup predlo~enih tema +Viae tema mo~ete pronai na http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Odabir bez rezolucije."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Odabir bez keylayouta."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/bs.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/bs.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/bs.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Instalacija nije prilago\uc0\u273 ena za Apple Macintosh kompjutere\ + +\fs22 \cf0 \ +\ +Programeri :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Hvala :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Paket :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: mistudio\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/bs.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/bs.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/bs.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Skripte su zavr\'9aile i datoteka pod\ + nazivom \cf2 @LOG_FILENAME@\cf3 je snimljena\ +na root particije diska koje ste odabrali.\ +\ +\cf0 Molimo \cf4 pro\uc0\u269 itajte ga\cf0 kako biste saznali da li je instalacija bila\ +uspije\'9ana i \uc0\u269 uvajte ga radi evidencije o tome \'9ata je u\u269 injeno\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/bs.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/bs.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/bs.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/mk.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/mk.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/mk.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon е комбинација од различни boot-loader компоненти. Базиран е на лажна EFI имплементација на David Elliott додадено на проектот boot-132 на Apple.

+


+

Нови функции во Chameleon 2.0

+


+

- Потполно прилагодлив графички интерфејс кои придонесува за визуелни подобрувања на Darwin Bootloader-от.

+

- Стартувањето на оригинални DVD-а дирекнто ја вчитува ramdisk сликата без помош од дополнителни програми.

+

- Хибернација. Ужувајте во продолжувањето на работата на вашиот Mac OS X.

+

- SMBIOS замена, за модифицирање на оригиналните SMBIOS вредности.

+

- DSDT замена, за да користите модифициран DSDT, кој што решава повеќе проблеми.

+

- Имплементирање на својства на уредите со посредство на device-properties стрингови.

+

- Хибридни boot0 / boot1h за MBR и GPT партиционирани дискови.

+

- Автоматско препознавање на FSB и за новите AMD процесори.

+

- Поддршка на Apple Software RAID.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Поддршка за модули.

+

- Детекција на меморијата адаптирано од memtest86: http://www.memtest.org

+

- Автоматско генерирање на P-State & C-State за природна контрола на процесорот.

+

- Логирање на пораки.

+


+

Овој код е објавен под верзијата 2 од Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

За повеќе информации посетете ја веб страницата : http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Property changes on: branches/JrCs/package/Resources.old/mk.lproj/Description.html ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/Resources.old/mk.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/mk.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/mk.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,697 @@ +// ============================================================================ + +// Error strings + +// ---------------------------------------------------------------------------- + +"ERROR_BOOTVOL" = "2>X A>DB25@ B@510 40 1845 8=AB0;8@0= 70 40 ?@>4>;68B5 ?>=0B0:0."; + +"ERROR_INSTALL" = "2>X 45; =5 >43>20@0 =0 10@0Z0B0 70 =04>3@0410."; + + + +"Newer_Package_Installed_message" = ">=>20 25@78X0 =0 Chameleon 5 25\5 8=AB0;8@0=0."; + +"Intel_Mac_message" = "!>DB25@>B =5 <>65 40 1845 8=AB0;8@0= =0 >2>X :><?XCB5@."; + + + + + +// ============================================================================ + +// Install Type + +// ---------------------------------------------------------------------------- + +"InstallType_title" = ""8? =0 8=AB0;0F8X0"; + +"InstallType_description" = "415@5B5 40 872@H8B5 =>20 8=AB0;0F8X0 8;8 40 X0 =04>3@048B5 ?>AB>5G:0B0 8=AB0;0F8X0."; + + + +"New_title" = ">20 8=AB0;0F8X0"; + +"New_description" = "0GC2C20Z5 =0 ?>AB>5G:0B0 ?0?:0 /Extra, 0:> 5 ?@>=0X45=0 =0 >4@545=0B0 ?0@B8F8X0. 5 1845 :@58@0=0 =>20 0:> 5 >41@0=0 =5:>X0 >?F8X0, @07;8G=0 >4 Bootloader."; + + + +"Upgrade_title" = "04>3@0410"; + +"Upgrade_description" = ">4020Z5 2> ?>AB>5G:0B0 ?0?:0 /Extra, 0:> 5 ?@>=0X45=0 =0 >4@545=0B0 ?0@B8F8X0. 5 1845 :@58@0=0 =>20 0:> 5 >41@0=0 =5:>X0 >?F8X0, @07;8G=0 >4 Bootloader."; + + + + + +// ============================================================================ + +// Bootloader + +// ---------------------------------------------------------------------------- + +"Chameleon_title" = "Chameleon"; + +"Chameleon_description" = "Chameleon->B 8<0 ?>B@510 >4 B@8 >A=>2=8 40B>B5:8. (54=>AB02=>) + +boot0 (> MBR =0 4@0X2>B) >43>2>@5= 70 2G8BC20Z5 =0 boot1. + +boot1 (> boot-A5:B>@>B =0 ?0@B8F8X0B0) 70 ?@>=0>S0Z5 =0 boot2. + +boot2 (> root ?0?:0B0 =0 ?0@B8F8X0B0) 70 2G8BC20Z5 =0 kernel->B 8B=."; + + + +"Standard_title" = "Chameleon !B0=40@4"; + +"Standard_description" = "!B0=40@4=0 8=AB0;0F8X0 =0 Chameleon"; + + + +"EFI_title" = "EFI"; + +"EFI_description" = "=AB0;0F8X0 =0 Chameleon/>28B5 40B>B5:8 2> >18G=> A:@85=0B0 EFI ?0@B8F8X0 :>@8AB5X\8 boot0 8;8 boot0md 2> 7028A=>AB >4 20H8>B A8AB5< 8 157 C=8HBC20Z5 =0 18;> :>X0 ?>AB>5G:0 Windows 8=AB0;0F8X0 HB> X0 8<0B5."; + + + +"noboot_title" = "8HB>"; + +"noboot_description" = "5 8=AB0;8@0X Chameleon (:>@8A=> 70 8=AB0;0F8X0 A0<> =0 Extra :><?>=5=B8)"; + + + + + +// ============================================================================ + +// Modules + +// ---------------------------------------------------------------------------- + +"Module_title" = "Mo4C;8"; + +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + + + +"klibc_title" = "klibc"; + +"klibc_description" = "2>X <>4C; >157154C20 AB0=40@4=0 'c' 181;8>B5:0 70 40 A5 ?>2@70B <>4C;8B5 0:> 181;8>B5:0ta >1571545=a >4 AB@0=0 =0 chameleon 5 =54>2>;=0. + +20 5 2> <><5=B>2 A0<> A5 :>@8AB8 >4 AB@0=0 =0 uClibc++ 181;8>B5:0B0. + +72>@: http://www.kernel.org/pub/linux/libs/klibc/"; + + + +"AutoReso_title" = " 57>;CF8X0"; + +"AutoReso_description" = "2>X <>4C; ja G8B0 'edid' 8=D>@<0F8X0B0 >4 <>=8B>@>B 4>4045=0 =0 3;02=8>B 5:@0=. + +>4C;>B 2> <><5=B>2 =5 5 8=B53@8@0= 2> 'trunk' 8 8<0 <8=8<0;=0 C?>B@510. + +>:@0X B>0, <>4C;>B \5 38 ?@5@01>B8?5G =0 VESA <>4>28B5 4>AB0?=8 ?@54 Intel HD 3@0D8G:8B5 :0@B8G:8 40 >1571548 A>>425B=0 @57>;CF8X0, ?@8 ?>483=C20Z5."; + + + +"uClibc_title" = "uClibc++"; + +"uClibc_description" = "2>X <>4C; >157154C20 <8=8<0;=0 C++ 181;8>B5:0 70 C?>B@510 2> 4@C38 <>4C;8. + +20 =5 >157154C20 DC=:F8>=0;=>AB A0<> ?> A515, =0<5AB> B>0 A5 :>@8AB8 70 40 >2>7<>68 C++ X078:>B 40 A5 :>@8AB8 2> 4@C38 <>4C;8. + +5 <>;8<5 8<0XB5 2> ?@54284 45:0 RTTI 8 8A:;CG>F8 A5 >=52>7<>65=8. + +72>@: http://cxx.uclibc.org/ + +028A=>AB8: klibc "; + + + +"Keylayout_title" = " 0A?>@54 =0 B0AB0BC@0"; + +"Keylayout_description" = "2>X <>4C; >2>7<>6C20 =0 :>@8A=8:>B 40 45D8=8@0 <0?8@0Z5 =0 B0AB0BC@0B0."; + + + + + +// ============================================================================ + +// Utility + +// These are currently unused!!! + +// ---------------------------------------------------------------------------- + +"Utility_title" = ";0B:8"; + +"Utility_description" = "?F8>=0;=8 0;0B:8"; + + + +"PrefPanel_title" = "Preference Panel"; + +"PrefPanel_description" = "=AB0;8@0 Preference Panel 70 Chameleon."; + + + +"SMBIOS_title" = "SMBIOS.plist"; + +"SMBIOS_description" = ">?8@0 ?@8<5@ =0 smbios.plist 2> /Extra/Configuration."; + + + +"Documentation_title" = ">:C<5=B0F8X0"; + +"Documentation_description" = ">:C<5=B0F8X0 70 Chameleon C?0BAB2> 70 8=AB0;0F8X0 8 :>@8AB5Z5"; + + + + + +// ============================================================================ + +// Boot Options - The follow options are split to match the layout OptionalSettings text files. + +// but they can be changed to suit however anyone wants to do it. + +// ---------------------------------------------------------------------------- + + + +"Options_title" = "?F88"; + +"Options_description" = ">4@0718@0=8 >?F88"; + + + +"BootBanner_title" = "BootBanner=No"; + +"BootBanner_description" = "5 3> ?@8:06C20 Chameleon's boot ;>3> 2> 3@0D8G:8>B 8=B5@D5XA."; + + + +"GUI_title" = "GUI"; + +"GUI_description" = "A:;CGC20 3@0D8G:8 8=B5@D5XA A> 4>4020Z5 =0 GUI=n 2> org.chameleon.Boot.plist"; + + + +"LegacyLogo_title" = "LegacyLogo=Yes"; + +"LegacyLogo_description" = ">@8AB5B5 3> >@838=0;=>B> (A82> =0 15;>) apple ;>3> =0<5AB> boot.png 2> B5<0B0."; + + + +"InstantMenu_title" = "InstantMenu=Yes"; + +"InstantMenu_description" = "@8:07 =0 5:@0=>B 70 871>@ =0 ?0@B8F8X0."; + + + +"QuietBoot_title" = "QuietBoot=Yes"; + +"QuietBoot_description" = ":;CGC20 B82>: boot <>4 (157 ?>@0:8 8 ?@0H0Z0)."; + + + +"ShowInfo_title" = "ShowInfo=Yes"; + +"ShowInfo_description" = ":;CGC20 ?@8:07 =0 45B0;8 70 ?0@B8F88B5 8 @57>;CF8X0B0."; + + + +"Wait_title" = "Wait=Yes"; + +"Wait_description" = "@028 ?0C70 =0 boot ?@>F5A>B =0 Chameleon 8 G5:0 =0 ?@8B8AB0Z5 =0 =5:>X B0AB5@ ?@54 =0 AB0@BC20 mach kernel. >@8A=> 2> :><18=0F8X0 A> verbose boot 70 >B:;>=C20Z5 =0 ?@>1;5<8."; + + + +// ---------------------------------------------------------------------------- + + + +"arch_title" = "arch=i386"; + +"arch_description" = ">@8AB5Z5 =0 32 18B=8>B <>4 =0<5AB> ?>4@0718@0=8>B 64 18B5=."; + + + +"EHCIacquire_title" = "EHCIacquire"; + +"EHCIacquire_description" = ">4020 EHCIacquire=y 2> org.chameleon.Boot.plist. 200 >?F8X0 ?>?@020 A5:0:28 EHCI (USB 1.0) ?@>1;5<8 ?>@048 =5:>@5:B=> =0?8H0=8 BIOS-8."; + + + +"EthernetBuiltIn_title" = "EthernetBuiltIn"; + +"EthernetBuiltIn_description" = ">4020 EthernetBuiltIn=y 2> org.chameleon.Boot.plist. 200 >?F8X0 \5 38 =0?@028 '23@045=8' 20H8B5 <@56=8 :0@B8G:8."; + + + +"ForceHPET_title" = "ForceHPET"; + +"ForceHPET_description" = ">1820 ForceHPET=y 2> org.chameleon.Boot.plist. :;CGC20 HPET ?@8 Intel G8?A5B8 70 BIOS-8, :>X =5 @0A?>;0300B A> HPET."; + + + +"ForceWake_title" = "ForceWake"; + +"ForceWake_description" = ">4020 ForceWake=y 2> org.chameleon.Boot.plist. ?F8X0B0 4>72>;C20 40 ?@5A:>:=5B5 =5:>@5:B=8 8A:;CGC20Z0 =0 >?5@0B82=8>B A8AB5<."; + + + +"RestartFix_title" = "RestartFix=No"; + +"RestartFix_description" = "0 8A:;CGC20 02B><0BA:8 2:;CG5=0B0 :>@5:F8X0 70 @5AB0@B."; + + + +"UHCIreset_title" = "UHCIreset"; + +"UHCIreset_description" = ">4020 UHCIreset=y 2> org.chameleon.Boot.plist. =8F80;870F8X0 UHCI (USB 2.0) :>=B@>;5@8B5 ?@54 AB0@BC20Z5 =0 OS X."; + + + +"UseMemDetect_title" = "UseMemDetect=No"; + +"UseMemDetect_description" = "A:;CGC20 02B><0BA:> ?@5?>7=020Z5 =0 RAM <5<>@8X0B0."; + + + +"UseKernelCache_title" = "UseKernelCache=Yes"; + +"UseKernelCache_description" = "!0<> 70 Lion. :;CGC20 CG8BC20Z5 =0 pre-linked kernel->B. 20 :5 38 83=>@8@0 /E/E 8 /S/L/E. >@8AB5B5 3> >20 A0<> 0:> AB5 A83C@=8 45:0 8<0B5 A5 HB> 28 5 ?>B@51=>."; + + + +"Wake_title" = "Wake=Yes"; + +"Wake_description" = "@>1C20 40 2G8B0 sleep image :@58@0= ?@8 ?>A;54=0B0 E815@=0F8X0."; + + + +// ---------------------------------------------------------------------------- + + + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; + +"CSTUsingSystemIO_description" = ">2 <5B>4 =0 35=5@8@0Z5 =0 C-State :>@8AB5X\8 38 SystemIO @538AB@8B5 =0<5AB> FixedHW."; + + + +"DropSSDT_title" = "DropSSDT=Yes"; + +"DropSSDT_description" = "8 >BD@;0 23@045=8B5 SSDT B015;8 >4 <0B8G=0B0 ?;>G0."; + + + +"EnableC2State_title" = "EnableC2State=Yes"; + +"EnableC2State_description" = ":;CGC20 A?5F8D8G5=0 A>AB>X10 =0 =0?>XC20Z5 =0 ?@>F5A>@>B, C2."; + + + +"EnableC3State_title" = "EnableC3State=Yes"; + +"EnableC3State_description" = ":;CGC20 A?5F8D8G5=0 A>AB>X10 =0 =0?>XC20Z5 =0 ?@>F5A>@>B, C3."; + + + +"EnableC4State_title" = "EnableC4State=Yes"; + +"EnableC4State_description" = ":;CGC20 A?5F8D8G5=0 A>AB>X10 =0 =0?>XC20Z5 =0 ?@>F5A>@>B, C4."; + + + +"GenerateCStates_title" = "Generate C-States=Yes"; + +"GenerateCStates_description" = ":;CGC20 02B><0BA:> 35=5@8@0Z5 =0 C-States 70 ?@>F5A>@>B."; + + + +"GeneratePStates_title" = "Generate P-States=Yes"; + +"GeneratePStates_description" = ":;CGC20 02B><0BA:> 35=5@8@0Z5 =0 P-States 70 ?@>F5A>@>B."; + + + +// ---------------------------------------------------------------------------- + + + +"1024x600x32_title" = "1024x600x32"; + +"1024x600x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1024x600x32"; + + + +"1024x768x32_title" = "1024x768x32"; + +"1024x768x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1024x768x32"; + + + +"1280x768x32_title" = "1280x768x32"; + +"1280x768x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1280x768x32"; + + + +"1280x800x32_title" = "1280x800x32"; + +"1280x800x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1280x800x32"; + + + +"1280x1024x32_title" = "1280x1024x32"; + +"1280x1024x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1280x1024x32"; + + + +"1280x960x32_title" = "1280x960x32"; + +"1280x960x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1280x960x32"; + + + +"1440x900x32_title" = "1440x900x32"; + +"1440x900x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1440x900x32"; + + + +"1600x900x32_title" = "1600x900x32"; + +"1600x900x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1600x900x32"; + + + +"1680x1050x32_title" = "1680x1050x32"; + +"1680x1050x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1680x1050x32"; + + + +"1920x1080x32_title" = "1920x1080x32"; + +"1920x1080x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1920x1080x32"; + + + +"1920x1200x32_title" = "1920x1200x32"; + +"1920x1200x32_description" = "> ?>AB02C20 3@0D8G:8>B @568< =0 1920x1200x32"; + + + +// ---------------------------------------------------------------------------- + + + +"GraphicsEnabler_title" = "GraphicsEnabler"; + +"GraphicsEnabler_description" = ">4020 GraphicsEnabler=y 2> org.chameleon.Boot.plist. 2B><0BA:> ?@5?>7=020Z5 =0 3@0D8G:8 :0@B8 A> nVidia G8?A5B8."; + + + +"UseAtiROM_title" = "UseAtiROM=Yes"; + +"UseAtiROM_description" = ":;CGC20 UseAtiROM >?F88."; + + + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; + +"UseNvidiaROM_description" = ":;CGC20 UseNvidiaROM >?F88."; + + + +"VBIOS_title" = "VBIOS=Yes"; + +"VBIOS_description" = ":;CGC20 VBIOS o?F8X0"; + + + +// ---------------------------------------------------------------------------- + +// Boot options - KERNEL FLAGS + +// ---------------------------------------------------------------------------- + + + +"Verbose_title" = "Verbose Mode"; + +"Verbose_description" = "> 2:;CGC20 >?H8@=>B> ;>38@0Z5 8 28 >2>7<>6C20 40 38 2848B5 ?>@0:8B5 >4 Chameleon 8 OS X kernel->B ?@8 2G8BC20Z5. 20 5 >4 ACHB8=A:> 7=0G5Z5 70 @5H020Z5 =0 ?@>1;5<8."; + + + +"Singleusermode_title" = "Single User Mode"; + +"Singleusermode_description" = "?F8X0 70 2G8BC20Z5 =0 OS X 2> BSD/Unix :><0=4=0 ;8=8X0."; + + + +"Ignorecaches_title" = "Ignore Caches"; + +"Ignorecaches_description" = "5 5 >?F8X0 HB> 5 ?>B@51=0 70 A5:>X4=52=0 ?>483=C20Z5, => B>0 <>65 40 1845 :>@8A=> 0:> A0:0B5 OS X 40 38 2G8B0 A8B5 40B>B5:8 >4 A8AB5<A:8B5 ?0?:8, =0<5AB> 40 A5 ?>B?8@0 =0 23@045=8B5 :5H 40B>B5:8."; + + + +"Npci_title" = "npci=0x2000"; + +"Npci_description" = "0 =04<8=C20Z5 =0 70:>GC20Z5B> =0 'PCI configuration begin' =0 =5:>8 A8AB5<8. 0x2000 5 kIOPCIConfiguratorPFM64 >7=0:0, :0:> HB> A5 3;540 2> 872>@=8>B :>4 =0 IOPCIFamily."; + + + +"Npci3_title" = "npci=0x3000"; + +"Npci3_description" = "0 =04<8=C20Z5 =0 70:>GC20Z5B> =0 'PCI configuration begin' =0 =5:>8 A8AB5<8. 0x3000 5 kIOPCIConfiguratorPFM64 >7=0:0, :0:> HB> A5 3;540 2> 872>@=8>B :>4 =0 IOPCIFamily."; + + + +"Darkwake_title" = "darkwake=0"; + +"Darkwake_description" = "!0<> 70 Lion. 0 8A:;CGC20 <>6=>AB0 'low power wake' :>X0 HB> ?>=5:>30H >AB020 F@= 5:@0= ?>A;5 1C45Z5B> >4 70A?820Z5."; + + + + + +// ---------------------------------------------------------------------------- + +// Boot options - KEYMAPS + +// ---------------------------------------------------------------------------- + + + +"mac-de_title" = "German Mac Keyboard"; + +"mac-de_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 5@<0=A:0 Mac B0AB0BC@0"; + + + +"mac-es_title" = "Spanish Mac Keyboard"; + +"mac-es_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 (?0=A:0 Mac B0AB0BC@0"; + + + +"mac-fr_title" = "French Mac Keyboard"; + +"mac-fr_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 $@0=FCA:0 Mac B0AB0BC@0"; + + + +"mac-it_title" = "Italian Mac Keyboard"; + +"mac-it_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 B0;8X0=A:0 Mac B0AB0BC@0"; + + + +"mac-se_title" = "Swedish Mac Keyboard"; + +"mac-se_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 (254A:0 Mac B0AB0BC@0"; + + + +"mac-pt_title" = "Portuguese Mac Keyboard"; + +"mac-pt_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 >@BC30;8X0 Mac B0AB0BC@0"; + + + +"pc-de_title" = "German PC Keyboard"; + +"pc-de_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 5@<0=A:0 PC B0AB0BC@0"; + + + +"pc-es_title" = "Spanish PC Keyboard"; + +"pc-es_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 (?0=A:0 PC B0AB0BC@0"; + + + +"pc-fr_title" = "French PC Keyboard"; + +"pc-fr_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 $@0=FCA:0 PC B0AB0BC@0"; + + + +"pc-it_title" = "Italian PC Keyboard"; + +"pc-it_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 B0;8X0=A:0 PC B0AB0BC@0"; + + + +"pc-se_title" = "Swedish PC Keyboard"; + +"pc-se_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 (254A:0 PC B0AB0BC@0"; + + + +"pc-pt_title" = "Portuguese PC Keyboard"; + +"pc-pt_description" = ">@8AB5B5 @0A?>@54 =0 B0AB0BC@0 70 >@BC30;8X0 PC B0AB0BC@0"; + + + +// ---------------------------------------------------------------------------- + +// Boot options - THEMES + +// ---------------------------------------------------------------------------- + + + +"Embed_title" = "Embed"; + +"Embed_description" = "0;0 54=>AB02=0 25@78X0 >4 =>20B0 ?@8<0@=0 B5<0 HB> A5 :>@8AB8 ?@8 :@58@0Z5 =0 25@78X0 >4 Chameleon HB> 10@0 23@045=0 B5<0. "; + + + +"Legacy_title" = "Legacy"; + +"Legacy_description" = "@5BE>4=0B0 23@045=0 B5=0 =0 Chameleon"; + + + +"Default_title" = "!B0=40@4=0"; + +"Default_description" = "3@045=0B0 B5<0 2> Chameleon."; + + + +"Bullet_title" = "Bullet"; + +"Bullet_description" = "The Bullet B5<0 >4 NoSmokingBandit"; + + + + + +// ============================================================================ + +// The filenames from OptionalSettings text files' become sub menu headings. + +// These sub menu headings need titles and descriptions. + +// ---------------------------------------------------------------------------- + +// Control + + + +"Control_title" = "?F88 70 :>=B@>;0"; + +"Control_description" = ">45AC20Z0 70 :>=B@>;0 =0 @01>B0B0 =0 Chameleon."; + + + +// General + +"General_title" = "A=>2=8 >?F88"; + +"General_description" = "71>@ >4 A5:F8X0B0 =0 >A=>2=8 >?F88."; + + + +// KernelFlags + +"KernelFlags_title" = "Kernel 7=0:8"; + +"KernelFlags_description" = "71>@ >4 A5:F8X0B0 =0 >7=0:8B5 =0 kernel->B."; + + + +// PowerManagement + +"PowerManagement_title" = "5=0_<5=0B =0 =0?>XC20Z5"; + +"PowerManagement_description" = "71>@ >4 A5:F8X0B0 =0 <5=0_8@0Z5 =0 =0?>XC20Z5B>."; + + + +// Resolution + +"Resolution_title" = " 57>;CF8X0"; + +"Resolution_description" = "Set one resolution to use."; + + + +// Video + +"Video_title" = "845>"; + +"Video_description" = "?F88 :>8 A5 >4=5AC200B 70 3@0D8:0B0."; + + + +// Keymaps + +"Keymaps_title" = " 0A?>@54 =0 B0AB0BC@0"; + +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + + + +// Themes + +"Themes_title" = ""5<8"; + +"Themes_description" = ">;5:F8X0 >4 B5<8 + +>25\5 B5<8 <>65 40 A5 =0X40B =0 http://forum.voodooprojects.org/index.php/board,7.0.html"; + + + + + +// ============================================================================ + +// Exclusive boot options string - These are added automatically by buildpkg + +// Name to be used should be ChooseNone-xxxxxx + +// Where xxxxx = the name of the BootOptions file (minus the .txt) + +// ---------------------------------------------------------------------------- + +"ChooseNone-Resolution_title" = "8HB>"; + +"ChooseNone-Resolution_description" = "5 8718@0XB5 @57>;CF8X0."; + + + +"ChooseNone-keylayout_title" = "8HB>"; + +"ChooseNone-keylayout_description" = "5 8718@0XB5 @0A?>@54 =0 B0AB0BC@0."; + + \ No newline at end of file Property changes on: branches/JrCs/package/Resources.old/mk.lproj/Localizable.strings ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/Resources.old/mk.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/mk.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/mk.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 \uc0\u1053 \u1077 \u1080 \u1085 \u1089 \u1090 \u1072 \u1083 \u1080 \u1088 \u1072 \u1112 \u1090 \u1077 \u1085 \u1072 Apple Macintosh \u1082 \u1086 \u1084 \u1087 \u1112 \u1091 \u1090 \u1077 \u1088 \ + +\fs22 \cf0 \ +\ +\uc0\u1044 \u1077 \u1074 \u1077 \u1083 \u1086 \u1087 \u1077 \u1088 \u1080 :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +\uc0\u1041 \u1083 \u1072 \u1075 \u1086 \u1076 \u1072 \u1088 \u1085 \u1086 \u1089 \u1090 \u1076 \u1086 :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 \uc0\u1055 \u1072 \u1082 \u1077 \u1090 :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language \uc0\u1087 \u1088 \u1077 \u1074 \u1077 \u1076 \u1077 \u1085 \u1080 \u1086 \u1076 \u1089 \u1090 \u1088 \u1072 \u1085 \u1072 \u1085 \u1072 : kn6600\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/mk.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/mk.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/mk.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +\uc0\u1057 \u1082 \u1088 \u1080 \u1087 \u1090 \u1072 \u1090 \u1072 \u1077 \u1079 \u1072 \u1074 \u1088 \u1096 \u1077 \u1085 \u1072 \u1080 \u1076 \u1072 \u1090 \u1086 \u1090 \u1077 \u1082 \u1072 \ + \uc0\u1089 \u1086 \u1080 \u1084 \u1077 \cf2 @LOG_FILENAME@\cf3 \uc0\u1077 \ +\uc0\u1079 \u1072 \u1087 \u1080 \u1096 \u1072 \u1085 \u1072 \u1074 \u1086 root \u1085 \u1072 \u1080 \u1079 \u1073 \u1088 \u1072 \u1085 \u1072 \u1090 \u1072 \u1087 \u1072 \u1088 \u1090 \u1080 \u1094 \u1080 \u1112 \u1072 .\ +\ +\cf0 \uc0\u1042 \u1077 \u1084 \u1086 \u1083 \u1080 \u1084 \u1077 \cf4 \uc0\u1087 \u1088 \u1086 \u1095 \u1080 \u1090 \u1072 \u1112 \u1090 \u1077 \u1112 \u1072 \cf0 \uc0\u1076 \u1072 \u1076 \u1086 \u1079 \u1085 \u1072 \u1077 \u1090 \u1077 \u1076 \u1072 \u1083 \u1080 \u1080 \u1085 \u1089 \u1090 \u1072 \u1083 \u1072 \u1094 \u1080 \u1112 \u1072 \u1090 \u1072 \ + \uc0\u1077 \u1091 \u1089 \u1087 \u1077 \u1096 \u1085 \u1072 \u1080 \u1076 \u1072 \u1080 \u1084 \u1072 \u1090 \u1077 \u1077 \u1074 \u1080 \u1076 \u1077 \u1085 \u1094 \u1080 \u1112 \u1072 \u1079 \u1072 \u1096 \u1090 \u1086 \u1077 \u1085 \u1072 \u1087 \u1088 \u1072 \u1074 \u1077 \u1085 \u1086 .\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/mk.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/mk.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/mk.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/es.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/es.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/es.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

El Bootloader Chameleon es la combinación de varios componentes. Esta basado en la implementación EFI falsa de David Elliott, incorporada al método Boot-132, a partir del proyecto de código abierto Darwin de Apple

+


+

Entre las Novedades en Chameleon v2 se encuentran muchas funciones extendidas, por ejemplo:

+


+

- Interfaz GUI totalmente personalizada para brindarle más colorido al Dawin Bootloader.

+

- Booteo de DVDs con simplemente cargar una imagen ramdisk sin la ayuda de programas adicionales.

+

- Hibernación. Disfrute reanudar su MAC OS X con una imagen de muestra.

+

- Anulación de SMBIOS, para modificar los valores de fábrica SMBIOS.

+

- Anulación de DSDT, para usar un DSDT modificado y arreglado capaz de resolver varios inconvenientes.

+

- Inyección de Propiedades de Dispositivos a través de EFI strings.

+

- Permite el arranque de esquemas híbridos boot0 / boot1h, para discos particionados en MBR y GPT.

+

- Detección automática de frecuencia FSB para CPUs AMD recientes.

+

- Soporte para Software RAID de Apple.

+

- Habilitación de soporte para Gráficas Nvidia & ATI/AMD.

+

- Soporte de carga por Módulos.

+

- Detección de Memoria adaptada desde memtest86: http://www.memtest.org

+

- Generación automática de P-States & C-States para gestión de energía nativa.

+

- Registro de Mensajes.

+


+

El código está liberado bajo la versión 2 de la Licencia Pública GNU.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Para información más detallada, preguntas y respuestas visitar: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/es.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/es.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/es.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,697 @@ +// ============================================================================ + +// Error strings + +// ---------------------------------------------------------------------------- + +"ERROR_BOOTVOL" = "Este software debe ser instalado en el volumen de inicio."; + +"ERROR_INSTALL" = "Este volumen no cumple con los requisitos necesarios para esta actualizacin "; + + + +"Newer_Package_Installed_message" = "Una versin ms reciente de Chameleon ya ha sido instalada."; + +"Intel_Mac_message" = "Este software no puede ser instalado en este ordenador."; + + + + + +// ============================================================================ + +// Install Type + +// ---------------------------------------------------------------------------- + +"InstallType_title" = "Tipo de Instalacin"; + +"InstallType_description" = "Realizar una instalacin nueva o actualizar una instalacin existente del gestor de arranque (Bootloader)."; + + + +"New_title" = "Instalacin Nueva"; + +"New_description" = "Realizar Copia de seguridad de una carpeta existente /Extra, si es encontrada en la particin de destino. Una nueva ser creada si se eligen opciones desde el instalador, aparte del Bootloader en si mismo."; + + + +"Upgrade_title" = "Actualizacin"; + +"Upgrade_description" = "Combinar una carpeta existente /Extra, si se encuentra en el destino, con las opciones elegidas a partir de la instalacin, aparte del Bootloader en si mismo."; + + + + + +// ============================================================================ + +// Bootloader + +// ---------------------------------------------------------------------------- + +"Chameleon_title" = "Bootloader Chameleon"; + +"Chameleon_description" = "Chameleon requiere tres archivos esenciales (en trminos simples). + +boot0 (En el MBR del disco) responsable de cargar boot1. + +boot1 (En el sector de arranque de la particin) para colocar boot2. + +boot2 (En el directorio raz de la particin) para cargar el kernel, etc."; + + + +"Standard_title" = "Estndar"; + +"Standard_description" = "Instalar los archivos de Chameleon al directorio raz de la particin seleccionada, usando boot0 o boot0md dependiendo de su sistema, sin destruir ninguna instalacin de Windows, si usted la tiene."; + + + +"EFI_title" = "EFI"; + +"EFI_description" = "Instalar los archivos de Chameleon a la particin EFI, normalmente oculta, usando boot0 o boot0md dependiendo de su sistema, sin destruir ninguna instalacin de Windows, si usted la tiene."; + + + +"noboot_title" = "No instalar el Bootloader"; + +"noboot_description" = "til si usted desea instalar solamente los componentes Extras del paquete."; + + + + + +// ============================================================================ + +// Modules + +// ---------------------------------------------------------------------------- + +"Module_title" = "Mdulos de Chameleon"; + +"Module_description" = "El sistema de mdulos incorporado en Chameleon permite al usuario o desarrollador extender las funcionalidades principales del Bootloader, sin reempalzar el binario principal boot."; + + + +"klibc_title" = "klibc"; + +"klibc_description" = "Este mdulo provee una biblioteca estndar C, para que los mdulos conecten an si la biblioteca proporcionada por Chameleon es insuficiente. + +Es en la actualidad solamente usado por la biblioteca uClibc++. + +Recurso: http://www.kernel.org/pub/linux/libs/klibc/"; + + + +"AutoReso_title" = "AutoResolucin"; + +"AutoReso_description" = "Este mdulo lee la informacin EDID desde el monitor conectado a la pantalla principal. + +El mdulo no est actualmente integrado a la troncal (trunk) principal, por tener un mnimo uso tal y como estn las cosas. + +Adicionalmente, el mdulo parchear los modos VESA disponibles en tarjetas grficas pre HD de INTEL, lo cual proveer una resolucin apropiada durante el arranque."; + + + +"uClibc_title" = "uClibc++"; + +"uClibc_description" = "Este mdulo provee una biblioteca de tiempo de ejecucin minimalista C++ para usar en otros mdulos. + +Esto no proporciona funcionalidad por s mismo, en su lugar se utiliza para permitir que el lenguaje C++ sea utilizado en otros mdulos. + +Por favor tenga en cuenta que rtti y excepciones han sido ambas deshabilitadas. + +Recurso: http://cxx.uclibc.org/ + +Dependencias: klibc"; + + + +"Keylayout_title" = "Keylayout"; + +"Keylayout_description" = "Este mdulo permite al usuario definir las asignaciones de teclas del teclado."; + + + + + +// ============================================================================ + +// Utility + +// These are currently unused!!! + +// ---------------------------------------------------------------------------- + +"Utility_title" = "Utilidades"; + +"Utility_description" = "Archivos opcionales para facilitar la configuracin"; + + + +"PrefPanel_title" = "Panel de Preferencias"; + +"PrefPanel_description" = "Instala el Panel de Preferencias para Chameleon."; + + + +"SMBIOS_title" = "SMBIOS.plist"; + +"SMBIOS_description" = "Copia un ejemplo de Perfil smbios.plist en /Extra/Configuration."; + + + +"Documentation_title" = "Documentacin"; + +"Documentation_description" = "Documentacin de Chameleon, para su instalacin manual y uso"; + + + + + +// ============================================================================ + +// Boot Options - The follow options are split to match the layout OptionalSettings text files. + +// but they can be changed to suit however anyone wants to do it. + +// ---------------------------------------------------------------------------- + + + +"Options_title" = "Opciones de Arranque"; + +"Options_description" = "Crear un archivo /Extra/org.chameleon.Boot.plist y seleccionar las opciones deseadas para configurar los parmetros de Chameleon."; + + + +"BootBanner_title" = "BootBanner=No"; + +"BootBanner_description" = "Oculta la interfaz grfica de Chameleon."; + + + +"GUI_title" = "GUI=No"; + +"GUI_description" = "Desactiva la interfaz grfica desde el org.chameleon.Boot.plist"; + + + +"LegacyLogo_title" = "LegacyLogo=Yes"; + +"LegacyLogo_description" = "Usar el tradicional logo de Apple (gris sobre blanco) durante el arranque en pantalla, en vez de la imagen boot.png del tema."; + + + +"InstantMenu_title" = "InstantMenu=Yes"; + +"InstantMenu_description" = "Muestra la pantalla de seleccin de particiones sin el tiempo de espera."; + + + +"QuietBoot_title" = "QuietBoot=Yes"; + +"QuietBoot_description" = "Habilita el modo de arranque silencioso (sin mensajes o cursor)."; + + + +"ShowInfo_title" = "ShowInfo=Yes"; + +"ShowInfo_description" = "Habilita el texto en pantalla sobre las particiones y detalles de resolucin."; + + + +"Wait_title" = "Wait=Yes"; + +"Wait_description" = "Pausa el proceso de arranque despus de que Chameleon ha finalizado de configurar, en espera de presionar una tecla para cargar el kernel. til al ser combinado con el modo verbose (-v) para diagnosticar problemas."; + + + +// ---------------------------------------------------------------------------- + + + +"arch_title" = "arch=i386"; + +"arch_description" = "Carga el kernel en modo 32bit, en vez de usar el modo por defecto de 64bit."; + + + +"EHCIacquire_title" = "EHCIacquire=Yes"; + +"EHCIacquire_description" = "Esta opcin corrige cualquier problema de los puertos EHCI (USB 2.0) debido a malas BIOS."; + + + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; + +"EthernetBuiltIn_description" = "Agrega el flag al org.chameleon.Boot.plist para la integracin con el dispositivo Ethernet para Time Machine, App Store, iCloud, etc."; + + + +"ForceHPET_title" = "ForceHPET=Yes"; + +"ForceHPET_description" = "Habilita el HPET en chipsets intel, para aquellas BIOS que no incluyen dicha opcin."; + + + +"ForceWake_title" = "ForceWake=Yes"; + +"ForceWake_description" = "Habilita la opcin de ignorar imgenes de reposo o hibernacin defectuosas."; + + + +"RestartFix_title" = "RestartFix=No"; + +"RestartFix_description" = "Deshabilita la opcin predeterminada de arreglo del Reinicio."; + + + +"UHCIreset_title" = "UHCIreset=Yes"; + +"UHCIreset_description" = "Reconfigura los controladores UHCI (USB 1.0) antes de iniciar OS X."; + + + +"UseMemDetect_title" = "UseMemDetect=No"; + +"UseMemDetect_description" = "Deshabilita el reconocimiento automtico de memoria RAM predeterminado."; + + + +"UseKernelCache_title" = "UseKernelCache=Yes"; + +"UseKernelCache_description" = "Para Lion solamente. Permite la carga del pre-linked kernel. Esto ignorar /E/E y /S/L/E desde su cach tradicional Extensions.mkext. SLO utilice esta opcin sabiendo que contiene todo lo necesario."; + + + +"Wake_title" = "Wake=Yes"; + +"Wake_description" = "Intenta cargar la imagen de reposo salvada desde la ltima hibernacin."; + + + +// ---------------------------------------------------------------------------- + + + +"CSTUsingSystemIO_title" = "New - Generate C-States=Yes"; + +"CSTUsingSystemIO_description" = "Nuevo flag para generar C-States usando los registros SystemIO en lugar de FixedHW."; + + + +"DropSSDT_title" = "DropSSDT=Yes"; + +"DropSSDT_description" = "Descarta las tablas SSDT anexas a la placa base."; + + + +"EnableC2State_title" = "EnableC2State=Yes"; + +"EnableC2State_description" = "Habilita el estado especfico del Procesador, C2."; + + + +"EnableC3State_title" = "EnableC3State=Yes"; + +"EnableC3State_description" = "Habilita el estado especfico del Procesador, C3."; + + + +"EnableC4State_title" = "EnableC4State=Yes"; + +"EnableC4State_description" = "Habilita el estado especfico del Procesador, C4."; + + + +"GenerateCStates_title" = "Generate C-States=Yes"; + +"GenerateCStates_description" = "Habilita la generacin automtica de estados de reposo o C-States del procesador."; + + + +"GeneratePStates_title" = "Generate P-States=Yes"; + +"GeneratePStates_description" = "Habilita la generacin automtica de estados de carga o P-States del procesador."; + + + +// ---------------------------------------------------------------------------- + + + +"1024x600x32_title" = "1024x600x32"; + +"1024x600x32_description" = "Establecer el Modo de Grficos en 1024x600x32"; + + + +"1024x768x32_title" = "1024x768x32"; + +"1024x768x32_description" = "Establecer el Modo de Grficos en 1024x768x32"; + + + +"1280x768x32_title" = "1280x768x32"; + +"1280x768x32_description" = "Establecer el Modo de Grficos en 1280x768x32"; + + + +"1280x800x32_title" = "1280x800x32"; + +"1280x800x32_description" = "Establecer el Modo de Grficos en 1280x800x32"; + + + +"1280x1024x32_title" = "1280x1024x32"; + +"1280x1024x32_description" = "Establecer el Modo de Grficos en 1280x1024x32"; + + + +"1280x960x32_title" = "1280x960x32"; + +"1280x960x32_description" = "Establecer el Modo de Grficos en 1280x960x32"; + + + +"1440x900x32_title" = "1440x900x32"; + +"1440x900x32_description" = "Establecer el Modo de Grficos en 1440x900x32"; + + + +"1600x900x32_title" = "1600x900x32"; + +"1600x900x32_description" = "Establecer el Modo de Grficos en 1600x900x32"; + + + +"1680x1050x32_title" = "1680x1050x32"; + +"1680x1050x32_description" = "Establecer el Modo de Grficos en 1680x1050x32"; + + + +"1920x1080x32_title" = "1920x1080x32"; + +"1920x1080x32_description" = "Establecer el Modo de Grficos en 1920x1080x32"; + + + +"1920x1200x32_title" = "1920x1200x32"; + +"1920x1200x32_description" = "Establecer el Modo de Grficos en 1920x1200x32"; + + + +// ---------------------------------------------------------------------------- + + + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; + +"GraphicsEnabler_description" = "Habilita la autodeteccin de GPUs NVIDIA e inyecta la informacin correcta."; + + + +"UseAtiROM_title" = "UseAtiROM=Yes"; + +"UseAtiROM_description" = "Habilita las opciones AtiROM."; + + + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; + +"UseNvidiaROM_description" = "Habilita las opciones NvidiaROM."; + + + +"VBIOS_title" = "VBIOS=Yes"; + +"VBIOS_description" = "En grficas NVIDIA habilita la opcin VBIOS"; + + + +// ---------------------------------------------------------------------------- + +// Boot options - KERNEL FLAGS + +// ---------------------------------------------------------------------------- + + + +"Verbose_title" = "Modo Verbose (-v)"; + +"Verbose_description" = "Activa el registro detallado y le permite ver los mensajes desde ambos Chameleon y el kernel, durante el arranque. Esencial para la solucin de problemas."; + + + +"Singleusermode_title" = "Modo Single User (-s)"; + +"Singleusermode_description" = "Es una opcin de solucin de problemas utilizada para arrancar en la lnea de comandos BSD/Unix de OS X."; + + + +"Ignorecaches_title" = "Ignore Caches (-f)"; + +"Ignorecaches_description" = "No es una opcin comn que se necesita para arrancar, pero puede ser til si desea que OS X cargue todos los archivos de las carpetas del sistema, en lugar de confiar en la cach preconstruida."; + + + +"Npci_title" = "npci=0x2000"; + +"Npci_description" = "Colocar el flag npci=0x2000 en Kernel Flags. til desde la 10.6.8 para el problema PCI Configuration Begin."; + + + +"Npci3_title" = "npci=0x3000"; + +"Npci3_description" = "Colocar el flag npci=0x3000 en Kernel Flags. til desde la 10.6.8 para el problema PCI Configuration Begin."; + + + +"Darkwake_title" = "darkwake=0"; + +"Darkwake_description" = "Lion solamente. Desactiva la funcin 'low power wake', que a veces puede dejar la pantalla en negro despus de despertar del reposo."; + + + + + +// ---------------------------------------------------------------------------- + +// Boot options - KEYMAPS + +// ---------------------------------------------------------------------------- + + + +"mac-de_title" = "Teclado Mac Alemn"; + +"mac-de_description" = "Use una disposicin para un teclado Mac en Alemn"; + + + +"mac-es_title" = "Teclado Mac Espaol"; + +"mac-es_description" = "Use una disposicin para un teclado Mac en Espaol"; + + + +"mac-fr_title" = "Teclado Mac Francs"; + +"mac-fr_description" = "Use una disposicin para un teclado Mac en Francs"; + + + +"mac-it_title" = "Teclado Mac Italiano"; + +"mac-it_description" = "Use una disposicin para un teclado Mac en Italiano"; + + + +"mac-se_title" = "Teclado Mac Sueco"; + +"mac-se_description" = "Use una disposicin para un teclado Mac en Sueco"; + + + +"mac-pt_title" = "Teclado Mac Portugus"; + +"mac-pt_description" = "Use una disposicin para un teclado Mac en Portugus"; + + + +"pc-de_title" = "Teclado de PC Alemn"; + +"pc-de_description" = "Use una disposicin para un teclado de PC en Alemn"; + + + +"pc-es_title" = "Teclado de PC Espaol"; + +"pc-es_description" = "Use una disposicin para un teclado de PC en Espaol"; + + + +"pc-fr_title" = "Teclado de PC Francs"; + +"pc-fr_description" = "Use una disposicin para un teclado de PC en Francs"; + + + +"pc-it_title" = "Teclado de PC Italiano"; + +"pc-it_description" = "Use una disposicin para un teclado de PC en Italiano"; + + + +"pc-se_title" = "Teclado de PC Sueco"; + +"pc-se_description" = "Use una disposicin para un teclado de PC en Sueco"; + + + +"pc-pt_title" = "Teclado de PC "; + +"pc-pt_description" = "Use una disposicin para un teclado de PC en Portugus"; + + + +// ---------------------------------------------------------------------------- + +// Boot options - THEMES + +// ---------------------------------------------------------------------------- + + + +"Embed_title" = "Embed"; + +"Embed_description" = "Versin simplificada del nuevo tema por defecto, esto se acostumbra cada vez que se crean nuevas versiones de Chameleon, es requerido."; + + + +"Legacy_title" = "Legacy"; + +"Legacy_description" = "El tema anterior por defecto de Chameleon"; + + + +"Default_title" = "Estndar"; + +"Default_description" = "El nuevo tema predeterminado de Chameleon"; + + + +"Bullet_title" = "Bullet"; + +"Bullet_description" = "El tema Bullet de Nosmokingbandit"; + + + + + +// ============================================================================ + +// The filenames from OptionalSettings text files' become sub menu headings. + +// These sub menu headings need titles and descriptions. + +// ---------------------------------------------------------------------------- + +// Control + + + +"Control_title" = "Opciones de Control"; + +"Control_description" = "Ajustes para controlar cmo funciona Chameleon."; + + + +// General + +"General_title" = "Opciones Generales"; + +"General_description" = "Elige entre una seleccin de opciones de bsicas."; + + + +// KernelFlags + +"KernelFlags_title" = "Kernel Flags"; + +"KernelFlags_description" = "Elige entre una seleccin de kernel flags."; + + + +// PowerManagement + +"PowerManagement_title" = "Gestin de Energa"; + +"PowerManagement_description" = "Una seleccin de las opciones relacionadas con la administracin de energa y speedstep."; + + + +// Resolution + +"Resolution_title" = "Resolucin"; + +"Resolution_description" = "Permite fijar la resolucin de pantalla para nuestro monitor"; + + + +// Video + +"Video_title" = "Video"; + +"Video_description" = "Una seleccin de opciones relacionadas con el video."; + + + +// Keymaps + +"Keymaps_title" = "KeyLayout"; + +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + + + +// Themes + +"Themes_title" = "Temas"; + +"Themes_description" = "Una coleccin de Temas de muestra. + +Puedes encontrar ms temas en http://forum.voodooprojects.org/index.php/board,7.0.html"; + + + + + +// ============================================================================ + +// Exclusive boot options string - These are added automatically by buildpkg + +// Name to be used should be ChooseNone-xxxxxx + +// Where xxxxx = the name of the BootOptions file (minus the .txt) + +// ---------------------------------------------------------------------------- + +"ChooseNone-Resolution_title" = "Ninguna"; + +"ChooseNone-Resolution_description" = "No seleccionar ninguna resolucin."; + + + +"ChooseNone-keylayout_title" = "Ninguno"; + +"ChooseNone-keylayout_description" = "No seleccionar ningn keylayout."; + + \ No newline at end of file Index: branches/JrCs/package/Resources.old/es.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/es.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/es.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 No lo instale en un ordenador Apple Macintosh\ + +\fs22 \cf0 \ +\ +Programadores :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Gracias a :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Paquete :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language traducido por: juanerson\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/es.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/es.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/es.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Los scripts se han completado y un archivo\ + de nombre \cf2 @LOG_FILENAME@\cf3 ha sido\ +escrito en la ra\'edz de la partici\'f3n seleccionada.\ +\ +\cf0 Por favor \cf4 l\'e9alo\cf0 para saber si la instalaci\'f3n fue\ +exitosa y mantener un registro de lo que se hizo.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/es.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/es.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/es.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/fr.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/fr.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/fr.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon est un chargeur d'amorçage construit en utilisant une combinaison de composants qui a elle même évoluée à partir du développement de l'implémentation "fake EFI" de David Elliott, qui a été ajoutée au projet boot-132 d'Apple.

+


+

Chameleon v2 a été, au fur et à mesure, mis à jour avec nombre de fonctions :

+


+

- Interface utilisateur customisable, pour donner un peu de piment au chargeur d'amorçage Darwin.

+

- Chargement possible d'un "RAMDisk" pour pouvoir démarrer un DVD officiel de Mac OS X sans logiciels tiers.

+

- Mise en veille prolongée. Permet de reprendre votre session de travail instantanément via une image d'hibernation.

+

- Prise en charge d'un SMBIOS modifié. Permet d'outrepasser le SMBIOS d'origine de votre machine.

+

- Prise en charge d'un DSDT modifié. Permet d'appliquer un DSDT patché et résoudre beaucoup de problèmes.

+

- Injection des propriétés de périphériques via une chaîne de caractère "device-properties".

+

- Fichiers boot0 et boot1h hybrides. Permet l'utilisation de disques partitionés en MBR ou GPT.

+

- Detection automatique du FSB, même pour les processeurs AMD récents.

+

- Support du RAID Logiciel d'Apple.

+

- Activateur graphique Nvidia & ATI/AMD intégré.

+

- Support de modules (extensions de Chameleon).

+

- Détection mémoire adaptée de memtest86 : http://www.memtest.org

+

- Génération automatique des P-State & C-State pour une gestion de l'alimentation native.

+

- Journalisation des messages console.

+


+

Le code est publié sous la version 2 de la licence GPL (Gnu Public License).

+

http://forge.voodooprojects.org/p/chameleon

+


+

Questions fréquentes (en anglais): http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/fr.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/fr.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/fr.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,350 @@ +// ============================================================================ +// Messages d'rreur +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Ce logiciel doit tre install sur le volume de dmarrage."; +"ERROR_INSTALL" = "Ce volume n'a pas les caractristiques requises pour cette mise jour."; + +"Newer_Package_Installed_message" = "Une version plus rcente de Chameleon est dja installe."; +"Intel_Mac_message" = "Ce logiciel ne peut pas tre install sur cet ordinateur."; + + +// ============================================================================ +// Type d'installation +// ---------------------------------------------------------------------------- +"InstallType_title" = "Type d'installation"; +"InstallType_description" = "Choisissez de faire une nouvelle installation ou d'en mettre jour une existante."; + +"New_title" = "Nouvelle installation"; +"New_description" = "Sauvegarde un dossier /Extra existant, si trouv sur la partition cible. Un nouveau dossier sera cre si vous choisissez n'importe quelle option en plus de l'amoreur de dmarrage."; + +"Upgrade_title" = "Mise jour"; +"Upgrade_description" = "Fusionne un dossier /Extra existant, si trouv sur la partition cible, avec n'importe quelle option choisie en plus de l'amoreur de dmarrage."; + + +// ============================================================================ +// Amoreur de dmarrage +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Amoreur de dmarrage Chameleon"; +"Chameleon_description" = "Chameleon requiert trois fichiers essentiels. +boot0 (Sur le MBR du disque) responsable du chargement de boot1. +boot1 (Sur le secteur d'amorage de la partition) qui cherche boot2. +boot2 (A la racine de la partition) qui charge le noyau, etc."; + +"Standard_title" = "Standard"; +"Standard_description" = "Installe les fichiers de Chameleon sur la racine de la partition slectionne en utilisant soit boot0, soit boot0md, selon votre systme, sans dtruire aucune installation Windows existante, si il y en a une."; + +"EFI_title" = "EFI"; +"EFI_description" = "Installe les fichiers de Chameleon sur la partition systme cache 'EFI' en utilisant soit boot0, soit boot0md, selon votre systme, sans dtruire aucune installation Windows existante, si il y en a une."; + +"noboot_title" = "Ne pas installer l'amoreur de dmarrage"; +"noboot_description" = "Utile si vous souhaitez installer seulement les extra (options)."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "Le systme de modules inclus dans Chameleon permet l'utilisateur ou au dveloppeur d'tendre les fonctionnalits de Chameleon sans remplacer le fichier de dmarrage principal."; + +"klibc_title" = "klibc"; +"klibc_description" = "Ce module fournit une bibliothque C standard. Elle est utile pour les modules si la bibliothque fournie par Chameleon est insuffisante. +Ceci est actuellement seulement utilis par la bibliothque uClibc++. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "Ce module lit les informations EDID partir du moniteur attach l'affichage principal. +Ce module n'est pas integr dans le trunk et n'a qu'un usage minime. +Additionnellement, ce module va patcher les modes VESA disponibles dans les cartes pre-Intel HD Graphics pour obtenir une rsolution correcte lors du dmarrage."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Ce module fournit une simple bibliothque d'xecution C++ pour une utilisation dans d'autres modules. +Cela ne procure aucune fonctionnalit concrte. Ce module est utilis pour permettre l'usage du langage C++ dans d'autres modules. +Veuillez noter que RTTI et Exceptions ont t dsactivs. +Source: http://cxx.uclibc.org/ +Dpendances : klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Ce module permet l'utilisateur de dfinir le mappage des touches du clavier."; + + +// ============================================================================ +// Utilitaires +// Actuellement non utiliss !!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilitaires"; +"Utility_description" = "Fichers optionnels d'aide pour la configuration"; + +"PrefPanel_title" = "Panneau de configuration"; +"PrefPanel_description" = "Installe le panneau de configuration Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copie un fichier SMBIOS.plist d'exemple dans /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation pour Chameleon (instalation manuelle et utilisation)."; + + +// ============================================================================ +// Options de dmarrage - Les options suivantes ont t spares pour respecter le mappage des fichiers texte OptionalSettings. +// Mais elles peuvent tre changes pour correspondre la volont du modificateur. +// ---------------------------------------------------------------------------- + +"Options_title" = "Options"; +"Options_description" = "Cre un fichier /Extra/org.chameleon.Boot.plist en slectionnant n'importe quelle option de dmarrage ou argument de noyau."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Cache la bannire de dmarrage de l'interface utilisateur. C'est le texte en haut gauche qui indique la version de Chameleon, etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Dsactive l'interface utilisateur active par dfaut."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Utilise le logo Apple original (gris fonc) et l'cran gris clair lors du dmarrage, au lieu du boot.png fourni dans le theme."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Vous emmene directement l'cran de slection des partitions. Passe l'cran de dcompte du temps (petite barre qui dcompte le temps et dmarre directement sur la partition par dfaut sa fin)."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Active le mode de dmarrage silencieux (aucun messages ou invite de commandes)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Active l'affichage des dtails de la partition et des rsolutions en dessous de la bannire de dmarrage (en haut gauche). Utile pour le dbogage mais peut nuire certains themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Met le processus de dmarrage en pause aprs les actions de Chameleon. Attends qu'une touche soit prsse pour dmarrer le noyau. Utile pour le dbogage quand combin avec le mode de dmarrage diagnostic."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Dmarre le noyau en mode 32-bit au lieu de 64-bit (par dfaut)."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Rgle les problmes de propritaire EHCI causs par de mauvais BIOS."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Ajoute la chaine 'built-in' aux priphriques Ethernet."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Active HPET sur les jeux de composants Intel, pour les BIOS qui n'incluent pas cette option."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Permet d'outrepasser les mauvaises images d'hibernation."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Dsactive le patch de redmarrage automatiquement appliqu."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Rinitialise les controlleurs UHCI avant le dmarrage de Mac OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Dsactive la dtection mmoire (RAM) automatique."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Pour Lion seulement. Active le chargement du kernel pr-link. Cela ignorera /E/E et /S/L/E. AVANT UTILISATION, assurez vous que le cache contient tout ce que vous avez besoin."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Essaye de charger une image d'hibernation sauvegarde lors de la prcdente mise en veille."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "CST Using SystemIO=Yes"; +"CSTUsingSystemIO_description" = "Nouvelle mthode de gntation des C-State _CST en utilisant les registres SystemIO au lieu de FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Ignore les tables SSDT de la carte mre."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Active l'tat d'alimentation spcial C2 du processeur."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Active l'tat d'alimentation spcial C3 du processeur."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Active l'tat d'alimentation spcial C4 du processeur."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Active la gnration automatique des tats de repos et de veille du processeur (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Active la gnration automatique des tats d'alimentation de performance du processeur (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Rgle la rsolution graphique 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Rgle la rsolution graphique 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Rgle la rsolution graphique 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Rgle la rsolution graphique 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Rgle la rsolution graphique 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Rgle la rsolution graphique 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Rgle la rsolution graphique 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Rgle la rsolution graphique 600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Rgle la rsolution graphique 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Rgle la rsolution graphique 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Rgle la rsolution graphique 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Active l'autodtection des GPU NVIDIA. Injecte ensuite une information correcte."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Active l'utilisation d'une ROM ATI fournie par l'utilisateur."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Active l'utilisation d'une ROM NVIDIA fournie par l'utilisateur."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Active l'option VBIOS."; + +// ---------------------------------------------------------------------------- +// Options de dmarrage - ARGUMENTS DU NOYAU +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Mode de Diagnostic"; +"Verbose_description" = "Active le mode de diagnostic, permet de voir des messages provenant de Chameleon et du noyau Mac OS X. Essentiel pour le dbogage."; + +"Singleusermode_title" = "Mode Simple Utilisateur"; +"Singleusermode_description" = "Une option de dbogage utilise pour dmarrer sur l'invite de commande BSD/Unix de Mac OS X."; + +"Ignorecaches_title" = "Ignorer les Caches"; +"Ignorecaches_description" = "Permet d'ignorer les caches pr-construits et forcer Mac OS X de charger tous les fichiers de ses dossiers systme."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Pour passer un blocage sur 'PCI configuration begin' sur certains systmes. 0x2000 est l'argument de kIOPCIConfiguratorPFM64, comme marqu dans le code sourde de IOPCIFamily."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Pour passer un blocage sur 'PCI configuration begin' sur certains systmes. 0x3000 est l'argument de kIOPCIConfiguratorPFM64, comme marqu dans le code sourde de IOPCIFamily."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion seulement. Dsactive la fonctionnalit 'rveil basse consommation' qui peut laisser un cran noir aprs une sortie de veille."; + + +// ---------------------------------------------------------------------------- +// Options de dmarrage - MAPPAGE DE CLAVIER +// ---------------------------------------------------------------------------- + +"mac-de_title" = "Clavier Mac Allemand"; +"mac-de_description" = "Utiliser le mappage clavier Mac Allemand"; + +"mac-es_title" = "Clavier Mac Espagnol"; +"mac-es_description" = "Utiliser le mappage clavier Mac Espagnol"; + +"mac-fr_title" = "Clavier Mac Franais"; +"mac-fr_description" = "Utiliser le mappage clavier Mac Franais"; + +"mac-it_title" = "Clavier Mac Italien"; +"mac-it_description" = "Utiliser le mappage clavier Mac Italien"; + +"mac-se_title" = "Clavier Mac Sudois"; +"mac-se_description" = "Utiliser le mappage clavier Mac Sudois"; + +"mac-pt_title" = "Clavier Mac Portugais"; +"mac-pt_description" = "Utiliser le mappage clavier Mac Portugais"; + +"pc-de_title" = "Clavier PC Allemand"; +"pc-de_description" = "Utiliser le mappage clavier PC Allemand"; + +"pc-es_title" = "Clavier PC Espagnol"; +"pc-es_description" = "Utiliser le mappage clavier PC Espagnol"; + +"pc-fr_title" = "Clavier PC Franais"; +"pc-fr_description" = "Utiliser le mappage clavier PC Franais"; + +"pc-it_title" = "Clavier PC Italien"; +"pc-it_description" = "Utiliser le mappage clavier PC Italien"; + +"pc-se_title" = "Clavier PC Sudois"; +"pc-se_description" = "Utiliser le mappage clavier PC Sudois"; + +"pc-pt_title" = "Clavier PC Portugais"; +"pc-pt_description" = "Utiliser le mappage clavier PC Portugais"; + +// ---------------------------------------------------------------------------- +// Options de dmarrage - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Un version plus petite et plus simple du thme par dfaut utilise quand une version de Chameleon requiert un thme intgr."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Thme original de Chameleon indroduit lors de la version 2.0 RC1."; + +"Default_title" = "Standard"; +"Default_description" = "Thme par dfaut de Chameleon depuis la version 2.0 RC5."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Un thme simple et sympa cre par NoSmokingBandit (Avril 2009)."; + + +// ============================================================================ +// Les noms de fichiers des fichiers texte dans OptionalSettings sont devenu des sous-menus. +// Ces sous-menus ont besoin de titres et de descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Options pour controler le comportement de Chameleon."; + +// General +"General_title" = "Options Gnrales"; +"General_description" = "Une slection d'options de base."; + +// KernelFlags +"KernelFlags_title" = "Arguments de dmarrage"; +"KernelFlags_description" = "Gerez le dmarrage du systme via les arguments de dmarrage."; + +// PowerManagement +"PowerManagement_title" = "Gestion de l'alimentation"; +"PowerManagement_description" = "Une slection d'options qui grent l'alimentation et le SpeedStep."; + +// Resolution +"Resolution_title" = "Rsolution graphique"; +"Resolution_description" = "Slectionnez une rsolution graphique a utiliser."; + +// Video +"Video_title" = "Vido"; +"Video_description" = "Options concernant la partie vido du systme."; + +// Keymaps +"Keymaps_title" = "Mappage de clavier"; +"Keymaps_description" = "Slectionnez un mappage de clavier utiliser. +Cela installera aussi le module Keylayout ainsi que les diffrentes configurations de clavier."; + +// Themes +"Themes_title" = "Thmes"; +"Themes_description" = "Une collection de thmes +Plus de thmes peuvent tre trouvs sur http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Chaine d'options de dmarrage exclusives - Celles-ci sont ajoutes automatiquement par buildpkg +// Le nom utilis doit tre ChooseNone-xxxxxx +// O xxxxx = le nom du fichier BootOptions (sans le .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Aucune"; +"ChooseNone-Resolution_description" = "Aucune rsolution graphique choisie."; + +"ChooseNone-keylayout_title" = "Aucun"; +"ChooseNone-keylayout_description" = "Aucun mappage de clavier choisi."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/fr.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/fr.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/fr.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,40 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Ne pas installer sur un ordinateur Apple Macintosh\ + +\fs22 \cf0 \ +\ +D\'e9veloppeurs :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Merci \'e0 :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package d'installation :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language traduit par: Tenval\ +Copyright \'a9 %CPRYEAR%} \ No newline at end of file Index: branches/JrCs/package/Resources.old/fr.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/fr.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/fr.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Les scripts sont termin\'e9s et un fichier\ + nomm\'e9 \cf2 @LOG_FILENAME@\cf3 a \cf0 \'e9\cf3 t\cf0 \'e9\cf3 \ + \'e9\cf3 crit \'e0\'a0la racine de la partition choisie.\ +\ +\cf0 SVP \cf4 lisez le\cf0 pour savoir si l'installation est un\ +succes et garder un rapport de ce qui a \'e9t\'e9 fait..\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/fr.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/fr.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/fr.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/nl.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/nl.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/nl.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon is een combinatie van verschillende bootloader componenten. Het is gebaseerd op de fake EFI implementatie van David Elliott die toegevoegd is aan Apple's boot-123 project.

+


+

Nieuwe functies in Chameleon 2.0.

+


+

- Volledig aanpasbare GUI, zodat de Darwin Bootloader een ander uiterlijk krijgt.

+

- Het booten van retail DVD's door direct een image te laden zonder hulp van externe programma's.

+

- Slaapstand. Geniet van het hervatten van Mac OS X met een preview image.

+

- Het passeren van de SMBIOS zodat de standaard SMBIOS waarden aangepast kunnen worden.

+

- Het passeren van de DSDT zodat er een aangepaste verbeterde DSDT kan worden gebruikt om bepaalde problemen op te lossen.

+

- Device Property Injectie via device-properties string.

+

- Hybride boot0 / boot1h voor MBR en GPT gepartitioneerde schijven.

+

- Automatische FSB detectie code, zelfs voor recente AMD processors.

+

- Apple Software RAID ondersteuning.

+

- Nvidia & ATI/AMD grafische kaart autodetectie.

+

- Module ondersteuning

+

- Geheugen detectie overgenomen van memtest86: http://www.memtest.org

+

- Automatisch P-State's & C-State's aangemaakt voor zelf aangestuurd stroombeheer.

+

- Bericht logboek.

+


+

De code is vrijgegeven onder versie 2 van de Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Voor meer informatie, bezoek: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/nl.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/nl.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/nl.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,349 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Deze software moet op het opstartvolume genstalleerd worden."; +"ERROR_INSTALL" = "Dit volume voldoet niet aan de eisen voor deze update."; + +"Newer_Package_Installed_message" = "Een nieuwere versie van Chameleon is al genstalleerd."; +"Intel_Mac_message" = "Deze software kan niet worden genstalleerd op deze computer."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Installatie Type"; +"InstallType_description" = "kies om een nieuwe installatie uit te voeren of een bestaande te vernieuwen."; + +"New_title" = "Nieuwe Installatie"; +"New_description" = "Archiveer een bestaande /Extra folder indien aanwezig op de partitie. Een nieuwe folder zal aangemaakt worden indien een willekeurige optie wordt gekozen, anders dan Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Combineer een bestaande /Extra folder indien aanwezig op de partitie, met een willekeurige optie van de installer, anders dan Bootloader."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Chameleon heeft drie essentile bestanden nodig (Simpel gezegd). +boot0 (Op het MBR van de harde schijf) Verantwoordelijk voor het laden van boot1. +boot1 (Op de boot-sector van de partitie) Om boot2 te vinden. +boot2 (In de root van de partitie) Om de kernel, etc. te laden ."; + +"Standard_title" = "Chameleon Standaard"; +"Standard_description" = "Installeer Chameleon"; + +"EFI_title" = "EFI"; +"EFI_description" = "Installeer Chameleon's bestanden naar de verborgen EFI partitie gebruikmakend van boot0 of boot0md afhankelijk van het systeem en zonder het vernietigen van een eventuele windows installatie."; + +"noboot_title" = "Geen"; +"noboot_description" = "Installeer Chameleon niet. (Geschikt voor alleen /Extra aan te maken)"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "Het ingebouwde modulaire systeem in chameleon staat de gebruiker of ontwikkelaar toe de basis functionaliteit van chameleon uit te breiden zonder het vervangen van de boot bestanden."; + +"klibc_title" = "klibc"; +"klibc_description" = "Deze module biedt een standaard c bibliotheek voor modules voor wanneer de standaard bibliotheek niet afdoende is. +Dit is op moment alleen in gebruik voor de uClibc++ bibliotheek. +Bron: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolutie"; +"AutoReso_description" = "Deze module leest en past informatie aan van de aangesloten monitors. +Deze module is op moment niet gentegreerd in de trunk en heeft daarom maar minimale functionaliteit. +Verder past de module de vesa modes aan welke beschikbaar zijn in pre intel hd graphische chipsets om de juiste resolutie tijdens starten weer te geven."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Deze module geeft minimale c++ runtime library ondersteuning voor gebruik in andere modules. +De functionaliteit is niet ingebouwd in de module, in plaats daarvan wordt het gebruikt om de c++ taal mogelijk te maken in andere modules. +Let op dat rtti en exceptions beiden niet zijn ondersteund. +Bron: http://cxx.uclibc.org/ +Afhankelijkheden: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Deze module geeft de gebruiker de mogelijkheid toetsen naar believe in te delen."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Hulpprogramma"; +"Utility_description" = "Optionele bestanden om te helpen installeren."; + +"PrefPanel_title" = "Voorkeuren Paneel"; +"PrefPanel_description" = "Installeerd het Voorkeuren Paneel voor Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Kopiert een voorbeeld smbios.plist naar /Extra/Configuration."; + +"Documentation_title" = "Documentatie"; +"Documentation_description" = "Documentatie voor de handmatige installatie en het gebruik van Chameleon."; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Opties"; +"Options_description" = "Stel standaard opties in"; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Verbergt Chameleon's boot banner in de GUI."; + +"GUI_title" = "GUI"; +"GUI_description" = "Om de grafische interface uit te zetten, moet er GUI=NO aan com.apple.Boot.plist toegevoegd worden." + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Gebruik het standaard logo (grijs op wit) op het bootscherm in plaats van het boot.png logo van het thema."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Geef het partitie selectie scherm weer, zonder het timeout scherm weer te geven."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Schakelt quit boot mode in(geen berichten of prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Schakelt scherm of partitie en resolutie details zoals aangegeven aan de linker zijde van de GUI onder het boot menu. Dit geeft handige informatie voor storing opsporing, maar kan botsen met bepaalde thema's."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauzeert het boot proces nadat Chameleon's installatie voltooid is, hierna wacht het tot er op een toets gedrukt wordt voor het de mach kernel start. Bruikbaar wanneer het gecombineerd wordt met de verbose boot voor probleemoplossing."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boot de kernel in 32bit mode in plaats van de standaard 64bit mode."; + +"ForceHPET_title" = "ForceHPET"; +"ForceHPET_description" = "Voeg ForceHPET=y toe aan com.apple.Boot.plist, Deze optie zorgt ervoor dat HPET aangezet wordt op intel chipsets en is voor biossen die die optie niet ondersteunen."; + +"ForceWake_title" = "ForceWake"; +"ForceWake_description" = "Voeg ForceWake=y toe aan com.apple.Boot.plist, deze optie zorgt ervoor dat je corrupte sleep images kan voorbijgaan."; + +"EHCIacquire_title" = "EHCIacquire"; +"EHCIacquire_description" = "Voeg EHCIacquire=y toe aan com.apple.Boot.plist, Deze optie repareert alle EHCI ownership problemen die worden veroorzaakt door slechte biossen."; + +"UHCIreset_title" = "UHCIreset"; +"UHCIreset_description" = "Voeg UHCIreset=y toe aan com.apple.Boot.plist, Deze optie zal UHCI controllers resetten voor dat OS X gestart wordt."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Schakelt de automatisch ingeschakelde restart fix uit."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Schakelt de optie aan om de UHCI controllers te recette voor het starten van OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Schakelt de automatisch ingeschakelde RAM geheugen herkenning uit."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Alleen voor Lion. Schakelt het laden van een pre-linked kernel. Dit negeert /E/E en /S/L/E. Gebruik dit ALLEEN als je weet wat je doet en het alles bevat wat nodig is om te booten."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Probeert de sleep image te laden die opgeslagen is van de laatste keer dat de pc in hibernatie is gezet."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Nieuww C-State _CST aanmaak methode gebruikmakend van SystemIO registers in plaats van FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Negeert de SSDT tables die ingebouwd zitten in het moederbord."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Schakelt de Processor stroom staat C2 in."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Schakelt de Processor stroom staat C3 in."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Schakelt de Processor stroom staat C4 in."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Schakel automatisch gegenereerde processor C-States in."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Schakel automatisch gegenereerde processor P-States in."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Zet de grafische resolutie op 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Zet de grafische resolutie op 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Zet de grafische resolutie op 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Zet de grafische resolutie op 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Zet de grafische resolutie op 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Zet de grafische resolutie op 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Zet de grafische resolutie op 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Zet de grafische resolutie op 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Zet de grafische resolutie op 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Zet de grafische resolutie op 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Zet de grafische resolutie op 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Schakelt de optie in om op NVIDIA gebaseerde GPU's de detecteren en de correcte info te injecteren."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Schakelt UseAtiROM opties in."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Schakelt UseNvidiaROM opties in."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Schakelt VBIOS optie in."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Schakelt verbose logging aan en geeft de berichten van zowel Chameleon en de OS X kernel weer tijdens booten. Essentieel voor foutoplossing."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Een foutoplossings optie om te booten in de OS X's BSD/Unix command line interface."; + +"Ignorecaches_title" = "Negeer Cache"; +"Ignorecaches_description" = "Niet een optie welke benodigd is voor dagelijks gebruik, maar het kan handig zijn wanneer u wilt dat OS X alle bestanden laadt uit de system mappen, anders dan steunen op de pre-built cache."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Lost het 'PCI configuration begin'-probleem op enkele systemen op. 0x2000 is de kIOPCIConfiguratorPFM64 flag, zoals beschreven in de IOPCIFamily broncode."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Lost het 'PCI configuration begin'-probleem op enkele systemen op. 0x3000 is de kIOPCIConfiguratorPFM64 flag, zoals beschreven in de IOPCIFamily broncode."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Alleen voor Lion. Deselecteerd de 'lage spanning' functionaliteit welke soms een zwart scherm veroorzaakt na terugkeer uit de slaapstand."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "Duits Mac Keyboard"; +"mac-de_description" = "Gebruik de toetsenbord indeling voor een Duits Mac toetsenbord"; + +"mac-es_title" = "Spaans Mac Keyboard"; +"mac-es_description" = "Gebruik de toetsenbord indeling voor een Spaans Mac toetsenbord"; + +"mac-fr_title" = "Frans Mac Keyboard"; +"mac-fr_description" = "Gebruik de toetsenbord indeling voor een Frans Mac toetsenbord"; + +"mac-it_title" = "Italiaans Mac Keyboard"; +"mac-it_description" = "Gebruik de toetsenbord indeling voor een Italiaans Mac toetsenbord"; + +"mac-se_title" = "Zweeds Mac Keyboard"; +"mac-se_description" = "Gebruik de toetsenbord indeling voor een Zweeds Mac toetsenbord"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Gebruik de toetsenbord indeling voor een Portugees Mac toetsenbord"; + +"pc-de_title" = "Duits PC Keyboard"; +"pc-de_description" = "Gebruik de toetsenbord indeling voor een Duits PC toetsenbord"; + +"pc-es_title" = "Spaans PC Keyboard"; +"pc-es_description" = "Gebruik de toetsenbord indeling voor een Spaans PC toetsenbord"; + +"pc-fr_title" = "Frans PC Keyboard"; +"pc-fr_description" = "Gebruik de toetsenbord indeling voor een Frans PC toetsenbord"; + +"pc-it_title" = "Italiaans PC Keyboard"; +"pc-it_description" = "Gebruik de toetsenbord indeling voor een Italiaans PC toetsenbord"; + +"pc-se_title" = "Zweeds PC Keyboard"; +"pc-se_description" = "Gebruik de toetsenbord indeling voor een Zweeds PC toetsenbord"; + +"pc-pt_title" = "Portuguees PC Keyboard"; +"pc-pt_description" = "Gebruik de toetsenbord indeling voor een Portugees PC toetsenbord"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Een kleinere simpelere versie van het nieuwe standaard thema dat gebruikt wordt, wanneer er een versie van Chameleon gebouwd wordt die een ingebouwd thema nodig heeft."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's vorige default thema"; + +"Default_title" = "Standaard"; +"Default_description" = "Het thema wat meegeleverd is met de booter, zodat deze aangepast kan worden."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Het Bullet thema door NoSmokingBandit"; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Controle Opties"; +"Control_description" = "Opties gerelateerd aan hoe Chameleon werkt."; + +// General +"General_title" = "Standaard Opties"; +"General_description" = "Kies uit een selectie van standaard opties."; + +// KernelFlags +"KernelFlags_title" = "Kernel Vlaggen"; +"KernelFlags_description" = "Kies uit een selectie aan kernel vlaggen."; + +// PowerManagement +"PowerManagement_title" = "Stroom Beheer"; +"PowerManagement_description" = "Een selectie aan opties welke stroom beheer en snelheidstrappen regelen."; + +// Resolution +"Resolution_title" = "Resolutie"; +"Resolution_description" = "Selecteer een resolutie voor gebruik."; + +// Video +"Video_title" = "Beeld"; +"Video_description" = "Een selectie aan opties welke te maken hebben met beeld."; + +// Keymaps +"Keymaps_title" = "Toetsenbord Indeling"; +"Keymaps_description" = "Selecteer een keylayout voor gebruik. Dit installeert ook de Keylayout module en keymaps."; + +// Themes +"Themes_title" = "Thema's"; +"Themes_description" = "Een Collectie van Voorbeeld Thema's +Meer thema's kunnen worden gevonden op http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Geen"; +"ChooseNone-Resolution_description" = "Kies geen resolutie."; + +"ChooseNone-keylayout_title" = "Geen"; +"ChooseNone-keylayout_description" = "Gebruik geen keyboardindeling."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/nl.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/nl.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/nl.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Installeer niet op een echte Apple Macintosh computer!\ + +\fs22 \cf0 \ +\ +Ontwikkelaars :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Dank gaat uit naar :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language Vertaald door: yeehaw123 & Badeendje\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/nl.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/nl.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/nl.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +De installatie is klaar en het bestand\ + \cf2 @LOG_FILENAME@\cf3 is geschreven\ +naar de root van de door u gekozen partitie.\ +\ +\cf0 Alstublieft \cf4 raadpleeg\cf0 het document om te zien of\ +de installatie goed verlopen is en bewaar het ter naslag.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/nl.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/nl.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/nl.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } Index: branches/JrCs/package/Resources.old/hr.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/hr.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/hr.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon je kombinacija različitih komponenti bootloadera. On je zasnovan na David Elliottovoj lažnoj EFI implementaciji dodanoj u Apple boot-132 projekt.

+


+

Nove funkcije u Chameleon 2.0

+


+

- Potpuno prilagođen grafičko korisiničko sučelje donosi vizuelna poboljšanja u Darwin Bootloaderu.

+

- Start sa retail DVD-om direktno učitava ramdisk slike bez pomoći dodatnih programa.

+

- Hibernacija. Uživajte u nastavaku rada vašeg Mac OS X-a sa pregledom slike.

+

- SMBIOS zamijena tvorničkih za modifikovanu SMBIOS vrijednost.

+

- DSDT zamijena za korištenje modifikovanog, ispravljenog DSDT-a koji može riješiti nekoliko problema.

+

- Implementacija svojstva uređaja putem svojstva niza.

+

- hibridni boot0 / boot1h za MBR i GPT particijske diskove.

+

- automatsko FSB kodno otkrivanje čak i za posljednje AMD procesore. 

+

- Apple softver RAID podrška.

+

- Nvidia & ATI/AMD Grafički Aktivator.

+

- Modul podrška

+

- Detekcija memorije prilagođena iz memtest86: http://www.memtest.org

+

- Automatsko generiranje P-State i C-State za izvorno upravljanje energijom.

+

- Prijava porukama.

+


+

Kod je objavljen pod verzijom 2 GNU javna licenca.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Za detaljne informacije posjetite: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/hr.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/hr.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/hr.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,401 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Ovaj softver mora biti instaliran na volumen sa kojeg se pokree."; +"ERROR_INSTALL" = "Ovaj volumen ne ispunjava uvjete za nadogradnju."; + +"Newer_Package_Installed_message" = "Nova verzija Chameleona ve je instalirana"; +"Intel_Mac_message" = "Ovaj softver ne mo~e biti instaliran na ovom ra +unalu"; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Vrsta instalacije"; +"InstallType_description" = "Odaberite za instaliranje nove instalacije ili za nadogradnju postojee instalacije."; + +"New_title" = "Nova instalacija"; +"New_description" = "Rezerva za postojei /Extra folder, ako je pronaen na ciljanoj particiji. Novi e biti stvoren ako izaberete bilo koju opciju u instaleru, osim Bootloadera."; + +"Upgrade_title" = "Nadogradnja"; +"Upgrade_description" = "Spaja postojei /Extra folder, ako je pronaen na ciljanoj particiji, sa svim opcijama izabranim iz instalera, osim Bootloadera."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Chameleon zahtjeva tri bitna fajla. (pojednostavljeno re +eno) +boot0 (MBR na disk pogonu) odgovoran za u +itavanje boot1. +boot1 (Na particiju za boot-sektor) za pronala~enje boot2. +boot2 (Na particiju za root direktorij) za u +itavanje Kernela itd."; + +"Standard_title" = "Standard"; +"Standard_description" = "instalira Chameleon fajlove u po +etnu mapu diska (root) odabrane particije koristei bilo boot0 ili boot0md u ovisnosti od vaaeg sustava ne uniatavajui bilo kakvu Winodws instalaciju ukoliko je imate instaliranu."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instalira Chameleon fajlove za normalno skrivenu particiju EFI koristei bilo boot0 ili boot0md u ovisnosti od vaaeg sustava ne uniatavajui bilo kakvu Winodws instalaciju ukoliko je imate instaliranu."; + +"noboot_title" = "Ne instaliraj Bootloader"; +"noboot_description" = "Korisno ukoliko ~elite instalirati samo extra."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Chameleon Moduli"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "Ovaj modul omoguuje standard c biblioteku za module za povezivanje ako chameleon biblioteka nije dovoljna. +Ovo se trenutno koristi samo sa uClibc++ bibliotekom. +Izvor: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Rezolucija"; +"AutoReso_description" = "Ovaj modul +ita edid informacije sa monitora priklju +enog na glavni zaslon. +Modul trenutno nije integrisan u trunk i nije od velike primjene kao ato stoji. +Osim toga, modul e zakrpati VESA modove koji su prisutni u pred Intelovim HD grafi +kim karticama kako bi osigurale odgovarajuu rezoluciju zaslona prilikom podizanja."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Ovaj modul omoguava minimalisti +ku c++ runtime biblioteku za koriatenje u drugim modulima. +To ne pru~a funkcionalnost sama po sebi, umjesto toga, slu~i kako bi se omoguilo koriatenje c++ jezika u ostalim modulima. +Imajte na umu da su obe RTTI iznimke onemoguene. +Izvor: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Raspored tipki"; +"Keylayout_description" = "Ovaj modul omoguuje korisniku da definira mapiranje tipki na tipkovnici."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Korisno"; +"Utility_description" = "Menij fajlovi za pomo pri instalaciji"; + +"PrefPanel_title" = "Preferens Plo +a"; +"PrefPanel_description" = "Instalira Preferens plo +u za Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Kopira primjer smbios.plist u /Extra/Configuration."; + +"Documentation_title" = "Documentacija"; +"Documentation_description" = "Dokumentacija za Chameleon priru +nik, instaliranje i koriatenje"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Boot Opcije"; +"Options_description" = "Kreira /Extra/org.chameleon.Boot.plist i omogu +uje izbor ~eljene opcije za kontrolu Chameleon postavki."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Skriva Cameleon boot banner u grafi +kom korisni +kom inferfejsu (GUI)."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Onemoguava uklju +eni zadani korisni +ki grafi +ki interfejs."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Koristite legacy (sivi i bijeli) apple logo prilikom podizanja radije nego boot.png sliku iz teme"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Prikaz zaslona za odabir particije bez prikazivanja timeout zaslona."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Omoguava mod mirnog pokretanja (bez poruka ili redaka)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Onemoguava prikaz detalja o particiji i rezoluciji."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauzira boot proces nakon ato je Cameleon zavraio postavljanje, onda +eka na pritisak tipke prije nego se pokrene mach kernel. Korisno u kombinaciji sa verbose podizanjem za rijeaavanje problema."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Pokree jezgru (kernel) u 32bitnom modu radije nego u zadanom 64bitnom modu."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Omoguuje opciju za popravak bilo kojih EHCI vlasni +kih prava zbog loaeg biosa."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Omoguuje mogunost dodavanja "ugraeno" na vaae Ethernet ureaje."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Omoguuje HPET na Intel +ipsetima, za biose koje ne uklju +uju ovu opciju."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Ova opcija Omoguuje vam da zaobiete loae uspavane slike (sleep images)."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Isklju +uje automatsko omoguavanje restart fix opcije"; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Omoguuje opciju za reset UHCI kontrolera prije po +etka podizanja. "; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Isklju +uje omogueno automatsko RAM prepoznavanje."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Samo za Lion. Omoguuje u +itavanje prethodno povezanog kernela. Ovo e ignorirati /E/E i /S/L/E. Ovo koristiti samo ako morate znati da sadr~i sve ato vam je potrebno."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Pokuaava da u +ita uspavanu sliku snimljenu iz prethodne hibernacije"; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "New - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Nova C-state _CST generacija metodom SystemIO registracije umjesto FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Odbacuje SSDT tablice ugraene na mati +noj plo +i."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Uklju +uje automatsko generiranje procesora u stanju mirovanja (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Omoguava automatsko generiranje snage procesora stanja performansi (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Podesite Grafi +ku Rezoluciju na 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Podesite Grafi +ku Rezoluciju na 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Podesite Grafi +ku Rezoluciju na 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Podesite Grafi +ku Rezoluciju na 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Podesite Grafi +ku Rezoluciju na 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Podesite Grafi +ku Rezoluciju na 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Podesite Grafi +ku Rezoluciju na 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Omoguuje opciju auto prepoznavanja NVIDIA baziranih grafi +kih video kartica i upisuje pravilne informacije o istoj."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Uklju +uje UseAtiROM opciju."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Uklju +uje UseNvidiaROM opciju."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Uklju +uje VBIOS opciju"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Uklju +uje verbose prijavu i omoguuje vam da vidite poruke iz oba Chameleon i kernel OS X prilikom pokretanja. Osnova za rjeaavanje problema."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Opcija za rjeaavanje problema koja se koristi za podizanje OS X BSD / Unix komandnog reda."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Opcija koja nije potrebna za svakodnevno podizanje, ali mo~e biti korisna ukoliko ~elite da OS X u +ita sve fajlove iz sustavnog direktorija, radije nego se oslanjajui na pre-izgraenu predmemoriju."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Postavlja zastave npci = 0x2000 za Kernel Zastave"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Postavlja zastave npci = 0x3000 za Kernel Zastave"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Samo Lion. Isklju +uje 'low power wake' opciju koja ponekad ostavi crni zaslon poslije buenja iz spavanja."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Koriatenje tipkovnice za Njema +ku Mac tipkovnicu"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Koriatenje tipkovnice za `panjolsku Mac tipkovnicu"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Koriatenje tipkovnice za Francusku Mac tipkovnicu"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Koriatenje tipkovnice za Italijansku Mac tipkovnicu"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Koriatenje tipkovnice za Svedsku Mac tipkovnicu"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Koriatenje tipkovnice za Francusku PC tipkovnicu"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Manja, jednostavnija verzija nove zadane teme koja se koristi prilikom izgradnje Chameleon-a koji zahtjeva ugraenu temu. "; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleonova prethodno zadana tema."; + +"Default_title" = "Standard"; +"Default_description" = "Chameleonova trenutno zadana tema."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Predivna jednostavna tema od NoSmokingBandit iz Aprila 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Opcije za kontrolu rada Chameleona."; + +// General +"General_title" = "General Options"; +"General_description" = "Izaberite od selekcije iz baze opcija."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Izaberite od selekcije iz kernel zastava."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "Odabir opcija koje se bave upravljanjem potroanjom energije i SpeedStep-om."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "Odabir opcija koje se bave videom."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "Skup predlo~enih tema +Viae tema mo~ete pronai na http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Odabir bez rezolucije."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Odabir bez keylayouta."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/hr.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/hr.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/hr.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Instalacija nije prilago\uc0\u273 ena za Apple Macintosh ra\u269 unala\ + +\fs22 \cf0 \ +\ +Programeri :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Hvala :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Paket :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: mistudio\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/hr.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/hr.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/hr.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Skripte su zavr\'9aene i mapa pod\ + nazivom \cf2 @LOG_FILENAME@\cf3 je snimljena\ +u korijen particije diska koje ste odabrali.\ +\ +\cf0 Molimo \cf4 pro\uc0\u269 itajte\cf0 kako biste saznali da li je instalacija\ +bila uspije\'9ana i \uc0\u269 uvajte log radi evidencije o tome \'9ata je u\u269 injeno.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/hr.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/hr.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/hr.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/ko.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/ko.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/ko.lproj/Description.html (revision 1843) @@ -0,0 +1,47 @@ + + + + + + + + + +

카멜레온은 David Elliott fake EFI 구현 기술의 개발이 애플의 boot-132 프로젝트와 만나 생긴 요소들로 만들어진 부트로더입니다.

+


+

카멜레온 버전 2 많은 기능들이 추가되었습니다. 예를 들어:

+


+

- Darwin 부트로더에 완벽한 커스터마이징이 가능한 컬러 GUI.

+

- 외부 프로그램 없이 자체적으로 램디스크에 리테일 DVD 로딩하여 부팅.

+

- 최대 절전 모드 지원. OS X 썸네일로부터 깨어나는 모습을 즐기세요.

+

- SMBIOS 오버라이드로 공장 SMBIOS 기초 설정들을 변경.

+

- DSDT 오버라이드로 고쳐진 DSDT 사용하므로써 많은 문제들을 해결.

+

- device-properties string으로 디바이스 속성을 주입.

+

- 하이브리드 boot0 / boot1h MBR GPT 파티션된 디스크들을 허용.

+

- 최신 AMD CPU들까지도 자동 FSB 인식 코드로 지원.

+

- 애플 소프트웨어 RAID 지원.

+

- Nvidia ATI/AMD 그래픽 카드 활성화.

+

- 모듈 지원

+

- memtest86으로부터 기반된 RAM 메모리 인식 : (영문) http://www.memtest.org

+

- 자동 P-State & C-State 생성기능으로 자연적인 전원 관리.

+

- 메세지 로깅.

+


+

이 코드는 GNU 일반 공중 사용 허가서(GPL) 버전 2 아래 공개 되었습니다.

+

(영문) http://forge.voodooprojects.org/p/chameleon

+


+

FAQ's: (영문) http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/ko.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/ko.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/ko.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,358 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "t ոƴŔ ٳ h̹ $X  ǵȲ."; +"ERROR_INSTALL" = " \ h@ t ptǸX lmD ̹qX JŵȲ."; + +"Newer_Package_Installed_message" = "t\(X T \ t t $X ǵȲ."; +"Intel_Mac_message" = "t ոƴŔ t 0 $X  ŵȲ."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "$X "; +"InstallType_description" = " $XΘ tܴ X  X՘| X8."; + +"New_title" = " $X"; +"New_description" = "Bootloader txX 5Xt \  , ̹} $X` X /Extra T t tȬXt, x tDŽ<\ 1\ , \ 5Xt h \ /Extra T 1)Ȳ."; + +"Upgrade_title" = "tܴ"; +"Upgrade_description" = "Bootloader txX 5Xt \  ̹} $X` X /Extra T t tȬXt, x tDŽ<\ 1\ , 0t /Extra T \ 5Xt TtȲ. (org.chameleon.Boot.plist 0t mթD n 0 X J t Ŕ 5X̹ iȲ.)"; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "t\( \T "; +"Chameleon_description" = "t\( \T L @ 8 X |D DՔ\ iȲ. (貈 $t) +boot0 (ܴ|t X MBR L) boot1\)D . +boot1 ( XX 90 L) boot2X X| L$ . +boot2 (ܴ|t X 踸  Ѭ L)  \) 0 ."; + +"Standard_title" = "|"; +"Standard_description" = "  XX 踸  Ѭ t\( DՔ\ |D ƐX ¤\ 0| boot0  boot0md| tǩX $XiȲ. ij $XT|ij ƥD JŵȲ."; + +"EFI_title" = "EFI"; +"EFI_description" = " (¨8Ȉǔ EFI ¤\ X t\( DՔ\ |D ƐX ¤\ 0| boot0  boot0md| tǩX $XiȲ. ij $XT|ij ƥD JŵȲ."; + +"noboot_title" = "\T| $XX JL"; +"noboot_description" = "t \T $XD Ɛ 0 5XD $XXଐ ` L ǩiȲ."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "ȴ"; +"Module_description" = "t\( i ȴ ¤\@ Ɛǘ  Tx |D  J t\(X u 0D ť`  nj t +Ȳ."; + + +"klibc_title" = "klibc"; +"klibc_description" = "t ȴ@ ̹} t\(t q` x ȴt Ű`  ǔ C \ |t 췬| iȲ. +֬ uClibc++ |t 췬̹  ǵȲ. +: (8)http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Tt tij"; +"AutoReso_description" = "t ȴ@ 0 Ȳ0\0 EDID | }ǵȲ. +֬ t ȴ@ l i J ,  Ĩ ȵȲ. +\, IntelX HD ¬  =tܴt `  ǔ VESA ܴ| (XX   ,x tij|  nj t +Ȳ."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "t ȴ@ x ȴD \ \͌Tx c++ Є |t 췬| iȲ. +t ȴ@ ļ\ 0 t c++ Ŵ x ȴ Xt  ij] t +Ȳ. +‰ pt0 (RTTI)@ x ̬(Exceptions) D\1T 8X0 Ȳ. +: (8) http://cxx.uclibc.org/ +Xt Ĭ(Dependencies): klibc"; + +"Keylayout_title" = "tD"; +"Keylayout_description" = "t ȴ@ Ɛ ܴ Q X| թiȲ."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = " Ҭ"; +"Utility_description" = "$X| ijƔ x |"; + +"PrefPanel_title" = "Xֽ $ ("; +"PrefPanel_description" = "t\(X Xֽ $ (D $Xh."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "/Extra/Configuration T H smbios.plist  |D ̹Ȳ."; + +"Documentation_title" = " $"; +"Documentation_description" = "t\( \T| $XX, tǩXՔ p \ $"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Xֽ $"; +"Options_description" = "/Extra TH ܴm䲴 Tt \ mթD h\ org.chameleon.Boot.plist |D 1iȲ."; + +"BootBanner_title" = "0 Hh(BootBanner=No)"; +"BootBanner_description" = " GUI \ t\( \T 0| (AȲ. !  X\ 0  D MѤ¸\ +Ȳ."; + +"GUI_title" = "9 ܴ(GUI=No)"; +"GUI_description" = " t\( Ƙ  = x0јtǤ| UȲ. D Ŕ X Tt Tab\ Xt iȲ."; + +"LegacyLogo_title" = "  lа(LegacyLogo=Yes)"; +"LegacyLogo_description" = " $Ƭ @ @ ` \ ̳D @ 0D  lа<\ iȲ. D /Extra/Theme T HX boot.png D "; + +"InstantMenu_title" = "ٳ  Hh(InstantMenu=Yes)"; +"InstantMenu_description" = " 么 Ɛ  ` XD ଅȲ. t 0| t0 L OSD X JŵȲ. D t\(t \)  0 X DtX ٳ L @ D ɹ0\ +Ȳ. tL @ D t D4И %t ٳ D ͌`  ǵȲ."; + +"QuietBoot_title" = " (@(QuietBoot=Yes)"; +"QuietBoot_description" = " $Ƭ t  lа<\ \ iȲ. X ` @ X tǘ 9(Kernel Flag)%t Xp $ org.chameleon.Boot.plist | H  0 X Kernel Flag ȩ)Ȳ. 8\, 0 Xt ij\ $ <\ t 5 OS  \ ٳ h@ \T t J

DȔ 5X䴅Ȳ."; + +// Resolution +"Resolution_title" = "Tt tij"; +"Resolution_description" = " \ tij| Xp t J<$t HhD X8."; + +// Video +"Video_title" = "="; +"Video_description" = "= tܴ ( 5X䴅Ȳ"; + +// Keymaps +"Keymaps_title" = " tD"; +"Keymaps_description" = " ȩ tD XՔ ܴ@ ޹D, DȲt LD X8. + DՔ\ tD ȴ D \ $XiȲ."; + +// Themes +"Themes_title" = "Lȹ"; +"Themes_description" = " LȹD DœXŵȲ. T ι@ Lȹ L Ȍ ><  ǵȲ: +http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = " Hh"; +"ChooseNone-Resolution_description" = "Tt tij t JL"; + +"ChooseNone-keylayout_title" = "L"; +"ChooseNone-keylayout_description" = "޹ tD L"; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/ko.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ko.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ko.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,59 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset129 AppleGothic;\f2\fnil\fcharset129 NanumGothic; +} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ +\pard\qc + +\f1\b0\fs48 \cf0 \'c4\'ab\'b8\'e1\'b7\'b9\'bf\'c2 +\f0\b\fs50 \ +\pard\qc + +\fs26 \cf0 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\pard\qc + +\f1\b0 \cf2 \'be\'d6\'c7\'c3 \'b8\'c5\'c5\'b2\'c5\'e4\'bd\'c3 \'c4\'c4\'c7\'bb\'c5\'cd\'bf\'a1 \'bc\'b3\'c4\'a1\'c7\'cf\'c1\'f6 \'b8\'b6\'bd\'c3\'bf\'c0. +\f0\b \cf2 \ +\pard\qc + +\fs22 \cf0 \ +\ +\pard\qc + +\f1\b0 \cf0 \'b0\'b3\'b9\'df\'c0\'da\'b5\'e9 +\f0\b :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +\pard\qc + +\f1\b0 \cf0 \'b5\'b5\'bf\'f2 \'c1\'d6\'bd\'c5\'ba\'d0\'b5\'e9 +\f0\b :\ +\pard\qc + +\b0 \cf0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\f1 \cf0 \'c6\'d0\'c5\'b0\'c1\'f6 \'b0\'b3\'b9\'df +\f0\b :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language +\f1\fs20 \'b9\'f8\'bf\'aa +\f2\b +\f0\b0\fs18 by: drew_afx\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/ko.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ko.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ko.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,36 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fnil\fcharset129 AppleGothic;\f2\fnil\fcharset129 NanumGothic;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +\f1\b0 \'bd\'ba\'c5\'a9\'b8\'b3\'c6\'ae(\'bc\'b3\'c4\'a1)\'b0\'a1 \'bf\'cf\'b7\'e1\'b5\'c7\'be\'fa\'bd\'c0\'b4\'cf\'b4\'d9. \ +\'bc\'b1\'c5\'c3\'b5\'c8 \'c6\'c4\'c6\'bc\'bc\'c7\'c0\'c7 \'b7\'e7\'c6\'ae \'b5\'f0\'b7\'ba\'c5\'e4\'b8\'ae\'bf\'a1 +\f2\b \ + +\f0 \cf2 @LOG_FILENAME@ +\f1\b0 \cf3 \'b8\'a6 \'bb\'fd\'bc\'ba\'c7\'cf\'bf\'b4\'bd\'c0\'b4\'cf\'b4\'d9. +\f0\b \ +\ + +\f1\b0 \cf0 \'c0\'a7 \cf4 \'b7\'ce\'b1\'d7\cf0 \'b8\'a6 \'b2\'c0 \cf4 \'c0\'d0\'be\'ee\'ba\'b8\'bd\'c3\'b0\'ed\cf0 \'bc\'b3\'c4\'a1\'b0\'a1 \'c1\'a4\'bb\'f3\'c0\'fb\'c0\'b8\'b7\'ce \'b5\'c7\'be\'fa\'b4\'c2\'c1\'f6\ +\'be\'cb\'be\'c6\'ba\'b8\'bd\'c5 \'c8\'c4\'bf\'a1 \'b1\'e2\'b7\'cf\'c0\'b8\'b7\'ce \'c0\'df \'ba\'b8\'b0\'fc\'c7\'cf\'bd\'c3\'b1\'e2 \'b9\'d9\'b6\'f8\'b4\'cf\'b4\'d9. \ + +\f0\b \cf4 \ +\ +\ + +\f1\b0\fs26 \cf0 \'c4\'ab\'b8\'e1\'b7\'b9\'bf\'c2 +\f0\b v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ko.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/ko.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ko.lproj/License.rtf (revision 1843) @@ -0,0 +1,544 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset129 AppleGothic;\f1\fmodern\fcharset0 Courier-Bold;\f2\fmodern\fcharset0 Courier; +} +{\colortbl;\red255\green255\blue255;\red54\green54\blue54;} +\vieww13560\viewh18360\viewkind0 +\deftab720 +\pard\pardeftab720 + +\f0\fs42 \cf0 \'be\'d6\'c7\'c3 \'b0\'f8\'c1\'df \'bc\'d2\'bd\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba +\fs24 \cf2 \ +\pard\pardeftab720 +\cf0 \'b9\'f6\'c0\'fc 2.0 - 2003\'b3\'e2 8\'bf\'f9 6\'c0\'cf\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 \'c0\'cc \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee\'b8\'a6 \'b4\'d9\'bf\'ee\'b9\'de\'b1\'e2 \'c0\'fc\'bf\'a1 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'c0\'da\'bc\'bc\'c8\'f7 \'c0\'d0\'be\'ee \'c1\'d6\'bd\'ca\'bd\'c3\'bf\'c0. \'c0\'cc \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee\'b8\'a6 \'b4\'d9\'bf\'ee\'b7\'ce\'b5\'e5 \'c7\'cf\'b0\'c5\'b3\'aa \'bb\'e7\'bf\'eb\'c7\'cf\'b4\'c2 \'c7\'e0\'c0\'a7\'b4\'c2 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'c1\'b6\'b0\'c7\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'c0\'bb \'b9\'de\'b4\'c2\'b5\'a5 \'b5\'bf\'c0\'c7\'c7\'d4\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. \'b8\'b8\'be\'e0, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'c1\'b6\'b0\'c7\'bf\'a1 \'b5\'bf\'c0\'c7\'b8\'a6 \'c7\'cf\'c1\'f6 \'be\'ca\'b0\'c5\'b3\'aa \'b5\'bf\'c0\'c7\'c7\'d2 \'bc\'f6 \'be\'f8\'b4\'d9\'b8\'e9, \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee\'b8\'a6 \'b4\'d9\'bf\'ee\'b7\'ce\'b5\'e5 \'c7\'cf\'b0\'c5\'b3\'aa \'bb\'e7\'bf\'eb\'c7\'cf\'c1\'f6 \'be\'ca\'b5\'b5\'b7\'cf \'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a61\'c1\'b6. \'c0\'cf\'b9\'dd; \'c1\'a4\'c0\'c7. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'be\'d6\'c7\'c3 \'c4\'c4\'c7\'bb\'c5\'cd, Inc. (\'a1\'b0\'be\'d6\'c7\'c3\'a1\'b1)\'b0\'a1 \'b0\'f8\'b0\'b3\'c0\'fb\'c0\'b8\'b7\'ce \'c5\'eb\'bf\'eb\'bd\'c3\'c5\'b2 \'b8\'f0\'b5\'e7 \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5\'c0\'cc\'b3\'aa \'c0\'fa\'c0\'db\'b9\'b0\'b7\'ce\'bc\'ad, \'be\'d6\'c7\'c3\'c0\'cc \'b1\'d7 \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5\'c0\'cc\'b3\'aa \'c0\'fa\'c0\'db\'b9\'b0\'c0\'bb \'a1\'b0\'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'a1\'b1\'b6\'f3\'b0\'ed \'c1\'a4\'c0\'c7\'c7\'d1 \'c7\'a5\'bd\'c3\'bf\'cd \'c0\'cc \'be\'d6\'c7\'c3 \'b0\'f8\'c1\'df \'bc\'d2\'bd\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'b9\'f6\'c0\'fc 2.0(\'a1\'b0\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'a1\'b1)\'c0\'c7 \'b1\'d4\'c1\'a4\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c8\'b4\'d9\'b4\'c2 \'bc\'b3\'b8\'ed\'c0\'cc \'c6\'f7\'c7\'d4\'b5\'c8, \'b8\'f0\'b5\'e7 \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5\'c0\'cc\'b3\'aa \'c0\'fa\'c0\'db\'b9\'b0\'bf\'a1 \'c0\'fb\'bf\'eb\'b5\'c8\'b4\'d9. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1\'bc\'ad,\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b61\'c7\'d7. "\'c0\'fb\'bf\'eb \'b0\'a1\'b4\'c9\'c7\'d1 \'c6\'af\'c7\'e3\'b1\'c7" \'c0\'cc\'b6\'f5, (a) \'be\'d6\'c7\'c3\'c0\'cc \'b1\'c7\'b8\'ae\'b8\'a6 \'ba\'ce\'bf\'a9\'c7\'cf\'b4\'c2 \'c1\'d6\'c3\'bc\'c0\'ce \'b0\'e6\'bf\'ec\'bf\'a1\'b4\'c2, (i) \'c7\'f6\'c0\'e7 \'bd\'c3\'c1\'a1\'c0\'cc\'b3\'aa \'b1\'d7 \'c0\'cc\'c8\'c4\'bf\'a1 \'c8\'b9\'b5\'e6\'b5\'c7\'b0\'ed, \'be\'d6\'c7\'c3\'bf\'a1 \'c0\'c7\'c7\'d8 \'bc\'d2\'c0\'af\'b5\'c7\'b0\'c5\'b3\'aa \'be\'d6\'c7\'c3\'bf\'a1 \'be\'e7\'b5\'b5\'b5\'c8, \'b1\'d7\'b8\'ae\'b0\'ed (ii) \'c4\'a7\'c7\'d8\'c7\'e0\'c0\'a7 \'be\'f8\'c0\'cc \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b8\'a6 \'bb\'e7\'bf\'eb, \'ba\'b9\'c1\'a6 \'b9\'d7 \'b9\'e8\'c6\'f7\'c7\'cf\'b4\'c2\'b5\'a5 \'c7\'ca\'bf\'e4\'c7\'d1 \'c1\'a4\'b5\'b5\'b7\'ce\'b8\'b8, \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'bf\'a1 \'c6\'f7\'c7\'d4\'b5\'c8 \'b3\'bb\'bf\'eb\'bf\'a1 \'c0\'fb\'bf\'eb\'b5\'c7\'b4\'c2 \'c6\'af\'c7\'e3 \'c3\'bb\'b1\'b8\'c7\'d7\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'cf\'b0\'ed; (b) \'b4\'e7\'bd\'c5\'c0\'cc \'b1\'c7\'b8\'ae\'b8\'a6 \'ba\'ce\'bf\'a9\'c7\'cf\'b4\'c2 \'c1\'d6\'c3\'bc\'c0\'ce \'b0\'e6\'bf\'ec\'bf\'a1\'b4\'c2, (i) \'c7\'f6\'c0\'e7 \'bd\'c3\'c1\'a1\'c0\'cc\'b3\'aa \'b1\'d7 \'c0\'cc\'c8\'c4\'bf\'a1 \'c8\'b9\'b5\'e6\'b5\'c7\'b0\'ed, \'b4\'e7\'bd\'c5\'c0\'cc \'bc\'d2\'c0\'af\'c7\'cf\'b0\'c5\'b3\'aa \'b4\'e7\'bd\'c5\'bf\'a1\'b0\'d4 \'be\'e7\'b5\'b5\'b5\'c8, (ii) \'b4\'dc\'b5\'b6\'c0\'fb\'c0\'b8\'b7\'ce\'b3\'aa \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'cd \'b0\'e1\'c7\'d5\'b5\'c8 \'bb\'f3\'c5\'c2\'b7\'ce \'b4\'e7\'bd\'c5\'c0\'c7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'bf\'a1 \'c6\'f7\'c7\'d4\'b5\'c8 \'b3\'bb\'bf\'eb\'bf\'a1 \'c0\'fb\'bf\'eb\'b5\'c7\'b4\'c2 \'c6\'af\'c7\'e3 \'c3\'bb\'b1\'b8\'c7\'d7\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b62\'c7\'d7. "\'b1\'e2\'bf\'a9\'c0\'da"\'b6\'f5 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b8\'a6 \'bb\'fd\'bc\'ba\'c7\'cf\'b0\'c5\'b3\'aa \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'c0\'c7 \'bb\'fd\'bc\'ba\'bf\'a1 \'b1\'e2\'bf\'a9\'c7\'d1 \'b0\'b3\'c0\'ce\'c0\'cc\'b3\'aa \'c1\'d6\'c3\'bc\'b8\'a6 \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b63\'c7\'d7. "\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5"\'b6\'f5 \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'b3\'aa \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5, \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'cd \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'c0\'c7 \'b0\'e1\'c7\'d5\'c4\'da\'b5\'e5 \'b6\'c7\'b4\'c2 \'c0\'cc\'b5\'e9 \'b0\'a2 \'c4\'da\'b5\'e5\'c0\'c7 \'ba\'ce\'ba\'d0\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b64\'c7\'d7. "\'bf\'dc\'ba\'ce\'c0\'fb\'c0\'b8\'b7\'ce\'c0\'c7 \'c0\'af\'c6\'f7"\'b6\'f5: (a) \'b4\'e7\'bd\'c5\'c0\'bb \'c1\'a6\'bf\'dc\'c7\'d1 \'b4\'d9\'b8\'a5 \'bb\'e7\'b6\'f7\'bf\'a1\'b0\'d4 \'c1\'f7\'c1\'a2\'c0\'fb\'c0\'b8\'b7\'ce\'b3\'aa \'b0\'a3\'c1\'a2\'c0\'fb\'c0\'b8\'b7\'ce \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'bf\'a1 \'b4\'eb\'c7\'d1 \'bc\'ad\'ba\'ea\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'ba\'ce\'bf\'a9\'c7\'cf\'b0\'c5\'b3\'aa \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'b9\'e8\'c6\'f7\'c7\'cf\'b0\'c5\'b3\'aa \'b4\'d9\'b8\'a5 \'b9\'e6\'bd\'c4\'c0\'b8\'b7\'ce \'c1\'a6\'b0\'f8\'c7\'cf\'b4\'c2 \'c7\'e0\'c0\'a7; \'b1\'d7\'b8\'ae\'b0\'ed/\'b6\'c7\'b4\'c2 (b) \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'b4\'dc\'b5\'b6\'c0\'b8\'b7\'ce, \'c8\'a4\'c0\'ba \'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0\'c0\'c7 \'c0\'cf\'ba\'ce\'b7\'ce\'bc\'ad, \'be\'ee\'b6\'b2 \'bc\'ad\'ba\'f1\'bd\'ba\'b8\'a6 \'c1\'a6\'b0\'f8\'c7\'cf\'b1\'e2 \'c0\'a7\'c7\'d1 \'b9\'e6\'bd\'c4\'c0\'b8\'b7\'ce \'bb\'e7\'bf\'eb\'c7\'cf\'b4\'c2 \'c7\'e0\'c0\'a7\'b7\'ce\'bc\'ad, \'b4\'e7\'bd\'c5\'c0\'bb \'c1\'a6\'bf\'dc\'c7\'d1 \'b4\'d9\'b8\'a5 \'c5\'ac\'b6\'f3\'c0\'cc\'be\'f0\'c6\'ae\'bf\'cd\'c0\'c7 \'c0\'fc\'c0\'da\'c0\'fb \'c5\'eb\'bd\'c5\'bc\'f6\'b4\'dc\'c0\'bb \'c5\'eb\'c7\'d8 \'b3\'bb\'bf\'eb\'c0\'bb \'c0\'fc\'b4\'de\'c7\'cf\'b4\'c2 \'b0\'cd\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'cf\'b3\'aa \'b1\'d7\'b0\'cd\'bf\'a1 \'b1\'b9\'c7\'d1\'b5\'c7\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2 \'c7\'e0\'c0\'a7\'b8\'a6 \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b65\'c7\'d7. "\'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0"\'c0\'cc\'b6\'f5 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b3\'aa \'b1\'d7 \'c0\'cf\'ba\'ce\'b8\'a6, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'d4\'c1\'a4\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c7\'c1\'f6 \'be\'ca\'b4\'c2 \'c4\'da\'b5\'e5\'bf\'cd \'b0\'e1\'c7\'d5\'c7\'cf\'b4\'c2 \'c0\'fa\'c0\'db\'b9\'b0\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. \uc0\u160 \cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b66\'c7\'d7. "\'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5"\'b6\'f5 \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'b3\'aa \'b1\'e2\'c1\'b8\'c0\'c7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5, \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'cd \'b1\'e2\'c1\'b8 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'c0\'c7 \'b0\'e1\'c7\'d5\'c4\'da\'b5\'e5, \'b1\'d7\'b8\'ae\'b0\'ed/\'b6\'c7\'b4\'c2 \'c0\'cc\'b5\'e9 \'b0\'a2\'b0\'a2\'c0\'c7 \'ba\'ce\'ba\'d0\'bf\'a1 \'b4\'eb\'c7\'d8 \'b1\'d7 \'b3\'bb\'bf\'eb\'c0\'cc\'b3\'aa \'b1\'b8\'c1\'b6\'b8\'a6 \'c3\'df\'b0\'a1, \'bb\'e8\'c1\'a6, \'b6\'c7\'b4\'c2 \'ba\'af\'c7\'fc\'c7\'d1 \'b0\'cd\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. \'c4\'da\'b5\'e5\'b0\'a1 \'c0\'cf\'b7\'c3\'c0\'c7 \'c6\'c4\'c0\'cf\'b7\'ce \'b8\'b1\'b8\'ae\'c1\'ee \'b5\'c7\'b4\'c2 \'b0\'e6\'bf\'ec, \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b4\'c2: (a) \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'c6\'f7\'c7\'d4\'c7\'cf\'b4\'c2 \'c6\'c4\'c0\'cf\'c0\'c7 \'b3\'bb\'bf\'eb\'bf\'a1 \'b4\'eb\'c7\'d1 \'c3\'df\'b0\'a1\'b3\'aa \'bb\'e8\'c1\'a6; \'b1\'d7\'b8\'ae\'b0\'ed/\'b6\'c7\'b4\'c2 (b) \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'be\'ee\'b6\'b2 \'ba\'ce\'ba\'d0\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'cf\'b4\'c2, \'bb\'f5\'b7\'ce\'bf\'ee \'c6\'c4\'c0\'cf\'c0\'cc\'b3\'aa \'c4\'c4\'c7\'bb\'c5\'cd \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5 \'b8\'ed\'b7\'c9\'b9\'ae\'c0\'c7 \'b4\'d9\'b8\'a5 \'c7\'fc\'c5\'c2\'b8\'a6 \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b67\'c7\'d7. "\'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5"\'b6\'f5 (a) \'c3\'d6\'c3\'ca\'bf\'a1 \'be\'d6\'c7\'c3\'bf\'a1 \'c0\'c7\'c7\'d8 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b5\'fb\'b6\'f3 \'c5\'eb\'bf\'eb\'b5\'c8, \'be\'ee\'b6\'b2 \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5\'c0\'cc\'b3\'aa \'b1\'e2\'c5\'b8 \'c0\'fa\'c0\'db\'b9\'b0\'c0\'c7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'b8\'a6 \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. \'bf\'a9\'b1\'e2\'bf\'a1\'b4\'c2 \'be\'d6\'c7\'c3\'c0\'cc \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b5\'fb\'b6\'f3 \'c5\'eb\'bf\'eb\'bd\'c3\'c5\'b2, \'b1\'d7\'b8\'ae\'b0\'ed \'b1\'d7 \'b3\'bb\'bf\'eb\'c0\'cc \'b1\'d7 \'c0\'fa\'c0\'db\'b9\'b0\'c0\'c7 \'c7\'ec\'b4\'f5 \'c6\'c4\'c0\'cf\'bf\'a1 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'c7\'a5\'c7\'f6\'b5\'c8, \'b1\'d7\'b7\'af\'c7\'d1 \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5\'c0\'cc\'b3\'aa \'b1\'e2\'c5\'b8 \'c0\'fa\'c0\'db\'b9\'b0\'bf\'a1 \'b4\'eb\'c7\'d1 \'be\'f7\'b5\'a5\'c0\'cc\'c6\'ae\'b3\'aa \'be\'f7\'b1\'d7\'b7\'b9\'c0\'cc\'b5\'e5 \'bb\'e7\'c7\'d7\'bf\'a1 \'b4\'eb\'c7\'d1 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'bf\'cd, (b) \'b1\'d7\'b7\'af\'c7\'d1 \'bc\'d2\'bd\'ba \'c4\'da\'b5\'e5\'b7\'ce\'ba\'ce\'c5\'cd \'c4\'c4\'c6\'c4\'c0\'cf \'b5\'c7\'b0\'ed, \'c3\'d6\'c3\'ca\'bf\'a1 \'be\'d6\'c7\'c3\'bf\'a1 \'c0\'c7\'c7\'d8 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b5\'fb\'b6\'f3 \'c5\'eb\'bf\'eb\'b5\'c8 \'bf\'c0\'ba\'ea\'c1\'a7\'c6\'ae \'c4\'da\'b5\'e5\'b0\'a1 \'c6\'f7\'c7\'d4\'b5\'c8\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 1\'c1\'b68\'c7\'d7. "\'bc\'d2\'bd\'ba \'c4\'da\'b5\'e5"\'b6\'f5 \'bb\'e7\'b6\'f7\'c0\'cc \'b5\'b6\'c7\'d8\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2, \'be\'ee\'b6\'b2 \'c7\'c1\'b7\'ce\'b1\'d7\'b7\'a5\'c0\'cc\'b3\'aa \'b1\'e2\'c5\'b8 \'c0\'fa\'c0\'db\'b9\'b0\'c0\'c7 \'c7\'fc\'bd\'c4\'c0\'b8\'b7\'ce\'bc\'ad \'bc\'f6\'c1\'a4\'c0\'bb \'b0\'a1\'c7\'cf\'b1\'e2\'bf\'a1 \'c0\'fb\'c7\'d5\'c7\'d1 \'c7\'fc\'bd\'c4\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. \'bf\'a9\'b1\'e2\'bf\'a1\'b4\'c2 \'b1\'d7\'b0\'cd\'c0\'cc \'c6\'f7\'c7\'d4\'c7\'cf\'b4\'c2 \'b8\'f0\'b5\'e7 \'b8\'f0\'b5\'e2 \'b9\'d7 \'b0\'fc\'b7\'c3\'b5\'c8 \'c0\'ce\'c5\'cd\'c6\'e4\'c0\'cc\'bd\'ba \'c1\'a4\'c0\'c7 \'c6\'c4\'c0\'cf, \'bd\'c7\'c7\'e0\'c6\'c4\'c0\'cf(\'bf\'c0\'ba\'ea\'c1\'a7\'c6\'ae\'c4\'da\'b5\'e5)\'c0\'c7 \'c4\'c4\'c6\'c4\'c0\'cf\'b0\'fa \'bc\'b3\'c4\'a1\'b8\'a6 \'c1\'a6\'be\'ee\'c7\'cf\'b4\'c2\'b5\'a5 \'bb\'e7\'bf\'eb\'b5\'c7\'b4\'c2 \'bd\'ba\'c5\'a9\'b8\'b3\'c6\'ae\'b0\'a1 \'c6\'f7\'c7\'d4\'b5\'c8\'b4\'d9.\uc0\u160 \u160 \cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720\sa240 + +\fs26 \cf0 1\'c1\'b69\'c7\'d7. "\'b4\'e7\'bd\'c5"\'c0\'cc\'b6\'f5 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b5\'fb\'b6\'f3 \'b1\'c7\'b8\'ae\'b8\'a6 \'c7\'e0\'bb\'e7\'c7\'cf\'b4\'c2 \'b0\'b3\'c0\'ce\'c0\'cc\'b3\'aa \'b9\'fd\'c0\'ce\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. \'b9\'fd\'c0\'ce\'c0\'c7 \'b0\'e6\'bf\'ec \'a1\'b0\'b4\'e7\'bd\'c5\'a1\'b1\'c0\'ba \'b4\'e7\'bd\'c5\'c0\'bb \'b0\'fc\'b8\'ae\'c7\'cf\'b0\'c5\'b3\'aa \'b4\'e7\'bd\'c5\'bf\'a1 \'c0\'c7\'c7\'d8 \'b0\'fc\'b8\'ae\'b5\'c7\'b0\'c5\'b3\'aa \'b4\'e7\'bd\'c5\'b0\'fa \'c7\'d4\'b2\'b2 \'b0\'f8\'b5\'bf\'c0\'b8\'b7\'ce \'b0\'fc\'b8\'ae\'b5\'c7\'b4\'c2 \'b8\'f0\'b5\'e7 \'c1\'d6\'c3\'bc\'b8\'a6 \'c6\'f7\'c7\'d4\'c7\'d1\'b4\'d9. \'bf\'a9\'b1\'e2\'bf\'a1\'bc\'ad \'a1\'b0\'b0\'fc\'b8\'ae\'a1\'b1\'b6\'f5 (a) \'b0\'e8\'be\'e0\'bb\'f3\'c0\'b8\'b7\'ce\'b3\'aa \'b1\'e2\'c5\'b8 \'b9\'e6\'bd\'c4\'c0\'b8\'b7\'ce \'b1\'d7\'b7\'af\'c7\'d1 \'c1\'d6\'c3\'bc\'c0\'c7 \'b0\'a8\'b5\'b6\'c0\'cc\'b3\'aa \'b0\'e6\'bf\'b5\'c0\'bb \'c1\'f7\'c1\'a2\'c0\'fb\'c0\'b8\'b7\'ce\'b3\'aa \'b0\'a3\'c1\'a2\'c0\'fb\'c0\'b8\'b7\'ce \'be\'df\'b1\'e2\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2 \'b1\'c7\'b7\'c2, \'b6\'c7\'b4\'c2 (b) \'b1\'d7\'b7\'af\'c7\'d1 \'c1\'d6\'c3\'bc\'bf\'a1 \'b4\'eb\'c7\'d1 50%\'c0\'cc\'bb\'f3\'c0\'c7 \'c1\'d6\'bd\'c4 \'bc\'d2\'c0\'af\'b1\'c7\'c0\'cc\'b3\'aa \'bc\'f6\'c0\'cd\'bf\'a1 \'b4\'eb\'c7\'d1 \'bc\'d2\'c0\'af\'b1\'c7\'c0\'bb \'c0\'c7\'b9\'cc\'c7\'d1\'b4\'d9. +\fs24 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a62\'c1\'b6. \'c7\'e3\'b0\'a1\'b5\'c8 \'bb\'e7\'bf\'eb; \'c1\'b6\'b0\'c7 & \'c1\'a6\'c7\'d1. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'d4\'c1\'a4\'b0\'fa \'c1\'b6\'b0\'c7\'bf\'a1 \'b1\'cd\'bc\'d3\'b5\'c7\'be\'ee, \'be\'d6\'c7\'c3\'c0\'ba \'b4\'e7\'bd\'c5\'c0\'cc \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'bd\'c2\'b3\'ab\'c7\'cf\'b0\'ed \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b8\'a6 \'b4\'d9\'bf\'ee\'b7\'ce\'b5\'e5 \'c7\'d1 \'b3\'af\'b7\'ce\'ba\'ce\'c5\'cd \'c8\'bf\'b7\'c2\'c0\'cc \'b9\'df\'bb\'fd\'c7\'cf\'b8\'e7, \'c0\'fc\'bc\'bc\'b0\'e8\'c0\'fb\'c0\'b8\'b7\'ce \'b9\'ab\'b7\'e1\'b7\'ce \'bb\'e7\'bf\'eb\'c0\'cc \'b0\'a1\'b4\'c9\'c7\'d1 \'ba\'f1\'b5\'b6\'c1\'a1 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'b4\'e7\'bd\'c5\'bf\'a1\'b0\'d4 \'ba\'ce\'bf\'a9\'c7\'d1\'b4\'d9. \'c0\'cc \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'be\'d6\'c7\'c3\'c0\'c7 \'c0\'fb\'bf\'eb \'b0\'a1\'b4\'c9\'c7\'d1 \'c6\'af\'c7\'e3\'b1\'c7\'b0\'fa, \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'a1 \'c0\'fb\'bf\'eb\'b5\'c7\'b4\'c2 \'c0\'fa\'c0\'db\'b1\'c7\'c0\'c7 \'c7\'d1\'b5\'b5\'b1\'ee\'c1\'f6 \'ba\'ce\'bf\'a9\'b5\'c7\'b8\'e7, \'be\'c6\'b7\'a1\'bf\'cd \'b0\'b0\'c0\'ba \'c7\'e0\'c0\'a7\'b8\'a6 \'c7\'e3\'bf\'eb\'c7\'d1\'b4\'d9:\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 2\'c1\'b61\'c7\'d7. \'bc\'f6\'c1\'a4\'b5\'c7\'c1\'f6 \'be\'ca\'c0\'ba \'c4\'da\'b5\'e5. \'b4\'e7\'bd\'c5\'c0\'ba \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'c0\'c7 \'bc\'f6\'c1\'a4\'b5\'c7\'c1\'f6 \'be\'ca\'c0\'ba \'bf\'f8\'ba\'bb \'b1\'d7\'b4\'eb\'b7\'ce\'c0\'c7 \'ba\'b9\'c1\'a6\'ba\'bb\'c0\'bb \'bb\'f3\'be\'f7\'c0\'fb\'c0\'cc\'b0\'c5\'b3\'aa \'ba\'f1\'bb\'f3\'be\'f7\'c0\'fb\'c0\'ce \'b8\'f1\'c0\'fb\'c0\'b8\'b7\'ce \'bb\'e7\'bf\'eb, \'ba\'b9\'c1\'a6, \'c0\'fc\'bd\'c3, \'c0\'db\'b5\'bf, \'b4\'e7\'bd\'c5\'c0\'c7 \'c1\'b6\'c1\'f7 \'b3\'bb\'bf\'a1\'bc\'ad \'b9\'e8\'c6\'f7, \'b1\'d7\'b8\'ae\'b0\'ed \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b4\'dc, \'b0\'a2\'b0\'a2\'c0\'c7 \'c7\'e0\'c0\'a7\'b4\'c2 \'b8\'f0\'b5\'ce \'b4\'d9\'c0\'bd\'b0\'fa \'b0\'b0\'c0\'ba \'c1\'b6\'b0\'c7\'c0\'bb \'c3\'e6\'c1\'b7\'bd\'c3\'c5\'b2\'b4\'d9\'b4\'c2 \'c0\'fc\'c1\'a6 \'c7\'cf\'bf\'a1 \'c7\'e3\'bf\'eb\'b5\'c8\'b4\'d9:\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (a) \'b4\'e7\'bd\'c5\'c0\'ba \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'c0\'c7 \'b8\'f0\'b5\'e7 \'ba\'b9\'c1\'a6\'ba\'bb\'bf\'a1 \'c0\'fa\'c0\'db\'b1\'c7 \'bb\'e7\'c7\'d7 \'b9\'d7 \'b1\'e2\'c5\'b8 \'be\'d6\'c7\'c3\'c0\'c7 \'c0\'e7\'bb\'ea\'b1\'c7 \'c7\'a5\'bd\'c3\'bf\'cd \'ba\'ce\'c0\'ce \'bb\'e7\'c7\'d7\'c0\'bb \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'a1 \'b3\'aa\'c5\'b8\'b3\'aa\'b4\'c2 \'b1\'d7\'b4\'eb\'b7\'ce \'ba\'b9\'c1\'a6\'c7\'cf\'bf\'a9 \'c6\'f7\'c7\'d4\'bd\'c3\'c4\'d1\'be\'df \'c7\'cf\'b8\'e7, \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'a1 \'c0\'d6\'b4\'c2, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'be\'f0\'b1\'de\'c7\'cf\'b4\'c2 \'b8\'f0\'b5\'e7 \'b0\'ed\'c1\'f6\'bb\'e7\'c7\'d7\'b5\'e9\'c0\'bb \'b1\'d7\'b4\'eb\'b7\'ce \'c0\'af\'c1\'f6\'bd\'c3\'c4\'d1\'be\'df \'c7\'d1\'b4\'d9; \'b6\'c7\'c7\'d1,\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (b) \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'bf\'cd \'b9\'ae\'bc\'ad\'c0\'c7 \'ba\'b9\'c1\'a6\'ba\'bb\'c0\'bb \'b9\'e8\'c6\'f7\'c7\'cf\'b0\'c5\'b3\'aa \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d2 \'b6\'a7\'b8\'b6\'b4\'d9 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'bb\'e7\'ba\'bb\'c0\'bb \'b0\'a2 \'ba\'b9\'c1\'a6\'ba\'bb\'bf\'a1 \'c6\'f7\'c7\'d4\'bd\'c3\'c4\'d1\'be\'df \'c7\'cf\'b8\'e7, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b3\'aa \'bf\'a9\'b1\'e2\'bf\'a1\'bc\'ad \'ba\'ce\'bf\'a9\'c7\'cf\'b4\'c2 \'bc\'f6\'c3\'eb\'c0\'ce\'c0\'c7 \'b1\'c7\'b8\'ae\'b8\'a6 \'ba\'af\'c7\'fc\'bd\'c3\'c5\'b0\'b0\'c5\'b3\'aa \'c1\'a6\'c7\'d1\'c7\'cf\'b4\'c2 \'be\'ee\'b6\'b0\'c7\'d1 \'b1\'d4\'c1\'a4\'b5\'b5 \'b1\'d7\'b7\'af\'c7\'d1 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'bf\'a1 \'c1\'a6\'b0\'f8\'c7\'cf\'b0\'c5\'b3\'aa \'ba\'ce\'b0\'fa\'c7\'d8\'bc\'ad\'b4\'c2 \'be\'c8 \'b5\'c8\'b4\'d9. \'b4\'dc, \'c1\'a66\'c1\'b6\'bf\'a1 \'c7\'e3\'bf\'eb\'b5\'c8 \'b0\'e6\'bf\'ec\'b4\'c2 \'c1\'a6\'bf\'dc\'b5\'c8\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 2\'c1\'b62\'c7\'d7. \'bc\'f6\'c1\'a4 \'c4\'da\'b5\'e5. \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'bc\'f6\'c1\'a4\'c7\'cf\'bf\'a9, \'b4\'e7\'bd\'c5\'c0\'c7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'bf\'cd \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'b8\'a6 \'bb\'f3\'be\'f7\'c0\'fb\'c0\'cc\'b0\'c5\'b3\'aa \'ba\'f1\'bb\'f3\'be\'f7\'c0\'fb\'c0\'ce \'b8\'f1\'c0\'fb\'c0\'b8\'b7\'ce \'bb\'e7\'bf\'eb, \'ba\'b9\'c1\'a6, \'c0\'fc\'bd\'c3, \'c0\'db\'b5\'bf, \'b4\'e7\'bd\'c5\'c0\'c7 \'c1\'b6\'c1\'f7 \'b3\'bb\'bf\'a1\'bc\'ad \'b9\'e8\'c6\'f7, \'b1\'d7\'b8\'ae\'b0\'ed \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b4\'dc, \'b0\'a2\'b0\'a2\'c0\'c7 \'c7\'e0\'c0\'a7\'b4\'c2 \'b4\'d9\'c0\'bd\'b0\'fa \'b0\'b0\'c0\'ba \'c1\'b6\'b0\'c7\'c0\'bb \'b8\'f0\'b5\'ce \'c3\'e6\'c1\'b7\'bd\'c3\'c5\'b2\'b4\'d9\'b4\'c2 \'c0\'fc\'c1\'a6 \'c7\'cf\'bf\'a1 \'c7\'e3\'bf\'eb\'b5\'c8\'b4\'d9:\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (a) \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'c0\'c7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'bf\'a1 \'b4\'eb\'c7\'cf\'bf\'a9 \'c1\'a62\'c1\'b61\'c7\'d7\'c0\'c7 \'b8\'f0\'b5\'e7 \'c1\'b6\'b0\'c7\'b5\'e9\'c0\'bb \'c3\'e6\'c1\'b7\'bd\'c3\'c4\'d1\'be\'df \'c7\'d1\'b4\'d9;\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (b) \'b4\'e7\'bd\'c5\'c0\'ba Exhibit A\'c0\'c7 \'b0\'ed\'c1\'f6\'bb\'e7\'c7\'d7\'c0\'bb \'b4\'e7\'bd\'c5\'c0\'c7 \'b8\'f0\'b5\'e7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'c0\'c7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5 \'b3\'bb\'bf\'a1 \'c0\'d6\'b4\'c2 \'b0\'a2 \'c6\'c4\'c0\'cf\'bf\'a1 \'ba\'b9\'c1\'a6\'c7\'cf\'b0\'ed, \'bc\'f6\'c1\'a4\'b5\'c8 \'c6\'c4\'c0\'cf\'bf\'a1 \'b4\'e7\'bd\'c5\'c0\'cc \'c6\'c4\'c0\'cf\'c0\'bb \'bc\'f6\'c1\'a4\'c7\'df\'b4\'d9\'b4\'c2 \'bb\'e7\'bd\'c7\'b0\'fa \'bc\'f6\'c1\'a4\'c0\'bb \'b0\'a1\'c7\'d1 \'b3\'af\'c2\'a5\'b8\'a6 \'bc\'b3\'b8\'ed\'c7\'cf\'b4\'c2 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'ce \'b9\'ae\'b1\'b8\'b8\'a6 \'c6\'f7\'c7\'d4\'bd\'c3\'c4\'d1\'be\'df \'c7\'d1\'b4\'d9; \'b6\'c7\'c7\'d1\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (c) \'b4\'e7\'bd\'c5\'c0\'c7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b8\'a6 \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'cf\'b4\'c2 \'b0\'e6\'bf\'ec, \'b4\'e7\'bd\'c5\'c0\'ba \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'b5\'c8 \'b8\'f0\'b5\'e7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'bf\'a1 \'b4\'eb\'c7\'d1 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'b8\'a6 \'b0\'f8\'b0\'b3\'c0\'fb\'c0\'b8\'b7\'ce \'c5\'eb\'bf\'eb\'bd\'c3\'c5\'b0\'b0\'c5\'b3\'aa, \'b4\'e7\'bd\'c5\'c0\'cc \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d1 \'b4\'eb\'bb\'f3\'bf\'a1\'b0\'d4 \'c1\'a6\'b0\'f8\'c7\'d8\'be\'df \'c7\'d1\'b4\'d9. \'b4\'e7\'bd\'c5\'c0\'cc \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d1 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'c0\'c7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'b4\'c2, \'be\'c6\'b7\'a1\'c0\'c7 \'c1\'a63\'c1\'b6\'bf\'a1 \'c1\'a6\'bd\'c3\'b5\'c8 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'ba\'ce\'bf\'a9 \'bb\'e7\'c7\'d7\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'cf\'b4\'c2, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c1\'a6\'bd\'c3\'b5\'c8 \'c1\'b6\'b0\'c7\'bf\'a1 \'b5\'fb\'b6\'f3 \'b8\'b1\'b8\'ae\'c1\'ee \'b5\'c7\'be\'ee\'be\'df \'c7\'d1\'b4\'d9. \'b1\'d7 \'b1\'e2\'b0\'a3\'c0\'ba \'b4\'e7\'bd\'c5\'c0\'cc \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'cf\'b4\'c2 \'b1\'e2\'b0\'a3, \'c8\'a4\'c0\'ba \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d1 \'c3\'d6\'c3\'ca\'c0\'c7 \'b3\'af\'b7\'ce\'ba\'ce\'c5\'cd 12\'b0\'b3\'bf\'f9\'b1\'ee\'c1\'f6\'c0\'c7 \'b1\'e2\'b0\'a3 \'c1\'df \'b4\'f5 \'b1\'e4 \'c2\'ca\'c0\'bb \'c5\'c3\'c7\'d8\'be\'df \'c7\'d1\'b4\'d9. \'b4\'e7\'bd\'c5\'c0\'ba \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d1 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b8\'a6 \'b0\'a1\'b1\'de\'c0\'fb \'c0\'fc\'c0\'da\'c0\'fb \'b9\'e6\'b9\'fd(\'bf\'b9\'b8\'a6 \'b5\'e9\'b8\'e9 \'c0\'a5\'bb\'e7\'c0\'cc\'c6\'ae\'b7\'ce\'ba\'ce\'c5\'cd \'b4\'d9\'bf\'ee\'b7\'ce\'b5\'e5)\'c0\'b8\'b7\'ce \'b9\'e8\'c6\'f7\'c7\'cf\'b4\'c2 \'c6\'ed\'c0\'bb \'bc\'b1\'c5\'c3\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 2\'c1\'b63\'c7\'d7. \'bd\'c7\'c7\'e0\'c6\'c4\'c0\'cf \'b9\'f6\'c0\'fc\'c0\'c7 \'b9\'e8\'c6\'f7. \'b6\'c7\'c7\'d1, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5(\'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b3\'aa \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5)\'b8\'a6 \'bf\'c0\'ba\'ea\'c1\'a7\'c6\'ae \'c4\'da\'b5\'e5\'b7\'ce, \'bd\'c7\'c7\'e0\'c6\'c4\'c0\'cf \'c7\'fc\'c5\'c2\'b7\'ce\'b8\'b8 \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'cf\'b4\'c2 \'b0\'e6\'bf\'ec, \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'b0\'a1 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'c1\'b6\'b0\'c7\'bf\'a1 \'b5\'fb\'b6\'f3 \'c1\'a6\'b0\'f8\'b5\'c8\'b4\'d9\'b4\'c2 \'bb\'e7\'bd\'c7\'b0\'fa \'b1\'d7 \'bc\'d2\'bd\'ba\'c4\'da\'b5\'e5\'b8\'a6 \'b1\'b8\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2 \'b9\'e6\'b9\'fd\'b0\'fa \'c0\'e5\'bc\'d2\'bf\'a1 \'b4\'eb\'c7\'d1 \'c1\'a4\'ba\'b8\'b8\'a6 \'be\'cb\'b7\'c1\'c1\'d6\'b4\'c2 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'ce \'b0\'f8\'c1\'f6\'bb\'e7\'c7\'d7\'c0\'bb \'c4\'da\'b5\'e5 \'c0\'da\'c3\'bc \'b9\'d7 \'b0\'fc\'b7\'c3 \'b9\'ae\'bc\'ad \'b3\'bb\'bf\'a1 \'c6\'f7\'c7\'d4\'bd\'c3\'c4\'d1\'be\'df \'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 2\'c1\'b64\'c7\'d7. \'c1\'a63\'c0\'da \'b1\'c7\'b8\'ae. \'b4\'e7\'bd\'c5\'c0\'ba \'ba\'f1\'b7\'cf \'be\'d6\'c7\'c3\'b0\'fa \'b0\'a2 \'b1\'e2\'bf\'a9\'c0\'da\'b0\'a1 \'b0\'a2\'b0\'a2\'c0\'c7 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5 \'c7\'d8\'b4\'e7 \'ba\'ce\'ba\'d0\'bf\'a1 \'b4\'eb\'c7\'d1 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'ba\'ce\'bf\'a9\'c7\'cf\'c1\'f6\'b8\'b8, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b0\'a1 \'b4\'d9\'b8\'a5 \'c1\'d6\'c3\'bc\'c0\'c7 \'c6\'af\'c7\'e3\'b3\'aa \'b1\'e2\'c5\'b8 \'c1\'f6\'bd\'c4\'c0\'e7\'bb\'ea\'b1\'c7\'c0\'bb \'c4\'a7\'c7\'d8\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9\'b4\'c2 \'ba\'b8\'c0\'e5\'c0\'cc \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'be\'ee\'b6\'b2 \'b1\'e2\'bf\'a9\'c0\'da\'bf\'a1 \'c0\'c7\'c7\'d8\'bc\'ad\'b5\'b5 \'c1\'a6\'b0\'f8\'b5\'c7\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9\'b4\'c2 \'bb\'e7\'bd\'c7\'c0\'bb \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'c0\'ce\'bd\'c4\'c7\'cf\'b0\'ed \'c0\'cc\'bf\'a1 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \'be\'d6\'c7\'c3\'b0\'fa \'b0\'a2 \'b1\'e2\'bf\'a9\'c0\'da\'b4\'c2 \'c1\'f6\'bd\'c4\'c0\'e7\'bb\'ea\'b1\'c7 \'c4\'a7\'c7\'d8 \'b5\'ee\'c0\'bb \'b1\'d9\'b0\'c5\'b7\'ce \'b4\'d9\'b8\'a5 \'c1\'d6\'c3\'bc\'bf\'a1 \'c0\'c7\'c7\'d8 \'c1\'a6\'b1\'e2\'b5\'c8 \'c3\'bb\'b1\'b8\'bf\'cd \'b0\'fc\'b7\'c3\'c7\'cf\'bf\'a9 \'b4\'e7\'bd\'c5\'bf\'a1 \'b4\'eb\'c7\'d1 \'be\'ee\'b6\'b0\'c7\'d1 \'c3\'a5\'c0\'d3\'b5\'b5 \'ba\'ce\'c0\'ce\'c7\'d1\'b4\'d9. \'bf\'a9\'b1\'e2\'bf\'a1\'bc\'ad \'ba\'ce\'bf\'a9\'c7\'cf\'b4\'c2 \'b1\'c7\'b8\'ae\'bf\'cd \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'c7\'e0\'bb\'e7\'c7\'cf\'b4\'c2 \'c1\'b6\'b0\'c7\'c0\'b8\'b7\'ce\'bc\'ad \'b4\'e7\'bd\'c5\'c0\'ba \'be\'ee\'b6\'b2 \'b4\'d9\'b8\'a5 \'c1\'f6\'bd\'c4\'c0\'e7\'bb\'ea\'b1\'c7\'c0\'bb \'c8\'ae\'ba\'b8\'c7\'d8\'be\'df \'c7\'d2 \'c7\'ca\'bf\'e4\'b0\'a1 \'c0\'d6\'b4\'c2 \'b0\'e6\'bf\'ec, \'b1\'d7 \'c3\'a5\'c0\'d3\'c0\'bb \'b4\'dc\'b5\'b6\'c0\'b8\'b7\'ce \'c1\'ae\'be\'df \'c7\'d1\'b4\'d9. \'bf\'b9\'b8\'a6 \'b5\'e9\'b8\'e9, \'b4\'e7\'bd\'c5\'c0\'cc \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'b9\'e8\'c6\'f7\'c7\'cf\'b4\'c2\'b5\'a5 \'be\'ee\'b6\'b2 \'c1\'a63\'c0\'da \'c6\'af\'c7\'e3 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'c7\'e3\'b0\'a1\'b0\'a1 \'c7\'ca\'bf\'e4\'c7\'cf\'b4\'d9\'b8\'e9, \'b1\'d7 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'b9\'e8\'c6\'f7\'c7\'cf\'b1\'e2 \'c0\'fc\'bf\'a1 \'c7\'d8\'b4\'e7 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'c8\'b9\'b5\'e6\'c7\'cf\'b4\'c2 \'b0\'cd\'c0\'ba \'b4\'e7\'bd\'c5\'c0\'c7 \'c3\'a5\'c0\'d3\'c0\'cc\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a63\'c1\'b6. \'b4\'e7\'bd\'c5\'c0\'c7 \'ba\'ce\'bf\'a9 \'bb\'e7\'c7\'d7. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'c7\'d8 \'b4\'e7\'bd\'c5\'bf\'a1\'b0\'d4 \'ba\'ce\'bf\'a9\'b5\'c8 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b4\'eb\'c7\'d1 \'c1\'b6\'b0\'c7\'c0\'b8\'b7\'ce, \'b4\'e7\'bd\'c5\'c0\'ba \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'c7\'d8 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'b8\'a6 \'be\'e7\'b5\'b5\'b9\'de\'b0\'c5\'b3\'aa \'b9\'e8\'c6\'f7\'c7\'cf\'b4\'c2 \'b8\'f0\'b5\'e7 \'b0\'b3\'c0\'ce\'c0\'cc\'b3\'aa \'c1\'d6\'c3\'bc\'bf\'a1\'b0\'d4, \'c0\'a7\'c0\'c7 2\'c1\'b61\'c7\'d7\'b0\'fa 2\'c1\'b62\'c7\'d7\'bf\'a1\'bc\'ad \'be\'d6\'c7\'c3\'c0\'c7 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b0\'a1 \'c7\'e3\'b0\'a1\'c7\'cf\'b4\'c2 \'b0\'cd\'b0\'fa \'b5\'bf\'c0\'cf\'c7\'d1 \'b9\'fc\'c0\'a7\'bf\'cd \'c1\'a4\'b5\'b5\'b7\'ce \'b4\'e7\'bd\'c5\'c0\'c7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b8\'a6 \'bb\'e7\'bf\'eb, \'ba\'b9\'c1\'a6, \'c0\'fc\'bd\'c3, \'c0\'db\'b5\'bf, \'bc\'f6\'c1\'a4, \'bc\'ad\'ba\'ea\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'bc\'b3\'c1\'a4, \'b9\'e8\'c6\'f7 \'b9\'d7 \'bf\'dc\'ba\'ce\'b7\'ce \'c0\'af\'c6\'f7\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2, \'bb\'e7\'bf\'eb\'b7\'e1\'b0\'a1 \'be\'f8\'b4\'c2 \'bf\'b5\'bc\'d3\'c0\'fb\'c0\'cc\'b0\'ed \'c3\'eb\'bc\'d2\'b0\'a1 \'ba\'d2\'b0\'a1\'b4\'c9\'c7\'d1 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'b4\'e7\'bd\'c5\'c0\'c7 \'c0\'fb\'bf\'eb \'b0\'a1\'b4\'c9\'c7\'d1 \'c6\'af\'c7\'e3\'b1\'c7 \'b9\'d7 \'b4\'e7\'bd\'c5\'c0\'cc \'bc\'d2\'c0\'af\'c7\'cf\'b0\'c5\'b3\'aa \'b0\'fc\'b8\'ae\'c7\'cf\'b4\'c2 \'b1\'e2\'c5\'b8 (\'c6\'af\'c7\'e3 \'c0\'cc\'bf\'dc\'c0\'c7) \'c1\'f6\'bd\'c4\'c0\'e7\'bb\'ea\'b1\'c7\'bf\'a1 \'b5\'fb\'b6\'f3 \'ba\'ce\'bf\'a9\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a64\'c1\'b6. \'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'bf\'cd \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'d4\'c1\'a4\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c7\'c1\'f6 \'be\'ca\'b4\'c2 \'b4\'d9\'b8\'a5 \'c4\'da\'b5\'e5\'b8\'a6 \'c7\'d4\'b2\'b2 \'b0\'e1\'c7\'d5\'c7\'d4\'c0\'b8\'b7\'ce\'bd\'e1 \'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0\'c0\'bb \'bb\'fd\'bc\'ba\'c7\'d2 \'bc\'f6 \'c0\'d6\'c0\'b8\'b8\'e7, \'b1\'d7\'b7\'af\'c7\'d1 \'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0\'c0\'bb \'b4\'dc\'c0\'cf\'c7\'d1 \'c1\'a6\'c7\'b0\'c0\'b8\'b7\'ce \'b9\'e8\'c6\'f7\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'c0\'cc\'b7\'af\'c7\'d1 \'b0\'e6\'bf\'ec, \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b3\'aa \'b1\'d7 \'c0\'cf\'ba\'ce\'bf\'a1 \'b4\'eb\'c7\'d8 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'bf\'e4\'b1\'b8\'bb\'e7\'c7\'d7\'b5\'e9\'c0\'cc \'c3\'e6\'c1\'b7\'b5\'c9 \'bc\'f6 \'c0\'d6\'b5\'b5\'b7\'cf \'ba\'b8\'c0\'e5\'c7\'d8\'be\'df \'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a65\'c1\'b6. \'c6\'af\'c7\'e3 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b4\'eb\'c7\'d1 \'c1\'a6\'c7\'d1. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'c1\'a62\'c1\'b6\'bf\'a1 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'c1\'f8\'bc\'fa\'b5\'c8 \'b0\'e6\'bf\'ec\'b8\'a6 \'c1\'a6\'bf\'dc\'c7\'cf\'b0\'ed, \'b1\'e2\'c5\'b8 \'be\'ee\'b6\'b0\'c7\'d1 \'c6\'af\'c7\'e3\'b1\'c7\'b5\'b5 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce\'b3\'aa \'b9\'ac\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'be\'d6\'c7\'c3\'bf\'a1 \'c0\'c7\'c7\'d8 \'ba\'ce\'bf\'a9\'b5\'c7\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9. \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5 \'b9\'d7 \'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0\'bf\'a1 \'b4\'eb\'c7\'d8, \'be\'d6\'c7\'c3\'b7\'ce\'ba\'ce\'c5\'cd \'c3\'df\'b0\'a1\'c0\'fb\'c0\'ce \'c6\'af\'c7\'e3 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b0\'a1 \'bf\'e4\'b1\'b8\'b5\'c9 \'b0\'e6\'bf\'ec\'bf\'a1\'b4\'c2 \'be\'d6\'c7\'c3\'c0\'cc \'b4\'dc\'b5\'b6\'c0\'fb\'c0\'ce \'c0\'e7\'b7\'ae\'c0\'b8\'b7\'ce \'c0\'cc\'b8\'a6 \'ba\'ce\'bf\'a9\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a66\'c1\'b6. \'c3\'df\'b0\'a1 \'c1\'b6\'b0\'c7. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'be\'e7\'b5\'b5\'b9\'de\'c0\'ba \'c7\'d1 \'b8\'ed \'c0\'cc\'bb\'f3\'c0\'c7 \'bc\'f6\'c3\'eb\'c0\'ce\'bf\'a1\'b0\'d4 \'ba\'b8\'c1\'f5\'c0\'cc\'b3\'aa \'c1\'f6\'bf\'f8, \'b8\'e9\'c3\'a5, \'c3\'a5\'c0\'d3 \'c0\'c7\'b9\'ab \'b9\'d7 \'bf\'a9\'b1\'e2\'bf\'a1\'bc\'ad \'ba\'ce\'bf\'a9\'c7\'cf\'b4\'c2 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b9\'fc\'c0\'a7\'bf\'cd \'c0\'cf\'b0\'fc\'b5\'c8 \'b1\'e2\'c5\'b8 \'b1\'c7\'c7\'d1\'b5\'e9\'c0\'bb \'c0\'d3\'c0\'c7\'b7\'ce \'c1\'a6\'b0\'f8\'c7\'cf\'b0\'ed, \'b1\'d7\'bf\'a1 \'b4\'eb\'c7\'d1 \'bf\'e4\'b1\'dd\'c0\'bb \'ba\'ce\'b0\'fa\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b1\'d7\'b7\'af\'b3\'aa \'c0\'cc\'b7\'af\'c7\'d1 \'c7\'e0\'c0\'a7\'bf\'a1 \'c0\'d6\'be\'ee \'b4\'e7\'bd\'c5\'c0\'cc \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'b4\'d9\'b8\'a5 \'b1\'e2\'bf\'a9\'c0\'da\'b8\'a6 \'b4\'eb\'bd\'c5\'c7\'d2 \'bc\'f6\'b4\'c2 \'be\'f8\'b0\'ed, \'b4\'dc\'b5\'b6\'c0\'b8\'b7\'ce \'c0\'fc\'c0\'fb\'c0\'ce \'c3\'a5\'c0\'d3\'c0\'bb \'c1\'ae\'be\'df \'c7\'d1\'b4\'d9. \'b4\'e7\'bd\'c5\'c0\'ba \'b1\'d7\'b7\'af\'c7\'d1 \'c3\'df\'b0\'a1 \'c1\'b6\'b0\'c7\'b5\'e9\'c0\'cc \'b4\'e7\'bd\'c5\'bf\'a1 \'c0\'c7\'c7\'d8 \'b4\'dc\'b5\'b6\'c0\'fb\'c0\'b8\'b7\'ce \'c1\'a6\'b0\'f8\'b5\'c8\'b4\'d9\'b4\'c2 \'bb\'e7\'bd\'c7\'bf\'a1 \'b4\'eb\'c7\'d8 \'bc\'f6\'c3\'eb\'c0\'ce\'c0\'c7 \'b5\'bf\'c0\'c7\'b8\'a6 \'be\'f2\'be\'ee\'be\'df \'c7\'cf\'b0\'ed, \'b1\'d7\'b7\'af\'c7\'d1 \'c3\'df\'b0\'a1 \'c1\'b6\'b0\'c7\'c0\'b8\'b7\'ce \'c0\'ce\'c7\'d8 \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'b0\'a2\'b0\'a2\'c0\'c7 \'b1\'e2\'bf\'a9\'c0\'da\'b8\'a6 \'bb\'f3\'b4\'eb\'b7\'ce \'b9\'df\'bb\'fd\'c7\'d1 \'c3\'a5\'c0\'d3\'c0\'cc\'b3\'aa \'c1\'d6\'c0\'e5\'b5\'c8 \'c3\'bb\'b1\'b8\'bf\'a1 \'b4\'eb\'c7\'d8, \'be\'d6\'c7\'c3\'b0\'fa \'c7\'d8\'b4\'e7 \'b1\'e2\'bf\'a9\'c0\'da\'b8\'a6 \'b9\'e6\'be\'ee\'c7\'cf\'b0\'ed \'b8\'e9\'c3\'a5\'c7\'cf\'b4\'c2\'b5\'a5 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a67\'c1\'b6. \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b9\'f6\'c0\'fc. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'be\'d6\'c7\'c3\'c0\'ba \'b6\'a7\'b6\'a7\'b7\'ce \'b0\'b3\'c1\'a4\'b5\'c8 \'b9\'f6\'c0\'fc\'c0\'cc\'b3\'aa \'bd\'c5\'b1\'d4 \'b9\'f6\'c0\'fc\'c0\'bb \'b0\'f8\'c7\'a5\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b0\'a2\'b0\'a2\'c0\'c7 \'b9\'f6\'c0\'fc\'c0\'ba \'b9\'f6\'c0\'fc \'b3\'d1\'b9\'f6\'b7\'ce \'b1\'b8\'ba\'d0\'b5\'c8\'b4\'d9. \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b0\'a1 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'be\'ee\'b6\'b2 \'c6\'af\'c1\'a4\'c7\'d1 \'b9\'f6\'c0\'fc\'bf\'a1 \'b5\'fb\'b6\'f3 \'b0\'f8\'c7\'a5\'b5\'c7\'be\'fa\'b4\'d9\'b8\'e9, \'b4\'e7\'bd\'c5\'c0\'ba \'b1\'d7\'b0\'cd\'c0\'bb \'b1\'d7 \'b9\'f6\'c0\'fc\'c0\'c7 \'b1\'d4\'c1\'a4\'bf\'a1 \'b5\'fb\'b6\'f3 \'b0\'e8\'bc\'d3\'c7\'d8\'bc\'ad \'bb\'e7\'bf\'eb\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b6\'c7\'c7\'d1, \'b4\'e7\'bd\'c5\'c0\'ba \'b1\'d7 \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b8\'a6 \'be\'d6\'c7\'c3\'bf\'a1 \'c0\'c7\'c7\'d8 \'b0\'f8\'c7\'a5\'b5\'c8 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'c8\'c4\'bc\'d3 \'b9\'f6\'c0\'fc\'c0\'c7 \'b1\'d4\'c1\'a4\'bf\'a1 \'b5\'fb\'b6\'f3 \'bb\'e7\'bf\'eb\'c7\'d2 \'bc\'f6\'b5\'b5 \'c0\'d6\'b4\'d9. \'be\'d6\'c7\'c3\'c0\'bb \'c1\'a6\'bf\'dc\'c7\'d1 \'b4\'a9\'b1\'b8\'b5\'b5 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'b5\'fb\'b6\'f3 \'c0\'db\'bc\'ba\'b5\'c8 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'bf\'a1 \'c0\'fb\'bf\'eb\'b5\'c7\'b4\'c2 \'b1\'d4\'c1\'a4\'b5\'e9\'c0\'bb \'bc\'f6\'c1\'a4\'c7\'d2 \'b1\'c7\'b8\'ae\'b0\'a1 \'be\'f8\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a68\'c1\'b6. \'ba\'b8\'c1\'f5\'c0\'cc\'b3\'aa \'c1\'f6\'bf\'f8 \'be\'f8\'c0\'bd. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b4\'c2 \'b8\'b1\'b8\'ae\'c1\'ee \'b5\'c7\'b1\'e2 \'c0\'fc\'c0\'c7 \'c0\'fa\'c0\'db\'b9\'b0\'c0\'cc\'b3\'aa \'c5\'d7\'bd\'ba\'c6\'ae\'b8\'a6 \'bf\'cf\'c0\'fc\'c8\'f7 \'b8\'b6\'c4\'a1\'c1\'f6 \'be\'ca\'c0\'ba \'c0\'fa\'c0\'db\'b9\'b0\'c0\'bb \'c0\'fc\'c3\'bc\'c0\'fb\'c0\'b8\'b7\'ce \'b6\'c7\'b4\'c2 \'ba\'ce\'ba\'d0\'c0\'fb\'c0\'b8\'b7\'ce \'c6\'f7\'c7\'d4\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b4\'c2 \'b0\'ed\'c0\'e5\'c0\'cc\'b3\'aa \'b5\'a5\'c0\'cc\'c5\'cd \'bc\'d5\'bd\'c7\'c0\'bb \'be\'df\'b1\'e2\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2 \'bf\'c0\'b7\'f9\'b8\'a6 \'c6\'f7\'c7\'d4\'c7\'d2 \'bc\'f6 \'c0\'d6\'b0\'ed, \'ba\'d2\'bf\'cf\'c0\'fc\'c7\'cf\'b0\'c5\'b3\'aa \'ba\'ce\'c1\'a4\'c8\'ae\'c7\'d1 \'b0\'cd\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'d9. \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b3\'aa \'b1\'d7 \'c0\'cf\'ba\'ce\'b8\'a6 \'bb\'e7\'bf\'eb\'c7\'cf\'b4\'c2 \'b0\'cd\'bf\'a1 \'b4\'eb\'c7\'d1 \'c0\'a7\'c7\'e8\'c0\'cc \'c0\'fc\'c0\'fb\'c0\'b8\'b7\'ce \'b4\'e7\'bd\'c5 \'b4\'dc\'b5\'b6\'c0\'c7 \'b0\'cd\'c0\'d3\'c0\'bb \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'c0\'ce\'bd\'c4\'c7\'cf\'b0\'ed \'c0\'cc\'bf\'a1 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9. \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b4\'c2 \'be\'ee\'b6\'b2 \'c7\'fc\'c5\'c2\'c0\'c7 \'ba\'b8\'c1\'f5\'c0\'cc\'b3\'aa \'be\'f7\'b1\'d7\'b7\'b9\'c0\'cc\'b5\'e5, \'c1\'f6\'bf\'f8\'b5\'b5 \'c1\'a6\'b0\'f8\'b5\'c7\'c1\'f6 \'be\'ca\'c0\'ba \'a1\'b0\'c0\'d6\'b4\'c2 \'b1\'d7\'b4\'eb\'b7\'ce\'a1\'b1\'c0\'c7 \'bb\'f3\'c5\'c2\'b7\'ce \'c1\'a6\'b0\'f8\'b5\'c7\'b8\'e7, \'be\'d6\'c7\'c3\'b0\'fa \'be\'d6\'c7\'c3\'c0\'c7 \'b6\'f3\'c0\'cc\'bc\'be\'bc\'ad(\'c1\'a68\'c1\'b6\'bf\'cd \'c1\'a69\'c1\'b6\'bf\'a1\'bc\'ad \'c1\'fd\'c7\'d5\'c0\'fb\'c0\'b8\'b7\'ce \'a1\'b0\'be\'d6\'c7\'c3\'a1\'b1\'c0\'cc\'b6\'f3\'b0\'ed \'c4\'aa\'c7\'d4) \'b9\'d7 \'b8\'f0\'b5\'e7 \'b1\'e2\'bf\'a9\'c0\'da\'b4\'c2 \'bb\'f3\'c7\'b0\'bc\'ba, \'c7\'b0\'c1\'fa\'bf\'a1 \'b4\'eb\'c7\'d1 \'b8\'b8\'c1\'b7, \'c6\'af\'c1\'a4 \'b8\'f1\'c0\'fb\'bf\'a1 \'b4\'eb\'c7\'d1 \'c0\'fb\'c7\'d5\'bc\'ba, \'c1\'a4\'c8\'ae\'bc\'ba, \'c6\'f2\'bf\'c2\'c7\'e2\'c0\'af, \'c1\'a63\'c0\'da \'b1\'c7\'b8\'ae\'c0\'c7 \'ba\'f1\'c4\'a7\'c7\'d8\'bf\'a1 \'b4\'eb\'c7\'d1 \'be\'cf\'b9\'ac\'c0\'fb\'c0\'ce \'ba\'b8\'c1\'f5 \'b9\'d7 \'c1\'b6\'b0\'c7\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'d1, \'b1\'d7\'b7\'af\'b3\'aa \'c0\'cc\'bf\'a1 \'b1\'b9\'c7\'d1\'b5\'c7\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2 \'b9\'fc\'c0\'a7\'c0\'c7 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'cc\'b0\'c5\'b3\'aa \'b9\'ac\'bd\'c3\'c0\'fb\'c0\'ce \'b8\'f0\'b5\'e7 \'ba\'b8\'c1\'f5 \'b9\'d7 \'c1\'b6\'b0\'c7\'c0\'bb \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'ba\'ce\'c0\'ce\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \'be\'d6\'c7\'c3\'b0\'fa \'b0\'a2 \'b1\'e2\'bf\'a9\'c0\'da\'b4\'c2 \'b4\'e7\'bd\'c5\'c0\'c7 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'c7\'e2\'c0\'af\'b0\'a1 \'b0\'a3\'bc\'b7 \'b9\'de\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9\'b4\'c2 \'ba\'b8\'c1\'f5, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5 \'b3\'bb\'bf\'a1 \'c6\'f7\'c7\'d4\'b5\'c8 \'b1\'e2\'b4\'c9\'b5\'e9\'c0\'cc \'b4\'e7\'bd\'c5\'c0\'c7 \'bf\'e4\'b1\'b8\'bb\'e7\'c7\'d7\'c0\'bb \'c3\'e6\'c1\'b7\'bd\'c3\'c5\'b2\'b4\'d9\'b4\'c2 \'ba\'b8\'c1\'f5, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'c0\'db\'b5\'bf\'bf\'a1 \'c0\'d6\'be\'ee\'bc\'ad \'bf\'c0\'b7\'f9\'b3\'aa \'c1\'df\'b4\'dc\'c0\'cc \'b9\'df\'bb\'fd\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9\'b4\'c2 \'ba\'b8\'c1\'f5, \'b6\'c7\'b4\'c2 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'b0\'e1\'c7\'d4\'b5\'e9\'c0\'cc \'b1\'b3\'c1\'a4\'b5\'c8\'b4\'d9\'b4\'c2 \'ba\'b8\'c1\'f5\'c0\'bb \'c1\'a6\'b0\'f8\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9. \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'be\'d6\'c7\'c3\'c0\'cc \'b1\'c7\'c7\'d1\'c0\'bb \'ba\'ce\'bf\'a9\'c7\'d1 \'b4\'eb\'b8\'ae\'c0\'ce, \'b6\'c7\'b4\'c2 \'be\'ee\'b6\'b2 \'b1\'e2\'bf\'a9\'c0\'da\'b0\'a1 \'b1\'b8\'b5\'ce\'b3\'aa \'bc\'ad\'b8\'e9\'c0\'b8\'b7\'ce \'c1\'a6\'b0\'f8\'c7\'d1 \'c1\'a4\'ba\'b8\'b3\'aa \'c1\'b6\'be\'f0\'c0\'cc \'ba\'b8\'c1\'f5\'c0\'bb \'b1\'b8\'bc\'ba\'c7\'cf\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2\'b4\'d9.\uc0\u160 \cf2 \ +\cf0 \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b0\'a1 \'c7\'d9 \'bd\'c3\'bc\'b3\'c0\'c7 \'b1\'b8\'b5\'bf, \'c7\'d7\'b0\'f8\'b1\'e2\'c0\'c7 \'c7\'d7\'c7\'d8, \'c5\'eb\'bd\'c5\'b8\'c1, \'b6\'c7\'b4\'c2 \'c7\'d7\'b0\'f8\'b1\'b3\'c5\'eb\'b0\'fc\'c1\'a6\'b1\'e2 \'b5\'ee\'b0\'fa \'b0\'b0\'c0\'cc \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'c0\'c7 \'ba\'f1 \'c0\'db\'b5\'bf\'c0\'cc \'bb\'e7\'b8\'c1\'c0\'cc\'b3\'aa \'b0\'b3\'c0\'ce\'c0\'fb \'bb\'f3\'c5\'c2, \'bd\'c9\'b0\'a2\'c7\'d1 \'c0\'b0\'c3\'bc\'c0\'fb, \'c8\'af\'b0\'e6\'c0\'fb\'c0\'ce \'bc\'d5\'c7\'d8\'b8\'a6 \'c0\'af\'b9\'df\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2 \'b0\'e6\'bf\'ec\'b8\'a6 \'c0\'a7\'c7\'d8 \'bb\'e7\'bf\'eb\'b5\'c7\'b5\'b5\'b7\'cf \'c0\'c7\'b5\'b5\'b5\'c7\'c1\'f6 \'be\'ca\'be\'d2\'c0\'bd\'c0\'bb \'c0\'ce\'bd\'c4\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a69\'c1\'b6. \'c3\'a5\'c0\'d3\'c0\'c7 \'c1\'a6\'c7\'d1. +\fs36 \cf2 \ +\pard\pardeftab720\sa380 + +\fs24 \cf0 \uc0\u160 \'b9\'fd\'b7\'fc\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'dd\'c1\'f6\'b5\'c7\'c1\'f6 \'be\'ca\'c0\'ba \'c1\'a4\'b5\'b5\'b1\'ee\'c1\'f6, \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'be\'ee\'b6\'b2 \'b1\'e2\'bf\'a9\'c0\'da\'b5\'b5, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba, \'b6\'c7\'b4\'c2 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b3\'aa \'b1\'d7 \'c0\'cf\'ba\'ce\'c0\'c7 \'bb\'e7\'bf\'eb \'b6\'c7\'b4\'c2 \'bb\'e7\'bf\'eb\'ba\'d2\'b4\'c9\'b0\'fa \'b0\'fc\'b7\'c3\'c7\'cf\'bf\'a9 \'b9\'df\'bb\'fd\'c7\'d1 \'bf\'ec\'b9\'df\'c0\'fb\'c0\'cc\'b0\'c5\'b3\'aa \'c6\'af\'bc\'f6\'c7\'d1 \'bc\'d5\'c7\'d8, \'b0\'a3\'c1\'a2\'c0\'fb\'c0\'cc\'b0\'c5\'b3\'aa \'b0\'e1\'b0\'fa\'c0\'fb \'bc\'d5\'c7\'d8\'bf\'a1 \'b4\'eb\'c7\'d8, \'b0\'e8\'be\'e0\'bb\'f3\'c0\'c7 \'c0\'cc\'b7\'d0\'c0\'cc\'b3\'aa \'ba\'b8\'c1\'f5, \'ba\'d2\'b9\'fd \'c7\'e0\'c0\'a7(\'b0\'fa\'bd\'c7 \'c6\'f7\'c7\'d4), \'bb\'f3\'c7\'b0 \'c3\'a5\'c0\'d3 \'b5\'ee\'bf\'a1 \'b0\'fc\'b0\'e8 \'be\'f8\'c0\'cc \'be\'ee\'b6\'b0\'c7\'d1 \'c3\'a5\'c0\'d3\'b5\'b5 \'c1\'f6\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9. \'c0\'cc\'b4\'c2 \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'c7\'d8\'b4\'e7 \'b1\'e2\'bf\'a9\'c0\'da\'b0\'a1 \'bc\'d5\'c7\'d8 \'b0\'a1\'b4\'c9\'bc\'ba\'c0\'bb \'bb\'e7\'c0\'fc\'bf\'a1 \'be\'cb\'b0\'ed \'c0\'d6\'be\'fa\'b0\'c5\'b3\'aa, \'be\'ee\'b6\'b2 \'b1\'b8\'c1\'a6(REMEDY)\'c0\'c7 \'c7\'d9\'bd\'c9\'c0\'fb \'b8\'f1\'c0\'fb\'c0\'cc \'bd\'c7\'c6\'d0\'c7\'d1 \'b0\'e6\'bf\'ec\'b6\'f3\'b5\'b5 \'b0\'fc\'b0\'e8\'be\'f8\'c0\'cc \'c7\'d8\'b4\'e7\'b5\'c8\'b4\'d9. \'bf\'ec\'b9\'df\'c0\'fb\'c0\'cc\'b0\'c5\'b3\'aa \'b0\'e1\'b0\'fa\'c0\'fb \'bc\'d5\'c7\'d8\'bf\'a1 \'b4\'eb\'c7\'d1 \'c3\'a5\'c0\'d3\'c0\'c7 \'b8\'e9\'c1\'a6\'b8\'a6 \'c7\'e3\'bf\'eb\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2 \'c0\'e7\'c6\'c7\'b0\'fc\'c7\'d2\'c1\'f6\'b5\'b5 \'c0\'d6\'b1\'e2 \'b6\'a7\'b9\'ae\'bf\'a1, \'ba\'bb \'b8\'e9\'c3\'a5\'c1\'b6\'c7\'d7\'c0\'ba \'b4\'e7\'bd\'c5\'bf\'a1\'b0\'d4 \'c0\'fb\'bf\'eb\'c0\'cc \'b5\'c7\'c1\'f6 \'be\'ca\'c0\'bb \'bc\'f6\'b5\'b5 \'c0\'d6\'b4\'d9. \'be\'ee\'b6\'b2 \'b0\'e6\'bf\'ec\'bf\'a1\'b5\'b5 \'be\'d6\'c7\'c3\'c0\'cc \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'c7\'d8 (\'c0\'fb\'bf\'eb \'b0\'a1\'b4\'c9\'c7\'d1 \'b9\'fd\'b7\'fc\'bf\'a1 \'c0\'c7\'c7\'d8 \'bf\'e4\'c3\'bb\'b5\'c7\'b4\'c2 \'b0\'cd \'c0\'cc\'bf\'dc\'c0\'c7) \'b8\'f0\'b5\'e7 \'bc\'d5\'c7\'d8\'bf\'a1 \'b4\'eb\'c7\'d8 \'b4\'e7\'bd\'c5\'bf\'a1\'b0\'d4 \'c1\'f6\'b4\'c2 \'c3\'a5\'c0\'d3\'c0\'c7 \'c3\'d1\'be\'d7\'c0\'cc 50\'b4\'de\'b7\'af\'b8\'a6 \'c3\'ca\'b0\'fa\'c7\'cf\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2\'b4\'d9.\cf2 \ +\pard\pardeftab720 +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a610\'c1\'b6. \'bb\'f3\'c7\'a5. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 "Apple", "Apple Computer", "Mac", "Mac OS", "QuickTime", "QuickTime Streaming Server" \'b6\'c7\'b4\'c2 \'b1\'d7 \'bf\'dc \'be\'d6\'c7\'c3\'c0\'cc \'bc\'d2\'c0\'af\'c7\'d1 \'bb\'f3\'c7\'a5\'b3\'aa \'bc\'ad\'ba\'f1\'bd\'ba\'b8\'b6\'c5\'a9, \'b7\'ce\'b0\'ed \'b9\'d7 \'bb\'f3\'c8\'a3(\'c1\'fd\'c7\'d5\'c0\'fb\'c0\'b8\'b7\'ce \'a1\'b0\'be\'d6\'c7\'c3 \'bb\'f3\'c7\'a5\'a1\'b1\'b7\'ce \'c5\'eb\'c4\'aa), \'b6\'c7\'b4\'c2 \'be\'ee\'b6\'b2 \'b1\'e2\'bf\'a9\'c0\'da\'b0\'a1 \'bc\'d2\'c0\'af\'c7\'d1 \'bb\'f3\'c7\'a5\'b3\'aa \'bc\'ad\'ba\'f1\'bd\'ba\'b8\'b6\'c5\'a9, \'b7\'ce\'b0\'ed \'b9\'d7 \'bb\'f3\'c8\'a3\'b8\'a6 \'bb\'e7\'bf\'eb\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2 \'b1\'c7\'b8\'ae\'b8\'a6 \'ba\'ce\'bf\'a9\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9. \'b4\'e7\'bd\'c5\'c0\'ba \'b4\'d9\'c0\'bd \'c1\'d6\'bc\'d2\'bf\'a1 \'b5\'ee\'b7\'cf\'b5\'c7\'be\'ee \'c0\'d6\'b4\'c2, \'be\'d6\'c7\'c3\'c0\'c7 \'c1\'a63\'c0\'da \'bb\'f3\'c7\'a5 \'bb\'e7\'bf\'eb \'c1\'f6\'c4\'a7\'bc\'ad\'bf\'a1 \'c0\'c7\'c7\'d8 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'c7\'e3\'bf\'eb\'b5\'c7\'b0\'ed, \'c1\'f6\'c4\'a7\'bc\'ad\'b8\'a6 \'be\'f0\'c1\'a6\'b3\'aa \'be\'f6\'b0\'dd\'c7\'cf\'b0\'d4 \'c1\'d8\'bc\'f6\'c7\'cf\'b4\'c2 \'b0\'e6\'bf\'ec\'b8\'a6 \'c1\'a6\'bf\'dc\'c7\'cf\'b0\'ed, \'be\'ee\'b6\'b0\'c7\'d1 \'be\'d6\'c7\'c3 \'bb\'f3\'c7\'a5\'b5\'b5 \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b7\'ce\'ba\'ce\'c5\'cd \'c6\'c4\'bb\'fd\'b5\'c8 \'c1\'a6\'c7\'b0\'c0\'c7 \'c0\'cc\'b8\'a7\'c0\'bb \'c1\'fe\'b4\'c2\'b5\'a5 \'bb\'e7\'bf\'eb\'c7\'cf\'b0\'c5\'b3\'aa \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'b7\'ce\'ba\'ce\'c5\'cd \'c6\'c4\'bb\'fd\'b5\'c8 \'c1\'a6\'c7\'b0\'c0\'bb \'c3\'df\'c3\'b5\'c7\'cf\'b0\'c5\'b3\'aa \'c8\'ab\'ba\'b8\'c7\'cf\'b4\'c2\'b5\'a5 \'bb\'e7\'bf\'eb\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9\'b4\'c2 \'b5\'a5 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9:\cf2 \ +\cf0 http://www.apple.com/legal/guidelinesfor3rdparties.html.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a611\'c1\'b6. \'bc\'d2\'c0\'af\'b1\'c7. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'c7\'d8 \'ba\'ce\'bf\'a9\'b5\'c8 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b5\'e9\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c7\'be\'ee, \'b0\'a2\'b0\'a2\'c0\'c7 \'b1\'e2\'bf\'a9\'c0\'da\'b4\'c2 \'c7\'d8\'b4\'e7 \'b1\'e2\'bf\'a9\'c0\'da\'b0\'a1 \'b8\'b8\'b5\'e7 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'bf\'a1 \'b4\'eb\'c7\'d1 \'b8\'f0\'b5\'e7 \'b1\'c7\'b8\'ae\'bf\'cd \'c0\'da\'b0\'dd, \'c0\'cc\'c0\'cd\'c0\'bb \'ba\'b8\'c0\'af\'c7\'d1\'b4\'d9. \'be\'d6\'c7\'c3\'c0\'ba \'bf\'f8\'ba\'bb \'c4\'da\'b5\'e5\'bf\'cd \'be\'d6\'c7\'c3\'bf\'a1 \'c0\'c7\'c7\'d8, \'b6\'c7\'b4\'c2 \'be\'d6\'c7\'c3\'c0\'bb \'c0\'a7\'c7\'d8 \'c0\'db\'bc\'ba\'b5\'c8 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5(\'a1\'b0\'be\'d6\'c7\'c3 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'a1\'b1)\'bf\'a1 \'b4\'eb\'c7\'d1 \'b8\'f0\'b5\'e7 \'b1\'c7\'b8\'ae\'bf\'cd \'c0\'da\'b0\'dd, \'c0\'cc\'c0\'cd\'c0\'bb \'ba\'b8\'c0\'af\'c7\'d1\'b4\'d9. \'c0\'cc\'b7\'af\'c7\'d1 \'be\'d6\'c7\'c3 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b5\'e9\'c0\'ba \'c0\'da\'b5\'bf\'c0\'fb\'c0\'b8\'b7\'ce \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c7\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2\'b4\'d9. \'be\'d6\'c7\'c3\'c0\'ba \'c0\'da\'c0\'af\'c0\'e7\'b7\'ae\'c0\'b8\'b7\'ce \'b1\'d7\'b7\'af\'c7\'d1 \'be\'d6\'c7\'c3 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b8\'a6 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'b0\'c5\'c7\'cf\'bf\'a9 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'bc\'b3\'c1\'a4\'c7\'cf\'b0\'c5\'b3\'aa, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'cd \'b4\'d9\'b8\'a5 \'c1\'b6\'b0\'c7\'b5\'e9\'bf\'a1 \'b5\'fb\'b6\'f3 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'bc\'b3\'c1\'a4\'c7\'cf\'b0\'c5\'b3\'aa, \'b6\'c7\'b4\'c2 \'c0\'fc\'c7\'f4 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'bc\'b3\'c1\'a4\'c7\'cf\'c1\'f6 \'be\'ca\'c0\'bb \'bc\'f6\'b5\'b5 \'c0\'d6\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a612\'c1\'b6. \'c1\'be\'b7\'e1. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 12\'c1\'b61\'c7\'d7. \'c1\'be\'b7\'e1. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'cd \'c0\'cc\'bf\'a1 \'c0\'c7\'c7\'d8 \'ba\'ce\'bf\'a9\'b5\'c7\'b4\'c2 \'b1\'c7\'b8\'ae\'b4\'c2 \'b4\'d9\'c0\'bd\'b0\'fa \'b0\'b0\'c0\'cc \'c1\'be\'b7\'e1\'b5\'c8\'b4\'d9:\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (a) \'b4\'e7\'bd\'c5\'c0\'cc \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'be\'ee\'b6\'b2 \'c1\'b6\'b0\'c7\'c0\'bb \'c0\'a7\'b9\'dd\'c7\'cf\'b0\'ed, \'b1\'d7 \'c0\'a7\'b9\'dd \'bb\'e7\'bd\'c7\'c0\'bb \'c0\'ce\'bd\'c4\'c7\'d1\'c1\'f6 30\'c0\'cf \'c0\'cc\'b3\'bb\'bf\'a1 \'c0\'a7\'b9\'dd \'b3\'bb\'bf\'eb\'c0\'bb \'b1\'b3\'c1\'a4\'c7\'cf\'c1\'f6 \'be\'ca\'c0\'ba \'b0\'e6\'bf\'ec\'bf\'a1, \'be\'d6\'c7\'c3\'b7\'ce\'ba\'ce\'c5\'cd \'ba\'b0\'b5\'b5\'c0\'c7 \'c5\'eb\'c1\'f6 \'be\'f8\'c0\'cc \'c0\'da\'b5\'bf\'c0\'b8\'b7\'ce \'c1\'be\'b7\'e1\'b5\'c8\'b4\'d9;\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (b) 13\'c1\'b65\'c7\'d7\'c0\'c7 (b)\'bf\'a1 \'bc\'b3\'b8\'ed\'b5\'c8 \'c1\'b6\'b0\'c7\'c0\'cc \'b9\'df\'bb\'fd\'c7\'d1 \'b0\'e6\'bf\'ec\'bf\'a1 \'c1\'ef\'bd\'c3 \'c1\'be\'b7\'e1\'b5\'c8\'b4\'d9; \'b6\'c7\'b4\'c2\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 (c) \'b4\'e7\'bd\'c5\'c0\'cc \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'e2\'b0\'a3 \'c1\'df \'be\'ee\'b4\'c0 \'b6\'a7\'b6\'f3\'b5\'b5 \'be\'d6\'c7\'c3\'c0\'bb \'bb\'f3\'b4\'eb\'b7\'ce \'c6\'af\'c7\'e3 \'c4\'a7\'c7\'d8 \'bc\'d2\'bc\'db\'c0\'bb \'c1\'a6\'b1\'e2\'c7\'df\'c0\'bb \'b0\'e6\'bf\'ec \'c0\'da\'b5\'bf\'c0\'b8\'b7\'ce \'c1\'be\'b7\'e1\'b5\'c8\'b4\'d9. \'b4\'dc, \'b1\'d7 \'bd\'c3\'c1\'a1\'bf\'a1 \'be\'d6\'c7\'c3\'c0\'cc \'b8\'d5\'c0\'fa \'b4\'e7\'bd\'c5\'c0\'bb \'bb\'f3\'b4\'eb\'b7\'ce \'c6\'af\'c7\'e3 \'c4\'a7\'c7\'d8 \'bc\'d2\'bc\'db\'c0\'bb \'c1\'a6\'b1\'e2\'c7\'d1 \'b0\'e6\'bf\'ec\'b4\'c2 \'c1\'a6\'bf\'dc\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 12\'c1\'b62\'c7\'d7. \'c1\'be\'b7\'e1\'c0\'c7 \'c8\'bf\'b7\'c2. \'c1\'be\'b7\'e1\'b0\'a1 \'b5\'c7\'b8\'e9, \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b8\'a6 \'bb\'e7\'bf\'eb, \'ba\'b9\'c1\'a6, \'bc\'f6\'c1\'a4, \'bc\'ad\'ba\'ea\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'bc\'b3\'c1\'a4 \'b9\'d7 \'b9\'e8\'c6\'f7\'c7\'cf\'b4\'c2 \'c7\'e0\'c0\'a7\'b8\'a6 \'c1\'ef\'b0\'a2\'c0\'fb\'c0\'b8\'b7\'ce \'c1\'df\'c1\'f6\'c7\'cf\'b4\'c2\'b5\'a5 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9. \'c1\'be\'b7\'e1 \'bd\'c3\'c1\'a1 \'c0\'cc\'c0\'fc\'bf\'a1 \'c7\'d5\'b4\'e7\'c7\'cf\'b0\'d4 \'ba\'ce\'bf\'a9\'b5\'c8, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'bf\'a1 \'b4\'eb\'c7\'d1 \'b8\'f0\'b5\'e7 \'bc\'ad\'ba\'ea\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b0\'a1 \'c1\'be\'b7\'e1\'b5\'c7\'b4\'f5\'b6\'f3\'b5\'b5 \'c8\'bf\'b7\'c2\'c0\'cc \'c1\'f6\'bc\'d3\'b5\'c8\'b4\'d9. \'c1\'b6\'c7\'d7\'c0\'c7 \'bc\'d3\'bc\'ba \'bb\'f3 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b0\'a1 \'c1\'be\'b7\'e1\'b5\'c8 \'c0\'cc\'c8\'c4\'bf\'a1\'b5\'b5 \'c0\'af\'c8\'bf\'c7\'d8\'be\'df \'c7\'cf\'b4\'c2 \'c1\'b6\'c7\'d7\'b5\'e9\'c0\'ba \'c8\'bf\'b7\'c2\'c0\'cc \'c1\'f6\'bc\'d3\'b5\'c8\'b4\'d9. \'c0\'cc\'b7\'af\'c7\'d1 \'c1\'b6\'c7\'d7\'c0\'ba 3\'c1\'b6, 5\'c1\'b6, 8\'c1\'b6, 9\'c1\'b6, 10\'c1\'b6, 11\'c1\'b6, 12\'c1\'b62\'c7\'d7\'b0\'fa 13\'c1\'b6\'b8\'a6 \'c6\'f7\'c7\'d4\'c7\'cf\'b3\'aa \'c0\'cc\'bf\'a1 \'b1\'b9\'c7\'d1\'b5\'c7\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2\'b4\'d9. \'be\'ee\'b6\'b2 \'b4\'e7\'bb\'e7\'c0\'da\'b5\'b5 \'b4\'d9\'b8\'a5 \'b4\'e7\'bb\'e7\'c0\'da\'bf\'a1 \'b4\'eb\'c7\'d8 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'d4\'c1\'a4\'bf\'a1 \'b5\'fb\'b6\'f3 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'c1\'be\'b7\'e1\'c7\'d4\'c0\'b8\'b7\'ce\'bd\'e1 \'b9\'df\'bb\'fd\'c7\'cf\'b4\'c2 \'ba\'b8\'bb\'f3\'c0\'cc\'b3\'aa \'b8\'e9\'c3\'a5, \'bc\'d5\'c7\'d8\'bf\'a1 \'b4\'eb\'c7\'d8 \'c3\'a5\'c0\'d3\'c0\'bb \'c1\'f6\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9. \'b6\'c7\'c7\'d1 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'c1\'be\'b7\'e1\'b4\'c2 \'b4\'e7\'bb\'e7\'c0\'da\'c0\'c7 \'b1\'e2\'c5\'b8 \'b1\'c7\'b8\'ae\'b3\'aa \'b1\'b8\'c1\'a6\'c1\'b6\'c4\'a1\'bf\'a1 \'bf\'b5\'c7\'e2\'c0\'bb \'b9\'cc\'c4\'a1\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 \'c1\'a613\'c1\'b6. \'b1\'e2\'c5\'b8 \'bb\'e7\'c7\'d7. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \cf2 \ +\cf0 13\'c1\'b61\'c7\'d7. \'c3\'d6\'c1\'be\'bb\'e7\'bf\'eb\'c0\'da\'b0\'a1 \'c1\'a4\'ba\'ce\'c0\'ce \'b0\'e6\'bf\'ec. \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'b4\'c2 FAR 2.101\'bf\'a1 \'c1\'a4\'c0\'c7\'b5\'c8 \'c0\'c7\'b9\'cc\'c0\'c7 \'a1\'b0\'bb\'f3\'be\'f7\'c0\'fb \'c1\'a6\'c7\'b0\'a1\'b1\'c0\'cc\'b4\'d9. \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'bf\'a1 \'b4\'eb\'c7\'d1 \'c1\'a4\'ba\'ce\'c0\'c7 \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee \'b9\'d7 \'b1\'e2\'bc\'fa\'c0\'fb \'b5\'a5\'c0\'cc\'c5\'cd \'b1\'c7\'b8\'ae\'b4\'c2 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c1\'a4\'c0\'c7\'b5\'c8 \'b4\'eb\'b7\'ce \'b0\'f8\'c1\'df\'bf\'a1\'b0\'d4 \'c1\'a6\'b0\'f8\'b5\'c7\'b4\'c2 \'c5\'eb\'bb\'f3\'c0\'fb\'c0\'ce \'b1\'c7\'b8\'ae\'b5\'e9\'b8\'b8\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'d1\'b4\'d9. \'b1\'e2\'bc\'fa\'c0\'fb \'b5\'a5\'c0\'cc\'c5\'cd\'bf\'cd \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee\'bf\'a1 \'b4\'eb\'c7\'d1 \'c5\'eb\'bb\'f3\'c0\'fb\'c0\'ce \'bb\'f3\'be\'f7\'c0\'fb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 FAR 12.211(\'b1\'e2\'bc\'fa\'c0\'fb \'b5\'a5\'c0\'cc\'c5\'cd)\'bf\'cd 12.212(\'c4\'c4\'c7\'bb\'c5\'cd \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee)\'bf\'a1 \'b5\'fb\'b6\'f3\'bc\'ad \'c1\'a6\'b0\'f8\'b5\'c8\'b4\'d9. \'b1\'b9\'b9\'e6\'ba\'ce \'b1\'b8\'c0\'d4\'c0\'bb \'c0\'a7\'c7\'d8\'bc\'ad\'b4\'c2 DFAR 252.227-7015 (\'b1\'e2\'bc\'fa\'c0\'fb \'b5\'a5\'c0\'cc\'c5\'cd -- \'bb\'f3\'be\'f7\'c0\'fb \'c1\'a6\'c7\'b0)\'bf\'cd 227.7202-3 (\'bb\'f3\'be\'f7\'c0\'fb \'c4\'c4\'c7\'bb\'c5\'cd \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee \'b6\'c7\'b4\'c2 \'c4\'c4\'c7\'bb\'c5\'cd \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee \'b9\'ae\'bc\'ad\'bf\'a1 \'b4\'eb\'c7\'d1 \'b1\'c7\'b8\'ae)\'bf\'a1 \'b5\'fb\'b6\'f3\'bc\'ad \'c1\'a6\'b0\'f8\'b5\'c8\'b4\'d9. \'b5\'fb\'b6\'f3\'bc\'ad \'b9\'cc\'c1\'a4\'ba\'ce\'c0\'c7 \'b8\'f0\'b5\'e7 \'c3\'d6\'c1\'be \'bb\'e7\'bf\'eb\'c0\'da\'b4\'c2 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb\'c4\'da\'b5\'e5\'b8\'a6 \'bf\'a9\'b1\'e2\'bf\'a1 \'c1\'a6\'bd\'c3\'b5\'c8 \'b1\'c7\'b8\'ae\'b8\'b8\'c0\'b8\'b7\'ce \'c8\'b9\'b5\'e6\'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 13\'c1\'b62\'c7\'d7. \'b4\'e7\'bb\'e7\'c0\'da\'b5\'e9\'c0\'c7 \'b0\'fc\'b0\'e8. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'b4\'e7\'bd\'c5\'b0\'fa \'be\'d6\'c7\'c3 \'b9\'d7 \'b4\'d9\'b8\'a5 \'b1\'e2\'bf\'a9\'c0\'da \'bb\'e7\'c0\'cc\'bf\'a1 \'be\'ee\'b6\'b2 \'b4\'eb\'b8\'ae\'c1\'a1\'c0\'cc\'b3\'aa \'c1\'a6\'c8\'de\'b0\'fc\'b0\'e8, \'c7\'d5\'c0\'db \'c8\'b8\'bb\'e7 \'b5\'ee\'c0\'c7 \'be\'ee\'b6\'b2 \'b9\'fd\'c0\'fb \'b4\'dc\'c3\'bc\'b8\'a6 \'bb\'fd\'bc\'ba\'c7\'cf\'b4\'c2 \'b0\'cd\'c0\'b8\'b7\'ce \'c7\'d8\'bc\'ae\'b5\'c7\'be\'ee\'bc\'ad\'b4\'c2 \'be\'c8 \'b5\'c7\'b8\'e7, \'b4\'e7\'bd\'c5\'c0\'ba \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce\'b3\'aa \'b9\'ac\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'b9\'dd\'b4\'eb\'c0\'c7 \'c0\'c7\'b0\'df\'c0\'bb \'bc\'b1\'be\'f0\'c7\'d8\'bc\'ad\'b4\'c2 \'be\'c8 \'b5\'c8\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 13\'c1\'b63\'c7\'d7. \'b5\'b6\'b8\'b3\'c0\'fb \'b0\'b3\'b9\'df. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'be\'ee\'b6\'b2 \'b3\'bb\'bf\'eb\'b5\'b5 \'b4\'e7\'bd\'c5\'c0\'cc \'b0\'b3\'b9\'df, \'bb\'fd\'bb\'ea, \'b0\'c5\'b7\'a1, \'c8\'a4\'c0\'ba \'b9\'e8\'c6\'f7\'c7\'cf\'b4\'c2 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5, \'ba\'b9\'c7\'d5\'c0\'fa\'c0\'db\'b9\'b0, \'b1\'e2\'bc\'fa, \'b6\'c7\'b4\'c2 \'c1\'a6\'c7\'b0\'b0\'fa \'b5\'bf\'c0\'cf\'c7\'cf\'b0\'c5\'b3\'aa \'c0\'af\'bb\'e7\'c7\'d1 \'b1\'e2\'b4\'c9\'c0\'bb \'b0\'a1\'c1\'f6\'b0\'c5\'b3\'aa \'b1\'d7\'bf\'cd \'b0\'e6\'c0\'ef\'c7\'cf\'b4\'c2 \'b1\'e2\'bc\'fa\'c0\'cc\'b3\'aa \'c1\'a6\'c7\'b0\'c0\'bb \'c8\'b9\'b5\'e6, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'bc\'b3\'c1\'a4, \'b0\'b3\'b9\'df, \'b4\'eb\'b8\'ae\'c0\'ce\'c0\'bb \'c5\'eb\'c7\'d8 \'b0\'b3\'b9\'df, \'b0\'c5\'b7\'a1 \'b9\'d7 \'b9\'e8\'c6\'f7\'c7\'d2 \'bc\'f6 \'c0\'d6\'b4\'c2 \'be\'d6\'c7\'c3\'c0\'c7 \'b1\'c7\'b8\'ae\'b8\'a6 \'bc\'d5\'bb\'f3\'bd\'c3\'c5\'b0\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9.\cf2 \ +\pard\pardeftab720\sa380 +\cf0 13\'c1\'b64\'c7\'d7. \'c6\'f7\'b1\'e2; \'c7\'d8\'bc\'ae. \'be\'d6\'c7\'c3\'c0\'cc\'b3\'aa \'be\'ee\'b6\'b2 \'b1\'e2\'bf\'a9\'c0\'da\'b0\'a1 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'d4\'c1\'a4\'c0\'bb \'c1\'fd\'c7\'e0\'c7\'cf\'c1\'f6 \'b8\'f8\'c7\'d1 \'b0\'cd\'c0\'cc \'b1\'d7 \'c1\'b6\'c7\'d7\'c0\'cc\'b3\'aa \'b1\'e2\'c5\'b8 \'b4\'d9\'b8\'a5 \'c1\'b6\'c7\'d7\'c0\'c7 \'c3\'df\'c8\'c4 \'c1\'fd\'c7\'e0\'bf\'a1 \'b4\'eb\'c7\'d1 \'c6\'f7\'b1\'e2\'b7\'ce \'b0\'a3\'c1\'d6\'b5\'c7\'c1\'f6\'b4\'c2 \'be\'ca\'b4\'c2\'b4\'d9. \'b0\'e8\'be\'e0\'bc\'ad\'c0\'c7 \'be\'f0\'be\'ee\'b0\'a1 \'c0\'db\'bc\'ba\'c0\'da\'bf\'a1\'b0\'d4 \'ba\'d2\'b8\'ae\'c7\'cf\'b0\'d4 \'c7\'d8\'bc\'ae\'b5\'c7\'be\'ee\'be\'df \'c7\'d1\'b4\'d9\'b0\'ed \'b1\'d4\'c1\'a4\'c7\'cf\'b4\'c2 \'b8\'f0\'b5\'e7 \'b9\'fd\'c0\'cc\'b3\'aa \'b1\'d4\'c1\'a6\'b4\'c2 \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'fb\'bf\'eb\'b5\'c7\'c1\'f6 \'be\'ca\'b4\'c2\'b4\'d9.\cf2 \ +\pard\pardeftab720 +\cf0 13\'c1\'b65\'c7\'d7. \'ba\'d0\'b8\'ae\'b0\'a1\'b4\'c9\'bc\'ba (a) \'b0\'fc\'c7\'d2\'b1\'c7\'c0\'bb \'b0\'a1\'c1\'f8 \'b9\'fd\'c1\'a4\'c0\'cc \'be\'ee\'b6\'b2 \'c0\'cc\'c0\'af\'b7\'ce \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'be\'ee\'b6\'b2 \'c1\'b6\'c7\'d7\'c0\'cc\'b3\'aa \'b1\'d7 \'c0\'cf\'ba\'ce\'b8\'a6 \'c1\'fd\'c7\'e0\'c0\'cc \'ba\'d2\'b0\'a1\'b4\'c9\'c7\'cf\'b4\'d9\'b0\'ed \'bf\'a9\'b1\'e2\'b4\'c2 \'b0\'e6\'bf\'ec, \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b1\'d7 \'c1\'b6\'c7\'d7\'c0\'ba \'b4\'e7\'bb\'e7\'c0\'da\'b5\'e9\'c0\'c7 \'b0\'e6\'c1\'a6\'c0\'fb \'c0\'cc\'c0\'cd\'b0\'fa \'b8\'f1\'c0\'fb\'c0\'bb \'b4\'de\'bc\'ba\'c7\'d2 \'bc\'f6 \'c0\'d6\'b5\'b5\'b7\'cf \'b0\'a1\'b4\'c9\'c7\'d1 \'c3\'d6\'b4\'eb \'c7\'d1\'b5\'b5\'b1\'ee\'c1\'f6 \'c1\'fd\'c7\'e0\'b5\'c9 \'b0\'cd\'c0\'cc\'b8\'e7, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'b3\'aa\'b8\'d3\'c1\'f6 \'ba\'ce\'ba\'d0\'c0\'ba \'c1\'fd\'c7\'e0\'b0\'fa \'c8\'bf\'b7\'c2\'c0\'cc \'b1\'d7\'b4\'eb\'b7\'ce \'c1\'f6\'bc\'d3\'b5\'c9 \'b0\'cd\'c0\'cc\'b4\'d9. (b) \'be\'d5\'ba\'ce\'ba\'d0\'bf\'a1\'bc\'ad \'b4\'d9\'b7\'e9 \'b3\'bb\'bf\'eb\'b0\'fa\'b4\'c2 \'b0\'fc\'b0\'e8 \'be\'f8\'c0\'cc, \'c0\'fb\'bf\'eb \'b0\'a1\'b4\'c9\'c7\'d1 \'b9\'fd\'b7\'fc\'c0\'cc \'b4\'e7\'bd\'c5\'c0\'cc \'c1\'a62\'c1\'b6 \'b9\'d7 \'c1\'a63\'c1\'b6\'b8\'a6 \'c1\'d8\'bc\'f6\'c7\'cf\'b4\'c2 \'b0\'cd\'c0\'bb \'b1\'dd\'c1\'f6 \'b6\'c7\'b4\'c2 \'c1\'a6\'c7\'d1\'c7\'cf\'b0\'c5\'b3\'aa \'b5\'ce \'c1\'b6\'c7\'d7 \'c1\'df \'be\'ee\'b4\'c0 \'c7\'cf\'b3\'aa\'c0\'c7 \'c1\'fd\'c7\'e0 \'b0\'a1\'b4\'c9\'bc\'ba\'c0\'bb \'b9\'e6\'c7\'d8\'c7\'d2 \'b0\'e6\'bf\'ec, \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'c1\'ef\'b0\'a2\'c0\'fb\'c0\'b8\'b7\'ce \'c1\'be\'b7\'e1\'b5\'c7\'b8\'e7 \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'c0\'fb\'bf\'eb \'c4\'da\'b5\'e5\'c0\'c7 \'bb\'e7\'bf\'eb\'c0\'bb \'c1\'ef\'bd\'c3 \'c1\'df\'c1\'f6\'c7\'cf\'b0\'ed \'b4\'e7\'bd\'c5\'c0\'cc \'bc\'d2\'c0\'af\'c7\'cf\'b0\'c5\'b3\'aa \'b0\'fc\'b8\'ae\'c7\'cf\'b4\'c2 \'b8\'f0\'b5\'e7 \'ba\'b9\'c1\'a6\'ba\'bb\'c0\'bb \'c6\'c4\'b1\'e2\'c7\'d8\'be\'df \'c7\'d1\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 13\'c1\'b66\'c7\'d7. \'ba\'d0\'c0\'ef\'c0\'c7 \'c7\'d8\'b0\'e1. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'cd \'b0\'fc\'b7\'c3\'c7\'cf\'bf\'a9 \'b4\'e7\'bd\'c5\'b0\'fa \'be\'d6\'c7\'c3 \'bb\'e7\'c0\'cc\'bf\'a1\'bc\'ad \'b9\'df\'bb\'fd\'c7\'cf\'b4\'c2 \'bc\'d2\'bc\'db \'b9\'d7 \'b1\'e2\'c5\'b8 \'ba\'d0\'c0\'ef\'c0\'c7 \'c7\'d8\'b0\'e1\'c0\'ba \'c4\'b6\'b8\'ae\'c6\'f7\'b4\'cf\'be\'c6 \'ba\'cf\'ba\'ce\'c1\'f6\'b1\'b8\'bf\'a1\'bc\'ad \'c0\'cc\'b7\'e7\'be\'ee\'c1\'ae\'be\'df \'c7\'cf\'b8\'e7, \'b4\'e7\'bd\'c5\'b0\'fa \'be\'d6\'c7\'c3\'c0\'ba \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'cd \'b0\'fc\'b7\'c3\'c7\'cf\'bf\'a9 \'c7\'d8\'b4\'e7 \'c1\'f6\'b1\'b8\'c0\'c7 \'c1\'d6 \'b9\'fd\'bf\'f8 \'b9\'d7 \'bf\'ac\'b9\'e6 \'b9\'fd\'bf\'f8\'c0\'c7 \'c0\'e7\'c6\'c7\'b0\'fc\'c7\'d2\'bf\'a1 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9. \'b1\'b9\'c1\'a6\'b9\'b0\'c7\'b0\'b8\'c5\'b8\'c5\'bf\'a1 \'b4\'eb\'c7\'d1 UN \'c7\'f9\'be\'e0\'c0\'c7 \'c0\'fb\'bf\'eb\'c0\'ba \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'b9\'e8\'c1\'a6\'b5\'c8\'b4\'d9.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 13\'c1\'b67\'c7\'d7. \'c0\'fc\'c0\'fb\'c0\'ce \'c7\'d5\'c0\'c7; \'c1\'d8\'b0\'c5\'b9\'fd. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'b1\'d7 \'b3\'bb\'bf\'eb\'bf\'a1 \'b4\'eb\'c7\'d1 \'b4\'e7\'bb\'e7\'c0\'da\'b5\'e9\'b0\'a3\'c0\'c7 \'c0\'fc\'c0\'fb\'c0\'ce \'c7\'d5\'c0\'c7\'b8\'a6 \'b1\'b8\'bc\'ba\'c7\'d1\'b4\'d9. \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b4\'c2 \'b9\'fd\'b7\'fc \'c0\'fa\'c3\'cb\'bf\'a1 \'b4\'eb\'c7\'d1 \'c4\'b6\'b8\'ae\'c6\'f7\'b4\'cf\'be\'c6 \'b9\'fd\'b7\'fc\'c0\'c7 \'c1\'b6\'c7\'d7\'c0\'bb \'c1\'a6\'bf\'dc\'c7\'cf\'b0\'ed, \'b9\'cc\'c7\'d5\'c1\'df\'b1\'b9\'b0\'fa \'c4\'b6\'b8\'ae\'c6\'f7\'b4\'cf\'be\'c6 \'c1\'d6\'c0\'c7 \'b9\'fd\'b7\'fc\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c8\'b4\'d9.\uc0\u160 \cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 \'b4\'e7\'bd\'c5\'c0\'cc \'c4\'b3\'b3\'aa\'b4\'d9 \'c4\'f9\'ba\'a4 \'c1\'d6\'bf\'a1 \'b0\'c5\'c1\'d6\'c7\'cf\'b4\'c2 \'b0\'e6\'bf\'ec, \'b4\'d9\'c0\'bd\'b0\'fa \'b0\'b0\'c0\'ba \'bb\'e7\'c7\'d7\'c0\'cc \'c0\'fb\'bf\'eb\'b5\'c8\'b4\'d9: \'b4\'e7\'bb\'e7\'c0\'da\'b5\'e9\'c0\'ba \'ba\'bb \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'cd \'b8\'f0\'b5\'e7 \'b0\'fc\'b7\'c3 \'b9\'ae\'bc\'ad\'b0\'a1 \'bf\'b5\'be\'ee\'b7\'ce \'c0\'db\'bc\'ba\'b5\'c7\'b5\'b5\'b7\'cf \'bf\'e4\'b1\'b8\'c7\'df\'b4\'d9\'b4\'c2 \'b5\'a5 \'b5\'bf\'c0\'c7\'c7\'d1\'b4\'d9. Les parties ont exige que le present contrat et tous les documents connexes soient rediges en anglais.\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\pard\pardeftab720 + +\fs32 \cf0 EXHIBIT A. +\fs36 \cf2 \ +\pard\pardeftab720 + +\fs24 \cf0 \uc0\u160 \cf2 \ +\cf0 \'a1\'b0Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.\cf2 \ +\cf0 \'c0\'cc \'c6\'c4\'c0\'cf\'c0\'ba \'be\'d6\'c7\'c3 \'b0\'f8\'c1\'df \'bc\'d2\'bd\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba \'b9\'f6\'c0\'fc 2.0(\'a1\'ae\'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'a1\'af)\'bf\'a1 \'c0\'c7\'c7\'d8 \'b1\'b8\'bc\'d3\'b5\'c7\'b0\'ed, \'c1\'a4\'c0\'c7\'b5\'c8 \'b9\'d9\'bf\'a1 \'b5\'fb\'b6\'f3 \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5 \'b1\'d7\'b8\'ae\'b0\'ed/\'b6\'c7\'b4\'c2 \'bc\'f6\'c1\'a4\'c4\'da\'b5\'e5\'b8\'a6 \'c6\'f7\'c7\'d4\'c7\'d1\'b4\'d9. \'b4\'e7\'bd\'c5\'c0\'ba \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'c1\'d8\'bc\'f6\'c7\'cf\'c1\'f6 \'be\'ca\'c0\'b8\'b8\'e9 \'c0\'cc \'c6\'c4\'c0\'cf\'c0\'bb \'bb\'e7\'bf\'eb\'c7\'d2 \'bc\'f6 \'be\'f8\'b4\'d9. \'c0\'cc \'c6\'c4\'c0\'cf\'c0\'bb \'bb\'e7\'bf\'eb\'c7\'cf\'b1\'e2 \'c0\'fc\'bf\'a1 \'b4\'d9\'c0\'bd\'c0\'c7 \'bb\'e7\'c0\'cc\'c6\'ae\'bf\'a1\'bc\'ad \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'c0\'c7 \'bb\'e7\'ba\'bb\'c0\'bb \'b1\'b8\'c7\'d8\'bc\'ad \'c0\'d0\'b5\'b5\'b7\'cf \'c7\'cf\'b6\'f3:\cf2 \ +\cf0 http://www.opensource.apple.com/apsl/\cf2 \ +\cf0 \uc0\u160 \cf2 \ +\cf0 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'b0\'c5\'c7\'cf\'bf\'a9 \'b9\'e8\'c6\'f7\'b5\'c7\'b4\'c2 \'bf\'f8\'ba\'bb\'c4\'da\'b5\'e5\'bf\'cd \'b8\'f0\'b5\'e7 \'bc\'d2\'c7\'c1\'c6\'ae\'bf\'fe\'be\'ee\'b4\'c2 \'b8\'ed\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce\'b3\'aa \'b9\'ac\'bd\'c3\'c0\'fb\'c0\'b8\'b7\'ce \'be\'ee\'b6\'b2 \'c1\'be\'b7\'f9\'c0\'c7 \'ba\'b8\'c1\'f5\'b5\'b5 \'c1\'a6\'b0\'f8\'c7\'cf\'c1\'f6 \'be\'ca\'b4\'c2 \'a1\'b0\'c0\'d6\'b4\'c2 \'b1\'d7\'b4\'eb\'b7\'ce\'a1\'b1\'c0\'c7 \'bb\'f3\'c5\'c2\'b7\'ce \'c1\'a6\'b0\'f8\'b5\'c7\'b8\'e7, \'be\'d6\'c7\'c3\'c0\'ba \'bb\'f3\'c7\'b0\'bc\'ba, \'c6\'af\'c1\'a4 \'b8\'f1\'c0\'fb\'bf\'a1 \'b4\'eb\'c7\'d1 \'c0\'fb\'c7\'d5\'bc\'ba, \'c6\'f2\'bf\'c2\'c7\'e2\'c0\'af \'b6\'c7\'b4\'c2 \'ba\'f1\'c4\'a7\'c7\'d8\'bf\'a1 \'b4\'eb\'c7\'d1 \'ba\'b8\'c1\'f5\'c0\'bb \'c6\'f7\'c7\'d4\'c7\'d1 \'b8\'f0\'b5\'e7 \'ba\'b8\'c1\'f5\'c0\'bb \'ba\'ce\'c0\'ce\'c7\'d1\'b4\'d9. \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'bf\'a1 \'c0\'c7\'c7\'d1 \'b1\'c7\'b8\'ae\'bf\'cd \'c1\'a6\'c7\'d1\'b5\'e9\'c0\'bb \'b1\'d4\'c1\'a4\'c7\'cf\'b4\'c2 \'b1\'b8\'c3\'bc\'c0\'fb\'c0\'ce \'be\'f0\'be\'ee\'bf\'a1 \'b4\'eb\'c7\'d8\'bc\'ad\'b4\'c2 \'b6\'f3\'c0\'cc\'bc\'b1\'bd\'ba\'b8\'a6 \'c2\'fc\'b0\'ed\'c7\'cf\'b6\'f3.\'a1\'b1\ + +\f1\b\fs40 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720 +\cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f2\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } Index: branches/JrCs/package/Resources.old/pl.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/pl.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/pl.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon jest połączeniem różnych komponentów boot loadera.
Jest oparty na implementacji fake EFI Davida Elliotta dodanej do projektu boot-132 Apple'a.
Chameleon jest rozszerzony o następujące funkcje:

+


+

Nowe funkcje w Chameleonie 2.0

+


+

- Całkowicie konfigurowalne GUI by dodać trochę koloru do Bootloadera Darwin.

+

- Uruchamianie płyt Retail DVD przez bezpośrednie ładowanie obrazu ramdisk bez pomocy dodatkowych programów.

+

- Hibernacja. Ciesz się przywracaniem Twojego systemu Mac OS X z obrazu pamięci.

+

- Zastąpienie SMBIOS by zmodyfikować jego fabryczne wartości.

+

- Zastąpienie DSDT by móc używać zmodyfikowanego, poprawionego DSDT, który może rozwiązać parę problemów.

+

- Wstrzykiwanie ustawień urządzeń (Device Property Injection) przez łańcuch device-properties.

+

- Hybrydowe boot0 / boot1h dla dysków w układzie partycji MBR i GPT.

+

- Automatyczne wykrywanie FSB nawet dla najnowszych procesorów AMD.

+

- Obsługa Apple Software RAID.

+

- Automatyczne uruchamianie kart NVIDII oraz ATI/AMD.

+

- Wsparcie dla modułów.

+

- Wykrywanie pamięci dostosowane z memtest86: http://www.memtest.org

+

- Automatyczne generowanie stanów P-State & C-State w celu uzyskania natywnego zarządzania energią.

+

- Logownie komunikatów.

+


+

Kod jest publikowany z licencją Gnu Public License w wersji 2.

+

http://forge.voodooprojects.org/p/chameleon

+


+

By uzyskać bardziej dokładne informacje, odwiedź: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/pl.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/pl.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/pl.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,350 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "To oprogramowanie musi by zainstalowane na woluminie startowym."; +"ERROR_INSTALL" = "Ten wolumin nie speBnia wymagaD dla tego uaktualnienia."; + +"Newer_Package_Installed_message" = "Nowsza wersja Chameleona jest ju|zainstalowana."; +"Intel_Mac_message" = "To oprogramowanie nie mo|e by zainstalowane na tym komputerze."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Typ Instalacji"; +"InstallType_description" = "Wybierz, by przeprowadzi now instalacj, lub zaktualizowa istniejc."; + +"New_title" = "Nowa Instalacja"; +"New_description" = "Stwrz kopi istniejcego folderu /Extra, je[li istnieje on na wybranej parycji. Zostanie utworzony nowy je[li s wybrane jakiekolwiek opcje, inne ni| z kategorii Bootloader."; + +"Upgrade_title" = "Aktualizacja"; +"Upgrade_description" = "Scal folder /Extra, je[li istnieje on na wybranej parycji, z opcjami wybranymi w instalatorze, innymi ni|z kategorii Bootloader."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon wymaga trzech podstawowych plikw. (mwic prosto) +boot0 (Na MBR dysku) odpowiedzialne za Badowanie boot1. +boot1 (Na boot-sektorze partycji) za znalezienie boot2. +boot2 (W gwnym katalogu partycji) za Badowanie kernela itp."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "Ta opcja Instaluje trzy podstawowe pliki i zapisuje boot0 na pierwszych 440 bajtach MBR tak, aby nie zniszczy istniejcego kodu Windows. Nastpnie boot0 szuka boot1h na pierwszej aktywnej partycji. +* Ta metoda instalacji ustawia zaznaczonpartycjjako aktywn."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instaluj pliki Chameleona na domy[lnie ukrytej partycji EFI, u|ywajc boot0 lub boot0md zale|nie od Twojego systemu, bez niszczenia instalacji Windowsa, je[li tak posiadasz."; + +"noboot_title" = "Nic"; +"noboot_description" = "Nie instaluj Chameleona (Przydatne podczas instalacji tylko komponentw Extra)"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "ModuBy"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "Ten moduB dostarcza standardow bibliotek c dla innych moduBw, je[li biblioteka w chameleonie jest niewystarczajca. +Aktualnie jest u|ywane tylko przez bibliotek uClibc++. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "Ten moduB odczytuje informacje edid z monitora podpitego jako gBwny. +ModuB aktualnie nie jest doBczony do gBwnego wydania chameleona (trunk) i ma minimalne zastosowanie. +Dodatkowo, moduB zmodyfikuje tryby VESA na kartach Intela starszych ni| HD, by umo|liwi bootoowanie systemu z wy|sz rozdzielczo[ci."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Ten moduB dostarcza minimaln bibliotek uruchomieniow c++ dla innych moduBw. +Samo z siebie nie dodaje |adnej funkcjonalno[ci, jest u|ywana, by pozwoli na wykorzystanie jzyka c++ w innych moduBach. +Uwaga: rtti i exceptions zostaBy wyBczone. +yrdBo: http://cxx.uclibc.org/ +Zale|no[ci: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Ten moduB pozwala u|ytkownikowi zdefiniowa mapowania klawiatury."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Narzdzia"; +"Utility_description" = "Opcjonalne pliki przydatne w konfiguracji."; + +"PrefPanel_title" = "Panel Preferencji"; +"PrefPanel_description" = "Instaluje Panel Preferencji dla Chameleona."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Kopiuje domy[lne smbios.plist w /Extra/Configuration."; + +"Documentation_title" = "Dokumentacja"; +"Documentation_description" = "Dokumentacja dla u|ytkowania i instalacji rcznej Chameleona."; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Opcje Bootowania"; +"Options_description" = "Utwrz /Extra/com.apple.Boot.plist i wybierz swoje |dane opcje by kontrolowa ustawienia Chameleona."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Ukrywa boot banner Chameleona w GUI."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "WyBcza domy[lnie wBczony Graficzny Interfejs U|ytkownika."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "U|ywa oryginalnego logo Apple (szare na biaBym) w ekranie Badowania, zamiast boot.png."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Wy[wietla ekran wyboru partycji od razu, bez pokazywania odliczania."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "WBcza cichy tryb uruchamiania (brak komunikatw i potwierdzeD)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Wstrzymuje proces uruchamiania. Gdy Chameleon zakoDczy przygotowanie do uruchomienia kernela, bdzie czekaB na naci[nicie klawisza zanim go uruchomi. Przydatne z opcj Verbose do wyszukiwania bBdw."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Uruchamia kernela w trybie 32 bitowym zamiast domy[lnego 64 bitowego."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "WBcza opcj naprawy problemw wBasno[ci EHCI na niepoprawnych biosach."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "WBcza opcj dodania: 'wbudowany' ('built-in') do twoich urzdzeD Ethernetowych."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "WBcza HPET na chipsetach Intela, dla biosw, ktre nie zawieraj tej opcji."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Ta opcja pozwala obej[ zBe zrzuty pamici hibernacji (sleep images)."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "WyBcza domy[lnie wBczon poprawkrestartu."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "WBcza opcj resetu kontrolerw UHCI przed uruchomieniem OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "WyBcza domy[lnie wBczone rozpoznawanie pamici RAM."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Tylko dla OS X Lion. WBcza Badowanie pre-linkownego kernela. Bdzie ignorowa zawarto[ /E/E i /S/L/E. U|ywaj TYLKO, je[li wiesz gdzie i co masz."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Prbuje wczyta zrzut pamici (sleep image) zapisany podczas ostatniej hibernacji."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Nowa - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Nowa metoda generowania _CST C-State przy u|yciu rejestrw SystemIO zamiast FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Odrzuca wbudowane tablice SSDT pByty gBwnej."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "WBcza okre[lony stan wydajno[ci CPU, C2"; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "WBcza okre[lony stan wydajno[ci CPU, C3"; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "WBcza okre[lony stan wydajno[ci CPU, C4"; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "WBcza automatyczne generowanie stanw C-States procesora."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "WBcza automatyczne generowanie stanw P-States procesora."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Ustawia tryb graficzny na 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Ustawia tryb graficzny na 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Ustawia tryb graficzny na 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Ustawia tryb graficzny na 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Ustawia tryb graficzny na 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Ustawia tryb graficzny na 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Ustawia tryb graficzny na 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Ustawia tryb graficzny na 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Ustawia tryb graficzny na 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Ustawia tryb graficzny na 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Ustawia tryb graficzny na 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "WBcza opcj automatycznego wykrywania GPU NVIDII i umieszczania odpowiednich informacji."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "WBcza opcj UseAtiROM."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "WBcza opcj UseNvidiaROM."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "WBcza opcj VBIOS."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "WBcza komunikaty diagnostyczne z kernela OS X oraz bootlodera. Niezbdne przy szukaniu problemw."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Opcja wykorzystywana przy naprawianiu problemw, Uruchamia system w trybie poleceD BSD/Unix."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Nie przydaje si przy ka|dym uruchamianiu, ale mo|e by u|yteczne je[li chcesz, by system przeBadowaB wszystkie pliki, zamiast Badowania cache."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Czasem naprawia bBd PCI Configuration Begin"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Czasem naprawia bBd PCI Configuration Begin"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Tylko dla OSX Lion. WyBcza budzenie z niskim u|yciem energii 'low power wake', ktre czasem zostawia czarny ekran po u[pieniu."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "U|yj ukBadu klawiatury: German Mac"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "U|yj ukBadu klawiatury: Spanish Mac"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "U|yj ukBadu klawiatury: French Mac"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "U|yj ukBadu klawiatury: Italian Mac"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "U|yj ukBadu klawiatury: Swedish Mac"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "U|yj ukBadu klawiatury: French PC"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Mniejsza, prosta wersja nowego tematu, domy[lnie u|ywana podczas tworzenia wersji Chameleona, ktry wymaga osadzonych tematw. "; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Poprzedni domy[lny temat Chameleona."; + +"Default_title" = "Standard"; +"Default_description" = "Nowy domy[lny temat Chameleona."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Pikny, prosty temat autorstwa NoSmokingBandit z kwietnia 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Kontrola chameleona"; +"Control_description" = "Ustawienia dziaBania Chameleona."; + +// General +"General_title" = "Oglne opcje"; +"General_description" = "Wybierz oglne opcje."; + +// KernelFlags +"KernelFlags_title" = "Flagi kernela"; +"KernelFlags_description" = "Wybierz flagi kernela."; + +// PowerManagement +"PowerManagement_title" = "Zarzdzanie energi"; +"PowerManagement_description" = "Wybierz ustawienia zwizane z zarzdzaniem energi i SpeedSteepem."; + +// Resolution +"Resolution_title" = "Rozdzielczo["; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Grafika"; +"Video_description" = "Wybierz ustawienia zwizane z obsBug grafiki."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Tematy"; +"Themes_description" = "Kolekcja przykBadowych tematw graficznych. +Wicej tematw znajdziesz na http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "{adna"; +"ChooseNone-Resolution_description" = "Nie wybieraj rozdzielczo[ci."; + +"ChooseNone-keylayout_title" = "{aden"; +"ChooseNone-keylayout_description" = "Nie wybieraj ukBadu klawiatury."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/pl.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/pl.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pl.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Nie instaluj na komputerze Apple Macintosh\ + +\fs22 \cf0 \ +\ +Developerzy :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Podzi\uc0\u281 kowania dla :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Pakiet :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: janek202\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/pl.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/pl.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pl.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Zako\uc0\u324 czono wykonywanie skrypt\'f3w i plik logu \cf2 @LOG_FILENAME@\cf3 zosta\uc0\u322 zapisany \ +na g\uc0\u322 \'f3wnym katalogu wybranej partycji.\ +\ +\cf0 Prosz\uc0\u281 \cf4 przeczytaj go\cf0 by dowiedzie\uc0\u263 si\u281 ,\ +czy instalacja przebieg\uc0\u322 a pomy\u347 lnie i zachowaj go \ +jako zapis, co zosta\uc0\u322 o wykonane.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/pl.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/pl.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pl.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/it.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/it.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/it.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon è la combinazione di diverse parti del boot loader.
È basato sulle modifiche di David Elliott sull'implementazione "EFI" al progetto della Apple sul boot-132.
Chameleon presenta le seguenti caratteristiche principali:

+


+

Nuove caratteristiche di Chameleon versione 2:

+


+

- Interfaccia grafica completamente personalizzabile per dare maggiori colori al Darwin Bootloader.

+

- Avviare DVD retail semplicemente caricando una immagine ramdisk senza l'utilizzo di programmi aggiuntivi.

+

- Ibernazione. Godetevi nel risvegliare il vostro Mac OS X con un'immagine di anteprima.

+

- Sovrascrittura del SMBIOS per personalizzare i valori dell'SMBIOS.

+

- Sovrascrittura della tabella DSDT, potendo selezionare una ottimizzata che risolve svariate problematiche.

+

- Iniezione delle Proprità delle Periferiche con stringhe EFI in device-properties.

+

- boot0 / boot1h ibrido per dischi partizionati in MBR e GPT.

+

- Riconoscimento automatico della frequenza anche sui recenti processori AMD.

+

- Supporta il RAID software di Apple.

+

- Abilitazione grafica per schede Nvidia & ATI/AMD.

+

- Supporto Moduli.

+

- Rivelamento memoria adattato da memtest86: http://www.memtest.org

+

- Generazione automatica dei P-State e C-State.

+

- Log dei messaggi.

+


+

Il codice è rilasciato sotto licenza GPL v.2 (Gnu Public License).

+

http://forge.voodooprojects.org/p/chameleon

+


+

Per maggiori informazioni, visita (In Inglese): http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/it.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/it.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/it.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,349 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Questo software deve essere installato sul volume di avvio."; +"ERROR_INSTALL" = "Questo volume non risponde ai requisiti per questo aggiornamento."; + +"Newer_Package_Installed_message" = "Una versione pi recente di Chameleon gi installata"; +"Intel_Mac_message" = "Questo software non pu essere installato su questo computer ."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Tipo di installazione"; +"InstallType_description" = "Scegli se fare una nuova installazione o aggiornare una gi esistente."; + +"New_title" = "Nuova Installazione"; +"New_description" = "Salva una cartella /Extra, se trovata sulla partizione destinazione. Una nuova verr creata se scegliete una opzione dall'installer, oltre che al Bootloader."; + +"Upgrade_title" = "Aggiornamento"; +"Upgrade_description" = "Fonde una cartella /Extra esistente, se trovata sulla partizione destinazione, con qualsiasi opzione scelta nell'installer, oltre al Bootloader."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Elementi base per l'installazione di Chameleon +boot0 (Sul disco MBR) responsabile del caricamento del boot1. +boot1 (Settore di avvio della partizione) per trovare il boot2. +boot2 (Nella cartella principale della partizione) per caricare il kernel etc."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "Installare Chameleon"; + +"EFI_title" = "Partizione EFI"; +"EFI_description" = "Installa Chameleon nella partizione EFI (Normalmente nascosta), usando boot0 o boot0md dipende dal vostro sistema e senza compromettere pre-esistenti installazioni di Windows(Se voi ne possedete una)."; + +"noboot_title" = "Non installare il Bootloader"; +"noboot_description" = "Utile se vuoi solo installare i componenti aggiuntivi"; + + +// ============================================================================ +// Moduli +// ---------------------------------------------------------------------------- +"Module_title" = "Moduli per Chameleon"; +"Module_description" = "Il sistema di moduli integrati in chameleon permette ad un utente o programmatore di estendere le funzionalit di base di chameleon senza bisogno di sostituire il file principale di avvio. "; + +"klibc_title" = "klibc"; +"klibc_description" = "Questo modulo fornisce una libreria c standard ai moduli per collegarli alla libreria fornita da chameleon nel caso essa non sia sufficiente. +Questo attualmente usato solo dalla libreria uClibc++. +Fonte: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "Questo modulo legge le informazioni EDID dal monitor collegato al display principale. +Il modulo non attualmente integrato nel bootloader ed ha un utilizzo minimo dello stesso. +Inoltre, il modulo modificher la modalit vesa disponibile nelle schede grafice (pre) Intel HD per fornire una corretta risoluzione durante l'avvio."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Questo modulo fornisce una minima libreria C++ per l'uso in altri moduli. +Esso non fornisce la funzionalit di per s, ma viene utilizzato per consentire l'uso del linguaggio C++ in altri moduli. +Da notare che rtti e exceptions sono entrambe disattivate. +Fonte: http://cxx.uclibc.org/ +Dipendenze: klibc"; + +"Keylayout_title" = "Mappatura tastiera"; +"Keylayout_description" = "Questo modulo permette all'utente di definire la mappatura della propria tastiera."; + + +// ============================================================================ +// Utilit +// Non sono attualmente utilizzate!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilit"; +"Utility_description" = "Utilit per Chameleon"; + +"PrefPanel_title" = "Pannello Preferenze"; +"PrefPanel_description" = "Installa il Pannello preferenze di Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copia o sovrascrive il file smbios.plist in /Extra/Configuration con uno di esempio"; + +"Documentation_title" = "Documentazione"; +"Documentation_description" = "Documenti per l'installazione e l'uso di Chameleon"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Opzioni di avvio"; +"Options_description" = "Imposta opzioni predefinite di avvio"; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Nasconde il banner di chameleon la boot in modalit grafica"; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Disabilita l'interfaccia grafica, aggiunge GUI=n al com.apple.Boot.plist"; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Utilizza mela aple originale (nera) al caricamento"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Carica subito il menu di selezione dei dischi"; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Carica immediatamente il disco predefinito"; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Abilita le informazioni all'avvio di partizioni e risoluzioni."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Attende la pressione di un tasto prima di caricare il kernel"; + +// ---------------------------------------------------------------------------- + +"arch_title" = "Architettura (arch=i386)"; +"arch_description" = "Avvia il kernel in modalit 32bit (consigliato per sistemi con meno di 10GB di RAM)"; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Aggiunge EHCIacquire=y al org.chameleon.Boot.plist, Questa opzione sistema eventuali propriet legati all'EHCI in alcuni BIOS."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Aggiunge EthernetBuiltIn=y al org.chameleon.Boot.plist, Questa opzione aggiunger 'built-in' alle periferice di rete."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Aggiunge ForceHPET=y al org.chameleon.Boot.plist, Questa opzione abilita l'HPET sui chipset Intel, per BIOS che non includono questa opzione."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Aggiunge ForceWake=y al org.chameleon.Boot.plist, Questa opzione abilita la possibilit di evitare errate sleep images."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disabilita la correzione automatica per il riavvio"; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Aggiunge UHCIreset=y al org.chameleon.Boot.plist, Questa opzione resetter i controller UHCI prima dell'avvio di OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disattiva il riconoscimento della RAM automatico."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Caricher il pre-linked kernel e ignorer Extensions.mkext per /Extra/Extensions e /System/Library/Extensions Di default No. Da utilizzare (Yes) se utilizzi Lion su partizione Raid."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Carica dall'immagine dell'ibernazione"; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "CSTUsingSystemIO=Yes"; +"CSTUsingSystemIO_description" = "Nuovo generatore di C-State, usa il registro SystemIO invece del FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Non carica le tabelle SSDT dal BIOS."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Abilita i C2State"; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Abilita i C3State"; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Abilita i C4State"; + +"GenerateCStates_title" = "Genera C-States=Yes"; +"GenerateCStates_description" = "Attiva C-State automatici"; + +"GeneratePStates_title" = "Genera P-States=Yes"; +"GeneratePStates_description" = "Attiva P-State automatici"; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Setta il Graphics Mode a 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Setta il Graphics Mode a 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Setta il Graphics Mode a 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Setta il Graphics Mode a 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Setta il Graphics Mode a 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Setta il Graphics Mode a 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Setta il Graphics Mode a 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Setta il Graphics Mode a 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Setta il Graphics Mode a 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Setta il Graphics Mode a 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Setta il Graphics Mode a 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Aggiunge GraphicsEnabler=y al org.chameleon.Boot.plist, Questa opzione abilita il riconoscimento automatico delle schede grafiche iniettanto le informazioni corrette."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Attiva opzione UseAtiROM"; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Attiva opzione UseNvidiaROM"; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Attiva opzione VBIOS"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Modalit Verbose"; +"Verbose_description" = "Attiva il registro dettagliato e permette di vedere i menssaggi sia di Chameleon che del Kernel, durante l'avvio. Essenziale per la soluzione di problemi."; + +"Singleusermode_title" = "Modalit Single User"; +"Singleusermode_description" = " una opzione utilizzata per risolvere problemi utilizzata per avviare in command-line BSD/Unix di OS X."; + +"Ignorecaches_title" = "Ignora Caches (-f)"; +"Ignorecaches_description" = "Non una opzione necessaria per avviare, ma pu essere utile se si desidera che OS X carichi tutti i file della cartella di sistema, al posto di andare in conflitto con la cache precostruita."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Imposta la flag npci=0x2000 per la key Kernel Flags"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Imposta la flag npci=0x3000 per la key Kernel Flags"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Solo per Lion. Disabilita il 'low power wake' che a volte lascia lo schermo nero dopo il risveglio dallo Sleep/Stop."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "Mappatura tastiera Tedesca Mac"; +"mac-de_description" = "Usa la mappatura della tastiera Tedesca per Mac"; + +"mac-es_title" = "Mappatura tastiera Spagnola Mac"; +"mac-es_description" = "Usa la mappatura della tastiera Spagnola per Mac"; + +"mac-fr_title" = "Mappatura tastiera Francese Mac"; +"mac-fr_description" = "Usa la mappatura della tastiera Francese per Mac"; + +"mac-it_title" = "Mappatura tastiera Italiana Mac"; +"mac-it_description" = "Usa la mappatura della tastiera Italiana per Mac"; + +"mac-se_title" = "Mappatura tastiera Svedese Mac"; +"mac-se_description" = "Usa la mappatura della tastiera Svedese per Mac"; + +"mac-pt_title" = "Mappatura tastiera Portoghese Mac"; +"mac-pt_description" = "Usa la mappatura della tastiera Portoghese per Mac"; + +"pc-de_title" = "Mappatura tastiera Tedesca PC"; +"pc-de_description" = "Usa la mappatura della tastiera Tedesca per PC"; + +"pc-es_title" = "Mappatura tastiera Spagnola PC"; +"pc-es_description" = "Usa la mappatura della tastiera Spagnola per PC"; + +"pc-fr_title" = "Mappatura tastiera Francese PC"; +"pc-fr_description" = "Usa la mappatura della tastiera Francese per PC"; + +"pc-it_title" = "Mappatura tastiera Italiana PC"; +"pc-it_description" = "Usa la mappatura della tastiera Italiana per PC"; + +"pc-se_title" = "Mappatura tastiera Svedese PC"; +"pc-se_description" = "Usa la mappatura della tastiera Svedese per PC"; + +"pc-pt_title" = "Mappatura tastiera Portoghese PC"; +"pc-pt_description" = "Usa la mappatura della tastiera Portoghese per PC"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Tema integrato in chameleon (Standard ridotto)"; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Il vecchio tema Standard di chameleon"; + +"Default_title" = "Standard"; +"Default_description" = "Il tema standard usato dal bootloader, aggiunto qui per essere personalizzato."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Un tema The Bullet by NoSmokingBandit"; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Opzioni di Controllo"; +"Control_description" = "Settaggi per controllare come Chameleon lavora."; + +// General +"General_title" = "Opzioni Generali"; +"General_description" = "Seleziona una opzione base."; + +// KernelFlags +"KernelFlags_title" = "Flags del Kernel"; +"KernelFlags_description" = "Scegli le possibili flag del kernel."; + +// PowerManagement +"PowerManagement_title" = "Gestione Energetica"; +"PowerManagement_description" = "Selezione di opzioni pre la gestione energetica e speedstep."; + +// Resolution +"Resolution_title" = "Risoluzioni"; +"Resolution_description" = "Imposta la risoluzione del tuo monitor."; + +// Video +"Video_title" = "Video"; +"Video_description" = "Selezione di opzioni per il video."; + +// Keymaps +"Keymaps_title" = "Mappatura tastiera"; +"Keymaps_description" = "Seleziona la mappatura da utilizzare, Verr anche installato il modulo Keylayout e le mappature tastiera."; + +// Themes +"Themes_title" = "Temi"; +"Themes_description" = "Una raccolta di temi campione. +Molti altri sono reperibili su http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Nessuna"; +"ChooseNone-Resolution_description" = "Non utilizzare nessuna risoluzione."; + +"ChooseNone-keylayout_title" = "Nessuna"; +"ChooseNone-keylayout_description" = "Non scegliere nessuna mappatura tastiera."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/it.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/it.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/it.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Non installare su computer Apple Macintosh\ + +\fs22 \cf0 \ +\ +Sviluppatori :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Grazie a :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Pacchetto realizzato da :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Pacchetto compilato da: %WHOBUILD%, tradotto in Italiano da: ErmaC e scrax\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/it.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/it.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/it.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Le operazioni sono state completate ed un file\ + chiamato \cf2 @LOG_FILENAME@\cf3 \'e9 stato\ +scritto nella root della partizione scelta.\ +\ +\cf0 Per favore \cf4 leggilo\cf0 per vedere se l'installazione \'e9\ +avvenuta con successo e vedere le operazioni che sono state eseguite.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Questo pkg \'e8 stato compilato da: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/it.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/it.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/it.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/ro.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/ro.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/ro.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon este un bootloader cu elemente combinate, derivat din implementarea fake EFI a lui David Elliott si proiectul Apple's boot-132.

+


+

Chameleon v2 ofera un numar de facilitati, cum ar fi:

+


+

- Interfata grafica complet modificabila dupa preferintele userului.

+

- RamDisk pentru boot cu versiuni retail Mac OS X.

+

- Hibernare folosind imaginea de hibernare.

+

- SMBIOS modificabil pentru a extinde compatibilitatea cu diferite computere.

+

- DSDT modificabil, oferind avantajul de a corecta posibilele incompatibilitati hardware.

+

- Injectare de proprietati pentru diferite hardware-uri.

+

- boot0 / boot1h hibrid, pentru partiti MBR precum si GPT.

+

- FSB detectabil automat, chiar si pentru procesoare AMD noi.

+

- Suport nativ RAID in OS X.

+

- Activare mod video pentru nVidia si ATI/AMD.

+

- Suport pentru module

+

- Detectare automata a memoriei bazata pe memtest86: http://www.memtest.org

+

- Generare automata P-states si C-states pentru management al energiei.

+

- Logare mesaje.

+


+

Acest cod este acoperit de versiunea 2 a Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

FAQ's: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/ro.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/ro.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/ro.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,349 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Acest software trebuie instalat pe partitia de boot."; +"ERROR_INSTALL" = "Aceasta partitie nu corespunde cerintelor necesare instalarii."; + +"Newer_Package_Installed_message" = "O versiune mai noua Chameleon este deja prezenta!"; +"Intel_Mac_message" = "Acest software nu poate fi instalat pe acest computer."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Tipul Instalarii"; +"InstallType_description" = "Alegeti intre o instalare noua sau un upgrade al unei instalari prezente."; + +"New_title" = "Instalare Noua"; +"New_description" = "Se va face backup folderului /Extra de pe partitia aleasa, va fi creat un folder /Extra nou in cazul in care este aleasa orice alta optiune in afara de bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Setariile selectate vor fi combinate cu cele prezente deja din folderul /Extra, dar pentru siguranta, se va face un backup folderului /Extra prezent."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Bootloaderul Chameleon"; +"Chameleon_description" = "Chameleon necesita trei fisiere principale. (la modul cel mai simplu) +boot0 (Pe MBR-ul Discului) responsabil pentru incarcarea boot1. +boot1 (Pe sectorul de boot al partitiei) pentru a gasi boot2. +boot2 (In directorul principal al partitiei) pentru incarcarea kernelului, etc."; + +"Standard_title" = "Standard"; +"Standard_description" = "Instalarea Chameleon in directorul principal al partitiei selectate, folosind boot0 sau boot0md in functie de configuratia sistemului, fara a distruge o instalare de Windows daca aceasta e prezenta."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instalarea Chameleon in partitia EFI (de obicei ascunsa) folosind boot0 sau boot0md in functie de configuratia sistemului, fara a distruge o instalare de Windows daca aceasta e prezenta."; + +"noboot_title" = "Fara instalarea Bootloaderului"; +"noboot_description" = "Folositor in cazul in care se doreste instalarea extra-uriilor doar."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Module"; +"Module_description" = "Sistemul modular al bootloaderului Chameleon permite developeriilor sa extinda functionalitatea de baza fara a modifica fisierul principal de boot."; + + +"klibc_title" = "klibc"; +"klibc_description" = "Acest modul ofera o librarie C pentru modulele carora libraria implicita din Chameleon nu este suficienta. +Acest modul e folosit doar cu libraria uClibc++. +Sursa: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Rezolutie"; +"AutoReso_description" = "Acest modul citeste informatia EDID a monitorului conectat la placa video, si seteaza rezolutia corect in functie de acesta. Modulul momentan nu este inclus in Chameleon iar folosirea sa este foarte rara. +De asemenea la cazul placiilor pre-Intel HD, acest modul corecteaza moduriile VESA, setand o rezolutie corecta in timpul procesului de boot."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Acest modul ofera o librarie minimala C++ pentru alte module ce au nevoie de functionalitatea extinsa.Acest modul nu ofera nici o facilitate in forma individuala. +*rtti si exceptiile au fost dezactivate. +Sursa: http://cxx.uclibc.org/ +Dependente: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Acest modul ofera posibilitatea folosirii aranjamentelor de tastaturi diferite."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilitati"; +"Utility_description" = "Fisiere optionale, ajutatoare configurarii."; + +"PrefPanel_title" = "Panou de preferinte"; +"PrefPanel_description" = "Instaleaza panoul de preferinte pentru Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copiaza un exemplu al fisierului smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentatie"; +"Documentation_description" = "Documentatie pentru chameleon, instalare manuala si utilizare."; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Setari"; +"Options_description" = "Creaza un fisier /Extra/org.chameleon.Boot.plist prin selelectarea oricarei optiuni sau flag pentru kernel."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Ascunde informatiile din partea stranga sus, precum ar fi versiunea Chameleon, etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Dezactiveaza interfata grafica implicit activa."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Folosirea logoului apple normal, gri pe fundal gri deschis, in loc de cel inclus in tema 'boot.png'."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Initial, Chameleon afiseaza partitia setata pentru boot, si cursorul ce scade pana la procesul de boot daca nici o tasta nu este atinsa. +Aceasta setare obliga Chameleon sa afiseze toata lista de partitii direct."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Activeaza modul silentios de boot (nici un mesaj sau notificare)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Activeaza afisarea de informatii in partea stanga sub boot banner, cum ar fi rezolutia, discul de boot, partitia, etc. Aceasta setare este recomandata pentru depistarea problemelor."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Opreste procesul de boot al OS X dupa ce Chameleon a fost initializat, asteptand o tasta sa fie apasata pentru a incarca kernelul si sistemul. +Optiune de asemenea recomandata pentru depistarea problemelor, in combinatie cu modul verbose."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Porneste kernelul in modul 32 bit in loc de modul natural 64bit."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Activati optiunea pentru a repara orice problema de access EHCI in cazul biosuriilor cu defecte."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Activati aceasta optiune pentru a seta modul integrat al placiilor de retea."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Activeaza modul HPET pe chipseturi Intel care nu au optiunea HPET in bios."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Aceasta optiune permite sistemului sa ignore imaginiie de sleep defecte."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Dezactiveaza patchul pentru restart prezent implicit."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Activati optiunea pentru a reseta controlerele UHCI inainte de pornirea sistemului OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Dezactiveaza auto-detectarea memoriei RAM."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Pentru Lion doar, sistemul va incarca kernelul deja configurat cu extensii, ignorand /E/E si /S/L/E. Folositi aceasta optiune DOAR daca stiti ca in cache-ul kernelului sunt incluse toate extensiile de care are nevoie sistemul."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Incercare de a incarca imaginea salvata la ultima hibernare."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Noul mod de generare C-State _CST folosind registrele SystemIO in loc de FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Ingorarea tabelelor SSDT incluse in biosul placii de baza."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Activeaza modul de energie al procesorului, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Activeaza modul de energie al procesorului, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Activeaza modul de energie al procesorului, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Activeaza timpii 'idle' ai procesorului (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Activeaza auto-generarea moduriilor de energie ale procesorului (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Setarea rezolutiei la 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Setarea rezolutiei la 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Setarea rezolutiei la 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Setarea rezolutiei la 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Setarea rezolutiei la 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Setarea rezolutiei la 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Setarea rezolutiei la 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Setarea rezolutiei la 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Setarea rezolutiei la 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Setarea rezolutiei la1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Setarea rezolutiei la 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Activeaza auto-detectarea placii video nVidia si injectarea proprietatiilor."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Activeaza optiuniile UseAtiROM."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Activeaza optiuniile UseNvidiaROM."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Activeaza optiunea VBIOS"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Modul Verbose"; +"Verbose_description" = "Activeaza afisarea de informatii detalitate in timpul procesului de boot, optiune vitala pentru depistarea problemelor."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Optiune pentru depistare a problemelor, care porneste direct in consola BSD/UNIX a sistemului OS X."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "O optiune rar folosita, dar practica in cazul in care se doreste pornirea sistemului cu toate fisierele si ignorand cache-uriile prezente."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Pentru rezolvarea blocarii la 'PCI configuration begin' pe unele sisteme. 0x2000 este flagul kIOPCIConfiguratorPFM64, precum este prezentat in codul sursa IOPCIFamily."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Pentru rezolvarea blocarii la 'PCI configuration begin' pe unele sisteme. 0x3000 este flagul kIOPCIConfiguratorPFM64, precum este prezentat in codul sursa IOPCIFamily."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Pentru Lion doar, dezactiveaza modul de revenire 'low power' care uneori lasa ecranul negru."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Tastatura MAC in limba Germana"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Tastatura MAC in limba Spaniola"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Tastatura MAC in limba Franceza"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Tastatura MAC in limba Italiana"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Tastatura MAC in limba Suedeza"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Tastatura MAC in limba Portugheza"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Tastatura PC in limba Germana"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Tastatura PC in limba Spaniola"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Tastatura PC in limba Franceza"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Tastatura PC in limba Italiana"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Tastatura PC in limba Suedeza"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Tastatura PC in limba Portugheza"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "O versiune minimala a temei inregrate in chameleon."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Tema originala Chameleon introdusa in versiunea v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Tema originala Chameleon introdusa in versiunea v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "O tema simpla creata de NoSmokingBandit din Aprilie 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Optiuni pentru control"; +"Control_description" = "Optiuni pentru a controla modul de functionare a bootloaderului Chameleon."; + +// General +"General_title" = "Optiuni Generale"; +"General_description" = "Alegeti din o gama de optiuni de baza."; + +// KernelFlags +"KernelFlags_title" = "Flag-uri pentru kernel"; +"KernelFlags_description" = "Alegeti din o gama de flag-uri pentru kernel."; + +// PowerManagement +"PowerManagement_title" = "Management al energiei"; +"PowerManagement_description" = "O selectie de optiuni care au de aface cu speedstep si consumul de energie."; + +// Resolution +"Resolution_title" = "Rezolutie"; +"Resolution_description" = "Setati o rezolutie implicita."; + +// Video +"Video_title" = "Video"; +"Video_description" = "O selectie de optiuni care au de aface cu functionarea video."; + +// Keymaps +"Keymaps_title" = "Tastatura"; +"Keymaps_description" = "Selectati o limba a tastaturii, aceasta va instala si modulul pentru diverse limbi."; + +// Themes +"Themes_title" = "Teme"; +"Themes_description" = "O colectie de teme exemplu, pentru mai multe teme vizitati adresa: http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Nimic"; +"ChooseNone-Resolution_description" = "Nu alegeti o rezolutie."; + +"ChooseNone-keylayout_title" = "Nimic"; +"ChooseNone-keylayout_description" = "Nu alegeti un mod al tastaturii."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/ro.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ro.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ro.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,53 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;\red0\green0\blue255;\red153\green153\blue153; +} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri0\qc + +\f0\b\fs28 \cf0 \ +\pard\ri0\qc + +\fs48 \cf0 Chameleon +\fs50 \ +\pard\ri0\qc + +\fs26 \cf0 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ +\pard\ri0\qc + +\fs28 \cf0 \ +\pard\ri0\qc +\cf2 Nu instalati acest software pe un computer Apple Macintosh\ +\pard\ri0\qc +\cf0 \ +\pard\ri0\ql\qnatural + +\fs24 \cf0 Developeri : +\fs20 %DEVELOP% +\fs24 \ + +\fs18 \ + +\fs24 Multumiri : +\fs20 %CREDITS% +\fs24 \ +\pard\tx360\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\b0\fs18 \cf0 \ +\pard\ri0\ql\qnatural + +\b\fs24 \cf0 Pachet : +\fs20 %PKGDEV% +\b0\fs30 \ +\pard\tx360\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural +\cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\fs20 \cf0 Copyright \'a9 2011-2012 +\b \cf3 Tradus de : RvXtm\ +\pard\tx360\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\b0\fs18 \cf0 \ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b\fs20 \cf4 Pachet compilat de: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ro.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ro.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ro.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Scripturiile au fost executate iar un fisier\ + numit \cf2 @LOG_FILENAME@\cf3 a fost salvat in\ +directorul principal al partitiei selectate.\ +\ +\cf0 Va rugam \cf4 sa il cititi\cf0 pentru a afla daca instalarea a fost\ +facuta cu succes si pentru a tine evidenta modificariilor facute.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 2011-2012\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Pachet compilat de: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ro.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/ro.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ro.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/background.tiff =================================================================== --- branches/JrCs/package/Resources.old/background.tiff (revision 0) +++ branches/JrCs/package/Resources.old/background.tiff (revision 1843) @@ -0,0 +1,4105 @@ +MM*l(4<(1D2b=v\I"igѮ`]Ӧ + +' +'Adobe Photoshop CS5 Macintosh2011:10:20 15:26:54 + + + + 2010-10-04T15:59:42+01:00 + 2011-10-20T15:26:54+01:00 + 2011-10-20T15:26:54+01:00 + Adobe Photoshop CS5 Macintosh + + + image/tiff + + + 3 + + + uuid:4374D11C9F96DE11ADFCDCE24900EDE7 + xmp.did:6C12856B288611689644C91A9F61A454 + xmp.did:E3A035A15A1ADE11A5FCC9BEE1E5A173 + + + + + xmp.iid:B83E500C3F2068119AF2ACF51FA14733 + xmp.did:6C12856B288611689644C91A9F61A454 + xmp.did:6C12856B288611689644C91A9F61A454 + + + + created + xmp.iid:6C12856B288611689644C91A9F61A454 + 2010-10-04T16:06:54+01:00 + Adobe Photoshop CS4 Macintosh + + + converted + from image/jpeg to application/vnd.adobe.photoshop + + + saved + xmp.iid:6C12856C288611689644C91A9F61A454 + 2010-10-04T16:06:54+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:6C12856D288611689644C91A9F61A454 + 2010-10-04T16:12:35+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:6C12856E288611689644C91A9F61A454 + 2010-10-04T16:13:01+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:6C12856F288611689644C91A9F61A454 + 2010-10-04T16:16:02+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:6C128570288611689644C91A9F61A454 + 2010-10-04T16:16:34+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042922B1411689644C91A9F61A454 + 2010-10-04T16:20:33+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042932B1411689644C91A9F61A454 + 2010-10-04T16:23:46+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042942B1411689644C91A9F61A454 + 2010-10-04T16:35:29+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042952B1411689644C91A9F61A454 + 2010-10-04T16:37:59+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042962B1411689644C91A9F61A454 + 2010-10-04T16:39:14+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042972B1411689644C91A9F61A454 + 2010-10-04T16:42:07+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042982B1411689644C91A9F61A454 + 2010-10-04T16:45:55+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB042992B1411689644C91A9F61A454 + 2010-10-04T16:48:24+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB0429A2B1411689644C91A9F61A454 + 2010-10-04T16:52:01+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB0429B2B1411689644C91A9F61A454 + 2010-10-04T16:53:44+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:9AB0429C2B1411689644C91A9F61A454 + 2010-10-04T16:53:55+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A282B1911689644C91A9F61A454 + 2010-10-04T16:56:38+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A292B1911689644C91A9F61A454 + 2010-10-04T16:58:22+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A2A2B1911689644C91A9F61A454 + 2010-10-04T17:06:37+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A2C2B1911689644C91A9F61A454 + 2010-10-04T17:07:59+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A2D2B1911689644C91A9F61A454 + 2010-10-04T17:08:24+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A2E2B1911689644C91A9F61A454 + 2010-10-04T17:12:21+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A2F2B1911689644C91A9F61A454 + 2010-10-04T17:15:08+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A302B1911689644C91A9F61A454 + 2010-10-05T09:32:09+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A312B1911689644C91A9F61A454 + 2010-10-05T09:32:28+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:A5408A322B1911689644C91A9F61A454 + 2010-10-05T09:35:01+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:201CD4782BA511689644C91A9F61A454 + 2010-10-05T09:35:01+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:201CD4792BA511689644C91A9F61A454 + 2010-10-05T09:36:04+01:00 + Adobe Photoshop CS4 Macintosh + / + + + saved + xmp.iid:762A9191122068118A6DF5764C40FB72 + 2010-10-14T02:55:26+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:772A9191122068118A6DF5764C40FB72 + 2010-10-14T02:55:26+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:E91FD653142068118A6DF5764C40FB72 + 2010-10-14T03:13:07+01:00 + Adobe Photoshop CS5 Macintosh + / + + + converted + from application/vnd.adobe.photoshop to image/tiff + + + derived + converted from application/vnd.adobe.photoshop to image/tiff + + + saved + xmp.iid:EA1FD653142068118A6DF5764C40FB72 + 2010-10-14T03:13:07+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:09801174072068119AF2ACF51FA14733 + 2011-10-20T10:49:26+01:00 + Adobe Photoshop CS5 Macintosh + / + + + converted + from image/tiff to application/vnd.adobe.photoshop + + + derived + converted from image/tiff to application/vnd.adobe.photoshop + + + saved + xmp.iid:0A801174072068119AF2ACF51FA14733 + 2011-10-20T10:49:26+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:023A8F0A192068119AF2ACF51FA14733 + 2011-10-20T10:51:25+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:093A8F0A192068119AF2ACF51FA14733 + 2011-10-20T10:52:48+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:0C3A8F0A192068119AF2ACF51FA14733 + 2011-10-20T11:21:20+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:68EB8A521D2068119AF2ACF51FA14733 + 2011-10-20T11:22:04+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:69EB8A521D2068119AF2ACF51FA14733 + 2011-10-20T11:37:48+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:6EEB8A521D2068119AF2ACF51FA14733 + 2011-10-20T11:42:12+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:71EB8A521D2068119AF2ACF51FA14733 + 2011-10-20T11:46:55+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:72EB8A521D2068119AF2ACF51FA14733 + 2011-10-20T12:14:06+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:802CBFD6242068119AF2ACF51FA14733 + 2011-10-20T12:15:52+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:832CBFD6242068119AF2ACF51FA14733 + 2011-10-20T12:24:44+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:842CBFD6242068119AF2ACF51FA14733 + 2011-10-20T13:09:59+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:872CBFD6242068119AF2ACF51FA14733 + 2011-10-20T13:12:41+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:8A2CBFD6242068119AF2ACF51FA14733 + 2011-10-20T13:15:40+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:DCC9B43E2D2068119AF2ACF51FA14733 + 2011-10-20T13:16:03+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:DDC9B43E2D2068119AF2ACF51FA14733 + 2011-10-20T13:16:38+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:E0C9B43E2D2068119AF2ACF51FA14733 + 2011-10-20T13:21:19+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:E1C9B43E2D2068119AF2ACF51FA14733 + 2011-10-20T13:21:46+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:E2C9B43E2D2068119AF2ACF51FA14733 + 2011-10-20T13:23:50+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:E6C9B43E2D2068119AF2ACF51FA14733 + 2011-10-20T13:25:13+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:2E99878E2E2068119AF2ACF51FA14733 + 2011-10-20T14:59:09+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:294BEE5A3C2068119AF2ACF51FA14733 + 2011-10-20T15:04:22+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:2A4BEE5A3C2068119AF2ACF51FA14733 + 2011-10-20T15:04:22+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:2B4BEE5A3C2068119AF2ACF51FA14733 + 2011-10-20T15:11:33+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:2E4BEE5A3C2068119AF2ACF51FA14733 + 2011-10-20T15:17:56+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:B03E500C3F2068119AF2ACF51FA14733 + 2011-10-20T15:23:29+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:B13E500C3F2068119AF2ACF51FA14733 + 2011-10-20T15:24:27+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:B33E500C3F2068119AF2ACF51FA14733 + 2011-10-20T15:25:12+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:B63E500C3F2068119AF2ACF51FA14733 + 2011-10-20T15:26:42+01:00 + Adobe Photoshop CS5 Macintosh + / + + + saved + xmp.iid:B73E500C3F2068119AF2ACF51FA14733 + 2011-10-20T15:26:54+01:00 + Adobe Photoshop CS5 Macintosh + / + + + converted + from application/vnd.adobe.photoshop to image/tiff + + + derived + converted from application/vnd.adobe.photoshop to image/tiff + + + saved + xmp.iid:B83E500C3F2068119AF2ACF51FA14733 + 2011-10-20T15:26:54+01:00 + Adobe Photoshop CS5 Macintosh + / + + + + + xmp.iid:B73E500C3F2068119AF2ACF51FA14733 + xmp.did:6C12856B288611689644C91A9F61A454 + xmp.did:6C12856B288611689644C91A9F61A454 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Z%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%GZ%G8BIM%7{1/\Q8BIM: printOutputClrSenumClrSRGBCInteenumInteClrmMpBlboolprintSixteenBitbool printerNameTEXT8BIM;printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@R +vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@Y8BIMHH8BIM&?8BIM +8BIM +8BIM8BIM 8BIM' +8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM6nullVrsnlongenabbool numBeforelongnumAfterlongSpcnlong +minOpacitylong +maxOpacitylong2BlnMlong8BIM3null +Vrsnlong frameStepObjcnull numeratorlong denominatorlongX frameRatedoub@>timeObjcnull numeratorlong denominatorlongXdurationObjcnull numeratorlongp denominatorlongX +workInTimeObjcnull numeratorlong denominatorlongX workOutTimeObjcnull numeratorlongp denominatorlongXLCntlongglobalTrackListVlLs hasMotionbool8BIM4FnullVrsnlongsheetTimelineOptionsVlLs8BIM8BIMnullbaseNameTEXTUserboundsObjcRct1Top longLeftlongBtomlongRghtlonglslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin +autoGeneratedTypeenum +ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlongRghtlonglurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong +leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM8BIM lʀICC_PROFILEADBE@mntrRGB XYZ  +)acsp-bICCm4EmQ m cprtdesc|xwtptrTRCgTRCbTRCrXYZgXYZbXYZtextCopyright (C) 2007 by Color Solutions, All Rights Reserved. License details can be found on: http://www.eci.org/eci/en/eciRGB.phpdesc +eciRGB v2 +eciRGB v2 +eciRGB v2XYZ -curv +*4>IS]hr}#-7BLWakv&0;EPZep{"/<IVdr!0@P`p,>Pcu$8Mav #9Of} #;Tm  : U o + +0 +M +i + + + + +  7 U t  / O o + +5 +V +x + + +%Il!Fk(Ov;d1Z/Z 6cFt0`!RK}J~Q(_;sV=w)d  V !!M!!" "H""##I##$ $N$$%%X%%&#&g&&'6'|'((N(()$)l))*E**+"+l+,,L,,-0-|-..c../N//0;001,1}12 2r233j344e455c566d677i788q89"9|9:0::;@;;'>>?D?@@d@A&AABLBCCuCD=DEEmEF8FGGmGH=HIIxIJLJK!KKLdLM=MNNNOdOPCPQ#QRRwRS\STBTU*UVVVWvWXdXYSYZDZ[7[\,\]"]^^__``a ab bc cddeeffg gh)hi4ijAjkPklalmsmnoop)pqAqr\rsxttu&uvGvwiwxy!yzHz{r||}3}~a~*Á\,DŽc:؇wU7ٌ{e SF퓕=敏9㗍9䙑=ꛘFTgˢ}1夙Np'ީO{6񮭯i&㱡_ݴ^෢e(뺰t9ƾTwA ţo< ɦuEͷΉ[.ҪӀU,ײ؋d>ݪއdB bD' +kS;$ +~l[J:* +XYZ xQXYZ - ]XYZ " Adobe_CMAdobed    +     + + +   l" +? +  +  3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?BB +9AzH@)!Aq?4(do'PfO9Cq=C"n?*]43?'ˆbOI1yv:|RaR~xKxAKIL\>'ÔR*BB +@zHD] y ;(.P?4?N +KQ +ySq=/C'dJP|;x%aJ< +_IdײJRqo +\>T?B!OBG!8T/EzRB'=! B R!{;?(.PgO((y?C(dPRC_OJoRRG8ILT\S''G ^1y +cD@lh +TM}SD<A.B3dqAy(O=2 +'T7k*n? +0?TC'TE +)M>1<~T)KsL<>Z%d8L@)))qS]MVCX]m_i:5ys͙>s7s[YeC2W(.7֋+fi5V{_]]k};UgX85ưi'{[OЬ~=~ݡ\go+ӮYca1۽FvaX噜 9C8k~)CжcdkId]ʦm`~>GhrCWYpb7 )!Sqz y(q(~<wɏH^g?t'_OJtCL;vN? I(t$S))›/éXMsٷ?zoSvKem>ݔ3o[H]>ʭ)V\\([HֹK/!h4&Ƒ<~Qc $B8j>ۘXrzF%P#蟵^kuGtK것v3,a5]_[vfFHs%is}jf[r9>E<8*1}> 9d Z\YX +ĆvIgU*n[4{{>՗UDGO#;I%y?UDÿ|B;xvL*[Ͽ_NI,OST Op)_ D)~MmvRvUcJ~l{M[m,.5lwzTT~FuuzGmj` ^L>}_ҽ \套ېd&Z~~'7곱[Zڇ8KeeU[rA-,>9.OԎz?~"|U)Uqٱ< L*Qgވh XzAtJ)-bOJt~^Iƿ5 +ge +'4_$z +fJnSw|ׄT.ɐS%] +8BIM!UAdobe PhotoshopAdobe Photoshop CS58BIM3 9͓e`XǨ=!t* A'УQ(vn.?L9P=AHAHAHNNN`]`]`]8BIMmopt4TargetSettingsMttCObjc +NativeQuadBl longGrn longRd longTrnsbool +fileFormatenum +FileFormatPNG24 +interlacedbool noMatteColorbooltransparencyDitherAlgorithmenumDitherAlgorithmNonetransparencyDitherAmountlong8BIM-msetnullVersionlong8BIMms4w?@$ +B`' A!h'EC8{I' +M +I0OB Rw#'3ib:MUb҈-LQ_4jO47\vnE` +=Kպ;qV4Up.7ʮV"o@ #n'm˟ͭnH +R1a<G90?[=-kۯ./kԽн.pHrl :HBP:}6.J:i3Nà!C&n}}90Kp&)lo;Qˋf +T+h~ N0|}g90B6C,2G#zl8}Q~ ;\.n~NJJ$8"tI&J⢕L;5=- +`B%,#R0N߁ +;lH9I0@L5z`ģ"si(^ӞxXEeXܕP@CKˢ(T xruI9!T.!F;Ȥ"Zk%- w&N& +#gPcRQLtFhEYHjJ!Ҧ(5f*K₁MQ1gEch$VC? +rl<;"Gά/䲊u +>?s(B0 e/JIYI$(D7f] ߏDYŤx*g\=%J +3R#ơضНR͒E +\8Բ.h"5 gP0L+4#\j+AG ;ESBe:MY܉E I0tWCNa6٠:+ 9(\ />=RquaC{FaZ'{$ڊw?dZ%?W#8, 2 7IkdGD?@`%+I@id5򂌒5;ufsD(Xk%hFH ]G.ckx;:k&H$S=*6u!A‡5dBN.\lL"Ifh()_YitUQ1_STxQIKXv;OB(@( w;0RaFt$2Sg ɲ/=Gʀ<[tSDCac(p<=~5JC"r,(})#&3P-lLvq%xW2?N uCLҲhW+`&Ua+@ϩ,e7 X,#BdpCrjz&aE8jweWRjQG`fPerMТ̰ъ |N0/If'Tž(NXN1bMӨL"b&g:HTwH|)b-h-MC;Zjʚ`KIVn/!M(B : +ڎ\!caBH8H~ۂf8cEH +Hע9*.jk ĝc?0ϠM/gdƘ˨9BҎFEA'\b+jb6b.vv bz:6Ͼ;B46nO8$lf"bc +Olζf/EK%Dd?M!{*S$Hv1 P׮qbHZC@/ F?#b%#hئ*h) +6Ȥ;+P'+cfȃ\!C^S0*2OHc!e#_22?R5$TKTSK6A(\]8H̔xԢDTkV&< E*p6av &B#dNL눇CIz +R}̞On:GgJ嘛ƅfEt{\hl:3jzTa{hD؎ϐNjAhTX].Uk܄TЂjZׇ&H*HHhё-`nA= /&,{T[-B'Un"|$n)ń(dZ~ȥL锊b5XV.::#Xk{X/Bg3 BmmK# +E*6!>CEŊO%eGE6' RPZ~ +Z1Ŋ>n!U J0M ++)F2.r%>am~1s&.K+BPh%V etw%Mh3HZ7Xĥ v.@;lTHtބEH,0)^hPtG!)wD=xIEħ_)f7rE$R] BHH7J rH½ijt%v͍nwC2q|⬛z#Xb"]Y^饮8&`i4(d6,LFkLor2r)Cv4 +o\#L>肐US3RȂ} Ep&Bk毤\$D4Dă6%44ACBv"gDRPwRe0Tb5 l[ NދS2Dsn:iHKGŗI$S +3)I':E +F;whh@hu8.`bbQ4 DbdEv)V.T#tL$V@j7{=cGxNeZ!,{%KƲFsϠ?NDz!!`GAI3S+|!\${w`aa4k% w z#ETh9TD^bB8Mb!6??5oZ%GygUb.w|w~⊋zmڒJ91[4z,qfn;xc GaT668JЈBins.`&~zøEk3N[q-B\2)֚wFtmUVҺTm8v8eĤc&(i=)B]⢘7'CF0Mpk#B2D%g ++pZ{g*%N-I2ghZ2UF0#r}\"C6$2bC~3Bt%Dd0WZb$% +}a^#JNM%lFlO$AfBK.P?Im=>زSB)-䯚D>wj' 0CBHFvsm`UCcγICBW} s*mPf|ƶ][j'y'|1+_P˄k<NH%_g4#7D/tDAQf2GA,RfFu:RGdC4dIPk.7/NT">r$#Xv>LeVZ8ƫK)8bDi&=laL3.{ +@x.%0/'XgI#YreSfGjDg>BZ(^oT8* ѻodW$9TIï'.&tdc9vd+;ĂDc%o>'UEZ"EE[DamV^.%#[p㛺AOdC~0TB]hXqkRxy8NC^[{ɯbhI> @ o(+_ +`|ȟ ,.(BP~ox{ +C@0 ~StHN~_Uw&IOahVzQ=Jv\2,`(q>dz~YĬfThq.sg}ҥ~o0 K秵qWD_z8*{:@,zjpdAKD("!0B.ˊ-ɴ)Zn9qRm%pH2zARrʦ GQ-QSF-D6|v˨q;-=J BgܥrԸA H< JTNŸ0 \!FM') s%PGr4,QnDĐ(SKZsl,!` +9 +{[+,N"G4.d <(/#pT>(Bbح,?p44._ޥaʮt;\_[䘥2nI7 :-+~jFL/9( #eB(:ǝ,}GJT.nHLշ|Eib<ȣbu&B~ٮi'DD* fCoJ~|2%YCp..w:qN )F,q=Ih/ +Ěy$edZKbqa/4KjgMx(k00K퓭` +_0b>=)hlbl(d~g{6ܵ1qCvSO5Pb4M8|q=1#nH 0%ޝ1GÐ NGh@H +%,N#lKjE8Ω.@8 + IAI/DH3JQ4GAy&] B!Z5S@y^#/L΁](t +xciҢLTKհ#Rl+R

1#nGU#(] R' IbH#2ibd6YUi'd8r6g\2jJ QLNyTsSdH2ȋ'`IY{ِE{N7u3X`ȄeRLG]lJN )%, Y^dcFJa8[qBxP Y4<=G`3Q="#Ρ͕=)*VnoRAXd<TS8MH:JȣTR +'(i+4 2гr9IK8b̊J\H޴(&zLf$p`nbȐT'RS䑖EFQ%'-b'Q4E^Μ)pNBWȸzbq/P.yМ^V{C8!kI<.Vrw& +!K0&X.ĭ&S%c-L5YhN'f8_ĢThKeC))>HÂpDAO`g^rwX-,FJ>EW\ +J`uu=ml⸉SFof3vˁoJEe'{q! f=K7f.܈8= +੿Z{+ K7.5@č`z +q;s)3@(Rp݈1 yA [:=P1Op 0ayjB2C%:諏"~1$o +⌐ً(ꇙɻ+] Yg +h}Oě qЀ 4ۜ im8Q܈1OEbңL Pٻ5[U4NJ31`00j-HP |20YŜ kH{獢!ȇw0ȥ7ǨG0'#x7,' 8 \BP25'%'r8z5!CUi +h׬5:)'Ër.'Y+Tz +';a+9~+=P=!J+@ .&Q%˼a銛;tʫ?K"kBt:ߒ-.xJ9 2뫼[ $eY1RP [>'' +1zq;6৓;-ˬ2;$.}H} qqyMҳY`!T9h <H>㹗tɛ.Ёµ0H +Iɀ/OభЁ)-!iMț63qr"[,9O 0ț:#|b)RX +c +x +D{ +iYMAg!V|yͫ +I90Q6S*Plk=TN2H/ًCE`6C`FENRxFs{m聟$rs 60w5؛>BS C kmyPI`ͬC"B8xxy?Lݓ ? h0 1=r-P +xO}c`XX6{ɠKMX6)ʇ***:xF/7}XG4pwxxxC!xxyE/QGJ| w+T7-*^b?Y F*B5uCژiD_[+<&9k9HkLۑ'A̩h1!Jfۑ+үHs!!YzLS7)%\YOx[A 8ix/ ("n} +a墣i͢j +𤸻)ԹA^=*Uf(bS& ?4ڲ69i [Rɕ jaZYyiKd)ķzoңlg"x؂YI]&zQ#$C$L&a-8IgqKfȳ5Yjp0P9z} +_ުq OsI /E1̷72(+:3ҁґk=< -d45%΍`"1T!iΝE< +/L[xKhщcڜ UpWƅjU$ؚ* +IMp +05-|x"e'p?+ + yj:! b/3hxrڍjSYb +1bř==VG +Rq%*gUQB3けX(V} 0LbcÝ 3N-B23~*RVNГ66gPޕSY6N챱؈c 8 OpjSKF3BKy 4( +qڱ3"+#MERˉp yTA8ΛLf!0Y.ʜKW q!/1桄1p=ΜcaȁMK&^|gF:-HԔЁ#9kʼeg+/΁fs]C14`|S +r*X}5NKBCJ+%AИD9P +Ȥ`3 {DXj>c&.>lHH0ؚ\%YOYh)W 2j5'Dݗ\cfp 5Zzە j8f֖LLҊ1iQ_&ג'3¨۫aiI%RĴ{%YWc*NK({sMyYZ30kdĪHg[@I=NB> ң>K"SBK9XƋpie 3;@pѽ 6)Jќ 3.j)b(}*m @oqNϐ`řT + G[@?`!`q'Fa X " _@0Bo;D@H4D*@ +HR~_@ +BYDwB VGK$һ}Mfՙ.-OQ&Bdnboe[@ +2[p(OpDԮ5XGԲ .{@M2%4Ϧ9D}p>f1@#M_ϸC1HsI\/>hQOjGH@7ykJ3@ +g1;.#'hV[.y[H7h6Δrոt8lbyd( +ڄ//|#:j22}6pJ? *FixgH⢄2:0+۶$l rb$; +䠟,><:  +Dǥ(*&{R0@Blb^~ǡ$3.<0 +YV$U3U'S.=(U]5“*3$ґ-6:* SοW)Y4Պ8 +Zl]TqҦGV+ \ $9Z#5yY3|ZK]KDU]'\?w\ 4cG+A>ƴqЂC+aXf[؂y YW wy!n# +#s,9q{U7jj;7w& r'6v Ҧb\Z9D<}/ո5ՆS) ,lZԢ +:{{l|~ >T=h3%㦒\#]43N&(G}'`/Bkk"ħ!M,q^.j:QeHℇ65T,ޘb(@9"+h"4A~B@!" =ǁ'b"mJ'_3搟q/NE bJ!sOW'(콒؅9v&M/ q\Y 'BN@Y,fIm\(`DO.ED(wIa'&$N9|kE}wR:]ݖb- B/‚RHp&]dU$(񪒒B^Q&Ź&:"^>!Sɠ'UܙBfOZJ|8ydBPL(<  !TEF2@^MIdx$.}UQ[$@$=@k7,cΧS K{qHAQ}->y0Mo+1+_p!;ǣ!JcFk8[Nvr ԉxHjr}+lE[-h.×ŖxZKWeTjBߪ+”eIW +]&Eg(5'fK]Ɯy$4DŐ#m)EL%::Uxg3b-Kf\*i-auhQ +rZꪱĨb` M&3G|9"5iTS,z&խuEDA7Q +I3s5?X+N jUZW[dpk\BeWbiPdWX6fzMh^AZ=X #X,"uz+]>p-gα *ϙ/^)tGR.#o2U];aASN܂5T̔EbFqxdbe1!8 {-*Ns$ !ݏ1Iu +$DI#`FmqMI{FT,N;OY9P<ט>+[\$lɎd,gF?G+&d6@pehFY=N-2^F|QyRs n4u,or@KC(pS{x|{Ayٝ[4#)3RH`Fԑаޢ`vǐ[XJi d} BM$~q,``2xMG/ќEG;mb_f̞ð$:"DSj]e5&f#"Qo]1NQ +HGF/D,-̽*x}W`PT?V4mɠqիfY'L)%:B m׆`b!Vg+:\͈5L^PezŶ +ӖYAuI*d ~-O4OB;`F4оC;c¤)"iZ/(ozHCKEl:j H(2bp6*ubE"eK;Ž~ +ET(B,H(, K2o#Vh.A3nɬyrFg; +6dw+0*#36T+8] 5ǔ)B&j$'u2}ɾ{j0>A6 FBt0d8V^(G)xh Z%t鉒{N"Vdm`Df~=ĽI%"g*a=HISnB|D.cf$# +΃mF&k*4Bn*^)z#GF&$rz8*#dBDl b1A'&ɄN(q:\0@.bg +bP'x---[b4*!oH!R=,(}IF0(~bm∨|C9 &$@KcGNA'@ O2Mtv|@/NzLccb+Er54o*d_NjpbÞ>0b{*[0tXp:\KB"d"PcDE4$D2-#r% <OM4Lcdt'D@>D0tІ')~v; I, %<oRPITEcŋ<ƫfA +D +bhc$Ap>THSf7g<J"`S&N"4?"e4I +@1 +/"-J)j)4! +;2U@:jHr 3Jta'j +PLj_&FL3vB@Q^UlG2\^lZ괱s1Jy O +4'4j^#I6t[J:dTzU0=n..% +r'*f&nN:56uJX2d5"3k`dxc":48`ZsKAtPAE0u(1Ols|$@˒gD#@h " )B%Avd!*]?Iu%(6dl\pVlժvϽhf8Ѷw}2s"+jf::Sbjnj(Bc"QEfN>sC= &9RCz +Ϧ`h %01 !5ią8Ԩ54p +{23'u3B. +$2'170DH!lCP.ZtD)Emt"0hC1˜H2 0L9J@1ꤥ&#joHpTa xahM'5:Nq37!}jA3o3rWT>XfQ0H/rv/tYKtFh#owJ(lsRU'2UNux +<#\b)Z\X|C%/bGC1#jx +JE=@qg$ y?R{G_ @LihGtoz,.bM`n?ETnq.,ZjWl&8T pZ#T6cbRbCA$.o(bY)sq`%q43-=,4(9")?J<`N.}٣x{F]xGp1e:GBÁ>P"޵\W +ςڦ]#fz+c\C +PBvT&5D>CI,zNYGve"v$aPECߢR/~n +J`g$NFonB8.dKt[mj(\,((GZ: >C@ l\@d2<*y*&3@ +|ub¦dx;טH=ȎfLgZ8B)v“n*5 +/oZl".A:gLZb6aeL=_؉#jʨ!1#«Ҿ Qmp9y(fh'ALbtU$&rTr!),Đ41e&s r3qir%/A׫fγU#U=wBm۹}rj4MVǚm4m"僰 yp2Z&!۴UŖ"QUo,dzy|<[##z:]|oئ׋-:2`Z3%hhdڒ5V EuB'ߒ0HA' +}>_UW%53}]8N_du}f"ϜK%JZD jjCP+3P,9g|P  "U`*t.a4#ţgx$Hဌ3̧9~2 e!z@g`Rhj~Sc;bzk )Js 8ˁM,àP ktc8jHO='>8P\"s̠L90A?`qQ}6MHkzxУ-8a03Ή2Kl|<2"r :#=6PPЙ{`HpQ|8מHbQHm~|D,"G}*@z +Ƒ9㡧'黰gyݢR 1@D`K6ϴOr7dN*-St-mhL:뒂R=zS92W2.Q Slv甍ZG/@#aXc[ o$$~iց>ц\*ϵ>'4AI2M8:?YP4iC]eN̫90Hn|B@S=#J#O% M/puIS7$L"SJK*$UњBX^ ̢a-NQ !TR4"H +crWF(ZZS*FLNS**AHiVE ʾMe^-؂nC]C^! [ž u۶ecqUgB|ѩbݶ< +5β/|f#Y'd =:7:u]x0'Q/Fɺ1x~!8QP[+.c$T v/,~rHk/)y|rTLfۈ!4rfz.,rm„`7TziS4"_%*C$MNw*7 X0`iqS!C0mY4ӛ2ia9 Xm +޲Y`&C4 +m%j!N9#zd$OIٻoGɢM 2\HB /6Jܖ%/ta-Ft2޾Oڂ}QFs8 |6R>Df=`չlj$ώ'̙??a'/J@{Cz+K +U"gh|әA鬈,&cmi޺&Tq"JBx1ИnIQLcʇF)%"nU5|inoߐ zA* +g7g6ifulf|5tUeJ-@'IecFh)ݍ< -Ζ* I1pdA-;P௞R܌Em62L㻍6"L W(}ȪŴ@Q@X|8p<ʏঀ8@H27/2Aǯ4ɐC#,0I<04G 9H0{" +bd&V5-A(8؉A0 *d$y;41 l$2)6)271;Lx#D" 8ܜࢗh͟601I**@%#~;L=x{$Bp̎ hAIA!1#{I +!A +9, G/R)5K^8> "_h[ A9c8Ѕdj G +Y N~QM*Ի148Ķú5S# =8 #/Q7: :A

9)AJD3# +D }qXQ += +fԭ")۪KJ()twɉi6* 8< +-Hl> S_ȗ@x% @tep%%}  + X +pIytj  +) 9CӬ~ +14⯛7[5,q%_0c0$:Ѭ11j0h01gA'%A{$z,9ѐ +sC#Lj0, 39*b2ҙ"D(㤋TYhSx0J9:D>>&ȣR0<3-ar)@6IӢR*`%JC;ӼXǩg8Th歫u' +h+DO +*(F +Rԣ&>)EC%L*I13?3DAv(K~!Tx վ9&፰d0 +}˝S,L2J[ϚK jķ#hDq qگ2zj$i8VJ\E8IASJI2ڷh D&3.2i 9\nJ 0' ˉ,ѢZ/HS1i +"@Г@8h:Ț!EN@?ಾo)")8 "*ؓg:Lb/Qj}"! QsPzY h8P' +=-Bc‰sN螺ާ4a}] KmͤE)KbɎ!>|Щ?Q_ + -U P{0&ߴh}Py0퇱W%2o {z))?ƨ纉 /A Th+k6 +w=k +6S1]'ǣ0*s*1|gR|,Baѽ'ä + + +37ueK52A>jẝX#+X`/' d3/kX};[M8r^z,QàkN +?Eiv5:a i 5cH ᥥ&Dᘦ xL ;)΢ZYgE91aӰmbܻ0˜yžE?SGLtq!M[CLCDZPm"6kx=T9H*0qU!݇ +jLD$EY39n=fwy` + b aT>SCHE2Acs> >@c  + +W Y؆+>6IN 鷆0:Y"$*գT~añJ|N(( +rэsRGF pFI +mq}A.% އ01, RV.<V"7i)h2 Npއ2S:'9?˖!eZ)c6K`P ˥!68 0 +tM;6![S#\Y:ʴ* 4(==̀B@`|<ʽ2b Qs5 %, +EnX0^fX0y `zZ*2âHѯ|bRe[7fvP8Y/PPU_25/0#1؞vGr>"%{486,ECrd|i>Rdfёœ"" LuNҹ."Ǧ w:WiIY_9iV2$TnnګyH1a#!tT ;ѓ^U+Z]Vj5LhP`ə#$#]t/YPI*A te“+4_>$0{rz۪Z[fEC]jb{H[KXM|s>R"Cjr>T +@Pw pPvP _ `~?_{7NgSy7!U8G9e7Na*xAR*3e)f_YU +8) wm]kt4:[@2;VVYR0)r}g VΪ3,=ci,L`,gkcϱYD7 n]?_sp%$P79.߾y~y6^~k?HnB1˫9,CR0k\}B!*iɪJаkcvi{+'CS){)L,@?m}Hcnۀ #^46{}3J~J΂(KH2srdM$ޕL r}FdNq+o34s=ku&( #D5F.Kj2cӑ⒱m3}gU0?J#O&BR7 r ʩtt?􋪗>'Y;M#nBJ'Lt*!b5PWt倵 +rh +/-A I`Ȉ<τ*Ķ%_8;'?Xm":LFۣ}2/ ~]]Os!;}4{' r~zXQM#$~_e(>*0+@F~gUA*_A,:Ɨ )b|*f&LZ"J ƧE !t^~4+cg6*>-r*VUOHʝVHp\p j(Z}@`-'X``-zr|?_:g-4: +O;+DRa+Tj  ug tα03UʣX2&`,^Li6^q>]e7!I%x6O bLI8^t9ñF΄ɷhaK4i`".qPGD +8*1ىJtGT _X?H/Rv !8ڃ +szZ[̍92BLQ1)%>gd.exնVKPa +($s֕KwNqkFC[jr |2hY`SLdV_5㡵NHB$H̶X@%):k1,#d] i@F>(Qz͞c*cDmqQ- +v]nca&~3:BI2LK,'YriũdΑBohȟk +Ü) ZlE#Vkm0f-PJ}2GҌdz/*lU r?#S/[lYNC+[bI.V\@${ &JLy'-@BVK3/iΫG`mHWCnCMքš`ʅ / +:Rݬi)_ i)lu$uk6!90բks SM6|I\b(@ޱ,H}SeU幀61l}+t g\,kmvVͬkxXTǸ}o{ + 9fCҀ YJAZpaAh aTMR`UR|j:#ȓ +P^NF +C!* 8)`Ѵ*xDj"0:=渙*Ih*('~"&ZTթ̅M;*yuYhUCҙ,@ +)iNs7n{ ~-JJT+m!9JԢRS334ޟ*y̪,0BDP}KVC~,jE 1 a]ƪ,(lL4b}ҹIcDn9mS2. +QB!]1Ҩi4,4k3pn`Y +W-p%ED@\Ac,&SIjB1LҍϥOIk-JTCQG0'eq.j +M3m`GG%q$mH]J{z ϣ1':*:hN vb\t?&*&xP;mjLX¬j.OB{RBxf ^Vhș (aFd*Nv,`rЄbbKm(!J e\"4bAy%q hBF,~JHČȮH.fٍS E^b?5NEI3bf˜CM&-XDZ45>'e1*rXh@@mD$-֣ǃL攏hDl *(r0 +FDR'Jt.tA ֦H$LMĞ6Ȑ3?ܯxM4m +)̋d-Bxcbv_Iq:U(%6L|'8pH%vIc%D> z.-ҎHcO,5B3($(kQ +oE"b̽,/nj&r8Z8X,:q$4tNŠRLO'2or~mFc'I-#j,K0:H(xYFD#RdRfbBƜ3I꧆kr(Kܯ$G ,N2|A>#4j?7}I͏YOc-H4^FVjeNR#Xg2|R KDtl2x\%hj8G p2Io-φ#ydmFdBR~7͢[bbfhJHL*sZdbXaޒ+3#Glq$maZscn kKpTȶlO(o>3*;cPFQBl*#q _ 0$L)\_ tk., $s]H#B @L)H$JK`<)$$[H0XK?UĀTM^7CDȏӈQ h;)!DʱNBM +_Rꨠ-\Kr0%Dί0gaE0<m Q.EcDBKU(2r1Mcg.FiGRċ!#y!J$CY; jAHf+ Dz/5*rpvRRJ&8pMOC[o?%p "7p:Bn&L]jL&FBEBpɤ<ń9=ohĿSpYX.6S..樳($n: 1c!M38~ +] +pWvNh:GBE21F Hb.]!@@ kjp\W,tpCk0oh) ƨVt~l<$!KHA!}I*A..$︩h /-Ar TLT LMTC*#$Cy +?16PSlpZo'E&O.̳hBiҦ,DO|QZ|t<U:+etx +RRHFO$O#XU%YVA%tbWm 0oScS2Rf]h,.ێM*r a$L.5ik:W|3E^@ +DKs­RؘDhow@2AYtiMz3dDGVuzm<]@i&ZeIa,zK-hZdORb蘮d !_\q5iᩢVxu18< H5cDUQ1' +יjB':yM +Rփh,|loK"=5g&`DqVeĵnw 0 z(I/ƨtȖ +Re>)V{D݆{H8 3qW@PmF䠗vzF2rBw+dT'HPtw.-B|,OIMt<>bdI eCvqd.>\UҾG"x9!άfC]V X°'7D7..P9TV46Kl,7 +T-m,•ң&MF5r9h7(GV9DyJ7SZ`7MhQjvM(.=*ekfm̉:Hrugc0`pB)2q,tSJm1Iv1r .кˈꟈa2Aw`g ++(+ Z)ʪ~hdRugد}~W gҽFf6bR䖾R.ڳ pOܢ2'#1Bʒ7xBxP0G]0aLJ&6FWp*c tA;G##Rm +dq&2/vuD"Љ4i!(PhO@ +U"sPYb,̝|[CąS+Wl +Yn=VVUs"$B$ҬIQV42Yhr]-NĊL1f *UU +)AHU% !hG|д4) zp޺ F>#lBdH[E|h=&U\ɁU17RUY%*U4҉&]aB( o= :Б룒PK+"?{a2 f9k"vNl:33bzrËSH.'!Y'濕S +!CZԖp +FǛuMqW#ipx,Q +bŸ@װ>\6 +LfI6kT,rf$p 2vjȶ-R/mBG".TIHhQ=ѩ ˬ0ȱ[Ф-TU0r +st2D=rʀg&*c\ɔcA 6On,(0+@Mu*#D Jձp Vpcr3#-ccrdO-JJL7!`(b90EWMŘtg)pE"yq7({Y5J)tbQy}#ס8e&"dA,0:DCtY(DNk+%P@4%T+NAㅱD6zOk5ض]cُW@gB"/;$"Br174׍ _UGgX +<"φ3(^:ReU PAPI#^ +ﲛ0)Tl\68|Dֺ`'"׻3G*"kҿ!uф 8.85<ըjz6*eAVOkPty2^։PX\r"[ݥ!1w*c*$<-]~0:sJPasB>=*brYݭqtXɘy zyYXREp{*aR)3&dKxlUVy(&xrB'ăb +9^K'~R/(^MTtIUVbc +R=pJDcՁ +WM ,ٓ50(脑zqc?*v؋@5Д + +3/٘,9L1|Ax,b~9@ΕHܕ(t(⸀|yݠ9~2a¸}L-4CD:2i~' J~z `88,7@8b3$@!S=:v  `3TQ3C: 琫ZE%#CAQ7U !y +q66YQ#M=6WAfDz(Ս$D#.QWɋ + :)js:_$AY͖JAR1gMtlR6n4)y鍖Q7 +9oHId!yXA7ipIlB)|HA(̬㳒⸉GJsH"9G>,eZ +]*|ࠩ%kT 9x,,UF1܍lY#*at:[1~>59 -8߼!3DEK{IO1Qp`~8J|r$ +`}t8Y@Xy: ${80z0TX{1J90 + aLrk_>JKLا| , A.)ۈB*g ‡ƕ")@x`}@TǎqB <a29<+ z3t$Yz DzЊ0ƥx( 3D*Z +La`z`{]Ii)#—Rxy'R#*. + @=Z1lK,N8z~)E40kIR.8+F@M\@S Py|4IM(Cxyi,ȸyȟDV!b]|CcN4 ×DPpT+=W3y%fZPVJr"mEЌ5*,GJ$KlPﴢ=.3r,{))HFnE7 Vt A3V$ Cf0Xq0,C΄W0ʼ?@Anh$9rQ%@cc#H¯z:mV\u-d hٛkI1z.qlU<c>,[I:@I,:~겹☁Y +[:*UوLc8&rØ#&S-3 荋1| +;;B+4 +-HЈYȏ~ЁQYHpz*=I +yʞ}6 TB3 +tU.ێF(JN8&R/Z#QCb[bC%ƔɭD3<Ǿ",]̒r5|Z"6¿#:35닢]H|]=%L:HpjO})/0{a/ O2. +ka͕T½pU=iY7eAx:TjJK).&ҀR S#1_Ok沘B~R"E\m +qJ~I{4I~A +SB{%'d‡?9YN 8&@b +٩ id 3iK-Nå9^lzHd! +a.~]#Јϩ؆(~o_az%cY4@*~YQj +j‡:dl" @QhڹAimD֏c(I '~A>)Rsq1JKŜc @|ש/V?r5!#/ϦfQ-1Y>DNXS2Nyk8ic +i6Zi+6 i,*l֞_`$}ʏmb"3\G"5h#AS'ڡZȋZhZa]#BDDVnY¼+D-~7ʮrF;Ut +&e;QcƆdl+BNdCG[6YPִ皨>6FH*{ JJ^dlid*rTg%ۚU }[\HՂ乤!M]-q C*hT#tr(nꌮNW {]XmSa +ؕK) +rxL o@ C@/ ?&~P ?`)4&1 +Aч +`hhi4~4B';G!Q( +5LR_/8"?׋\)1o׊35GJ;`[C~#oD2-Aa\,u>Ov`s T̼ #QEO}j7t|?I?&Ϧ03桠l;:1#@K H!~m@o@DA1,"C'3oPc + 4o*Qsf1:?DA+  +{:29/nƈ#(H-o} +DGkʪ#hĮp]"o~P3\M9k(M:j72ӨCJ1}!GSFt8C( +ɰkCL +D8O4hMGpQ"I18Hc,质RKUvJ +> +}&m V۪pOF#O9 ˌV=NJ +'Ɉ''͓V,tcd]۬J0}ȍ͌&zM}XsNY:2~(̺,`Cklf'F5*n|C`zIʥ=RE׷v6Ӏ 68n"uQ0U:\dhfآg󟇴4};/!*!7Š"X$ړz+ɠ9Yn@n| (Oh +蕏ĹTqs%4M *!r@ɦAi9AJ\j#)bz*I +)Z9=%I)8&*V(Ȗf){4"QJ6J%OMšf҄OXIKO+|&i%:L>Ra0J5.O!"H=R*\".Ia$S%0;Q.7.@COIj&ʊ2Q#"gIej4TGz")'#$T^*'% 9?!*aq)htdZW3-*ɲDxDz2FyB$:.["rJш5*&>\TIM?}MHyxso +u$^1 H߄tUv^y)R2:d:^H@H!N`N6uܚXrh!w@xG@L0/~v?_árScYs6c~dB;=Nd + +P$E4CJbNo׀j'tznETn&I e"dAHhoMh8vDJ +h}A,M{}xh$X1E )9h-M-O&D HB I8yX }$dHPBA(HxC{z-eILP'\)A=UWL֟<;F@#f6=.@$<ǐ& ^~R +>G!?)MȮJ&D''0TJ47KD܋rXMS4MjRE.c[mc&i٥6ҤC@NTQ 8ef蘵Z䷒ po"!N"Lp2/D%Hbkj }*HjK'!o#'.@C@"`Z%)H$Mr-a'ꬴ4)B\^*Bp(G!!@=lF\g%ܶfChLV,!@ +2n C^N3:B,9ž3&NN 2a1%+I +GN2!!=^2BNW<"DIokI4AOb^X> 6bO ,1$0i,AHH-DOk2Zi-ɈLR&#)%\e @.lTO&JU%I,g ki̋jV^LQN_DHi.cJj^23 +%dcN.`78JnzGA .2]l#4B1(>j/)D6”CN.QrȔ#+ɾR-ҧ!DNzE2#&"\*'Fħ,g$.B2Kc¹=/RVByGJ Id /i⸢7x- .s6WWL'v"c"#I%֭%"hw~1:'&J~f2|5#&NCnq9/3WZ9cp:jZ܋Cf I,r"'Dnr(Cc)A+/z_ +D,6B\9w^6](:_'zd "9 V_"*̥Ԭ +`B-ԢFD#ԄA'6mbž35gD!gBQPfOl.gJnLje syDBF1e@;"N#j5' +Mr~ge)L#!)fx&oD#4b'2v: ll,(8E!GzpLt 32jpRn/J#&T,Eb3%FbD#ai A:G%aDa(8''hipAׁ.H[3+&I/(r&E7#mҒ0H +-$D+m+JV#(lWgRg'kL Kf6,0Zoƨi nGnɏ$iIv:AECwl9K0Sp֫irJ@K&E (2GbS#<M:ƀ"Q"̈́ +kgYR|Q4[r'Z{Mh䰢b{}g(<6p5@I57C I 6$$j ZVFE"s7{EzUxFX8H3a{B ȱ °g1ƟTnk#gP2v$^UMHP&NFno&TD#DDoB+MaM+B!8J(L HL k}5d@ + ©s7.Bme>x>!1& .vCQ/uvZxg +ph\NРDE` +8fKxL5Bdd#Ŝ*"4=_, /btD; χSR.!0vGPWb +/N5׋eR6VeflM&vry+dGgDsTIqd MDu27̗Y,LGvcMHNE P=7pF._&Ɇ.mQ^IZɶgY$A~Bƚ)b.`R+65ax&B. -D, m1 >!l&[Q기.|+e( +by4& Z WZNp*[mZʖDQpv9^JB"6d}C-mE}i:nl:>6/&lŲZx5pR#S3n#NN5g17]Y߄x/#d,oT"x2˿<>b\yg+PXFf#97G`S(Z^"r +q&qspC諁@Ńl +8~vpXy(Qz-|"~ߪꤢWOjRvf:"d@Y lsa\.x:bnƺgiEeSkjtT!7*T GUڈcU3x1UX\Rnfz''jđl|$6#g')X#'w`\u̳I d2,:EN"Yc #,⅙.&.rx`؁zPwW6=ߺD2& RJ:T(xclk+<)rI=&=hg//ZM.{+fs2)TFrIEG ԙۧ[EW1Y.:™=>~>nc#lʎ,`zܞ!E +Y*nrVVD"uZ2唨#nw TcL'D;jL +kRP0*NpwL7LfHF&j1w4p>FZm +$a\&lBl-G7:p\xS k +Evk=dY@(+K-D)SD.h dmNкBu9}*i*LHc,xB(#ߏP8 +!x}_H +J H?_' p)k~? @Y?_9DИU)ogr)0'0js~MiOe +S454}@x"~`r 6& +];\}S /*srkhU4m]A 9wDG +TYjNzNc_XC0jS#jzʤ"`Kb#`Sސ 0R# DN B05j4ahiP8ªy<|ȕ|J +2W,'8GlꞮN,, +3 + $! +Z5DQ4R{AĊV4b֍ M\Jt/D("z@4Z)ӄ>SUDъP*HП9;HT|#ud$/ 5R ±dEaYu҈:@t3Mt3YLbuQgZGʜv1Σ7ucRv Gicػ^=f:i'=Lϻjs&!1C^WWЈB#I]Ԋ)g`M^͟HyΧl%<4^o L*jL%X P?|#g_a5jZZ&$s=Wh +*F|UkؤmhKaV ` enn|KխϢ@ndB@6s=O&mQ(S(y稌g8M Z8?D:E'~$w/]D7D/,jhKF{g9$2$HHQkc{XU9#ɯT䠹T#%{^K=Y21sǹ"`㳲KV09-$$%,?1EA0p&$eVHn@'$ +8 !-o@F>GkfA`^qb^ bm4gxS +v 6.rF-0t-'t$uk:7z"X7)!s䀘^Eq@uU:pL$"r=EPPRD@,e !𓐁@&iP)EK$Ftݡz"*\Q@aCy@JUU0({A#cx7DS)8{AT QK9GUkIhJb+ĵu\JQ AM:UP?M +ʕfz]X1u^Acj]D ;eXk`W+O#YR.*HI/QC ׶U"P&̯)Ij͡.ժ"Yh,IlwFR }"0f} G0aeUC8)ġ+ehik(#Vf.+jHYFyX{EDȹ lFv+@@67O%CIdP?@A(HG蘓Y =}5ERx9`snଲ:颎TݕEϳD7`!I qL#a0 +|3F<#{-BJ@$ $rR},l]ٶ&%"NRR<yfqoσؔlVFR5n[LX4.W@nRkMs{<ӡGʃ*ިD g9Qd61`>J#Ϛ F)mq+> +oz^ɀO1`A=@*iP4w7G2`j9FJ*}XZTju:R[w=§CX~U*kTAzU̫b&Vz*[Nrjj/&4'Xa5d!|X*ƺS]H +_%Z}B% + '!,YP$),aˊѹ'4ܘI;(اq ؁5;z1XJ +3pz3(OG!4:Q5(П[ Qsu +C%DP3n<{%11a+Y!G:Ƴp +йȓ; ݸ!N$: 1pMY8h\~"DS}Cp.ӯ4D1C覑,~a(ȸ"B2,@Ơ +|\[0a)/Iĺ@ø@ 9p{'(?2< +XY ;+ 2xP"!z<¼ -[vHRȃay>+ʁ3;= CΫ49Sq؇ɢa0 ۼ4bĨ +C +|@z 芋T+HR0 yz+,*ڈE{.e +y_0Dˠ.&H#KWqZq[z*17)T91^ 5R3)?Ny$z@ưG"ڇ( + P(›l :2[w+dB +8Qd +N+ߛ?ťX@M`+_pW>Dn&`_Zva3+):p{ +*!c1SbaV희AWOUڊ!*iB!É F6+N3B 8ME#?bs!.S)$M76 +!s +E_zAW %.X04HFق_4]*b `kC ze?#. ol=aRi΢99*ZaIpE(A*]4R*s9~%mN + +{7íW.-܍04qI(/[HV(3BM,BL-!&ȥVifG0> +Lv.@j0!_k"WСpъT& *٪8&q +lm!){ +-rF ^4Q(@ꏦGPd8%p<;RѪ l ~aC7[ LcilwrNߋ˖#V +u-{ddeT^bC)?@lۿm bC~I9}$rf{u;=ADvj4Aq;raWz@x K  + j AHE[H %d"kq! ߋXz2E X +KF!l2 r,!l#3N6H&bRVsz?B!y^gWUED_Cky!f1t1z%l3=1 4T ͉$;{e>f(‰6~:F`=< +{71) +3O\[)Ľ +3v +mxᰚ +}u0L~?/ <_Pi_tBmǠ*Zs@`H;)0Dg{ʮq0 1F1K0Zh|O d(ZG(8&D珷%@vt8 +pug79}@^G豻eVO-!׳| ++*7tj+ +jbR',{Ĺоir("j R+r̸B +%mR; +: tqLA"+1M=l"P"k3׬(&9 +ɀ ŭ}00c"R )c`'u0Ȫ# +:# +ܢ;+KY "#HMNJ!R+a켺˜HstLʈ4"D/؝;/@ ++|I@ +T%'D@NiᥫI@`\ +mq+2Ϫ|' DgrBQ,ļ~ATc79xΪʄx M( }Dg[]$"w+en,s踫^g0h( /ۡ +{-Cq @ KCu`P5L#~R3LK3R2ꞇ,"?;,aǏsՇI"ڥ1?5S8ެU1h,j#{\L L)+]_E=$}z!Ο*8MC3np+rۋ+ưrhH{A ڒԶc)/ĺEڣY/1;3MS*!wX%3qY,ԗݕjb i#'ᥒ#/+%@ ;"'' -c$|}7.p12:D)tf(̙#)|ȶTtdńE3L_D諗mK*!ǡ#@3AOCil񺮴QamƊ9@k%^((8ԦߛEJUiO9/tOCM@Ky%)}ISLLĀ2=& tYk; xFR3 +@Q^qa=S( i7z}S=@4T%.s~Ғksg1UERp_$8E"Cѐfr h0R%TM+u4LT!*ܵȉl`Z4}+4ؙDiWj}+ClL,vG2ezͯs*s+YGB.dJu2P '#ާ̖Y9EuP tvs&IApR ||N9b %2JU3Dz`qYm\Aޠ:mӡ=|g$RW\xGKNx0>aa>p !p so?·3{quR#{nLa7>52fT#zOQG%LE^Ȓj9uddt{5jclJbw$u@D#Si)Ko6%f~)6o2B5/c4s8Iih!O +DԐJC'HCZN")YQ @{ȵT|,l<6DhBc\* +إ%2ʢB(25J9y7/df?dDHYnS*.-pɆQF]M3kOvorƺ9pXJHӱG-ԭ?ߠIp  +)r-=aB'MWJKt@W+o + Dvrd*f>w9 qv,ELb4xM~,{B)܏~ٗ]`%DOc3y0\hC%^Dd|*E-FOr=@guXqe'#zUK_+dcLj\醌cVbЙMBLJqed nJS;F=wL=G&{C/RЭf^t~۴.(A ++I`$@:]g54A&߰zZZ䲧JdvjtTS(f{c PWgD,m +sɒ.mD5򌌍ŏn,"OOzQ`5hȭ`& mH`er7-'8ҍ8;3VGTNN0ʈLZ tl3$KB62R8:#wO2'T¢l%1 +8F!)HC ֡M۱IŢ&vFW +W)+¡pz{(($&bǞ(:3!茝*6*RlJf;#Z)"B,$j9k#440GƵD#08^GHF,`id4(E}d"tOA0ӄw"Jf&b+)*/0KdDR#FBD5(xjC&QhzgT7FIVtǮI^D0'B'̺̱>^*: jcI + HEEKc< +0mb1DZcu( ɧn"vrr:l~93&ҟتj'D4pCj8!ŽȦ_v' V<P(I0fj# +KI.)"'%g_Dn<ʘ]LDa$cob%DnǬrlB#ӤnM=ݪHdNP1*z?"-!b{6LGKx,.HVkF|~3򊨒>ð4>BRM&$@Cbn4a&.9BfO|Ԑ,Hjq #,  Blbo$ &/NF'.\|Qbv͆6pP 0l:$K$xэ̪`w"%$p= 5PĔJ"}Β1VQH}10~ubbM'FMhy5g%Q*SY@*DN&n@2)& +Hh#K> +*.-1=R;hdh>BL >L& Ԟj-'dȵwc~ +%ORPlnڇS40&BBDnz綁Hy`r3$#) F&'X$n6hp!̧{b" 9l,(*iWQC\$jB\chDe>" BU{ZB"ܥjEQoh4VC&BCBA=B,$LtŁz.b\b4"4 +>?x$np( +&(; S-F.vus?r@>R,Hhb?B$OGtB g`%d'aorrNMZP*u,pY-bPGUD~NQUGE"G=kyc7VнbfgQUcw,nxLp"=U{18t1.|{87*YPӈڏ8*1ɦۂ.tl ICQq +b~,,HHȤ{J*_c>*Cd㇚dOed]9ZAxh@c"ܻԠ7Wby^pFH2Gmo7^mׁH3Gn< {($2&oCBJܸonD%$c('D"PSQ+;W-It=Y63b%cN:m%àld q:Cfo8 +u1Nzj +Hl@vMR0U14<]B/f] U b_ T8"Xl'ay +tECLi%97^&YJ%oCa^&mŞdhHbp$ A|;(M0eѼOؔy +$`#KR0(lI/("μT'& +έ$Y+{$ATZ:NT:uf(-[%T2Cϲt?d#|G EyL-*P'nS'O&=v*ul 2\J^Z*&0AZF*:ׁ+ Q+)@|') +֓ |T2Aqg2 -7~b&95 +J ++`SJ jZmG~$JDŸ:c TԑVNAJ.}ihZ{B(H1g휒!+ #UD 3jz792@{:"Ndq\8&"$ $Rz"b>Wx-lu=X*s@Q>GXchрDO8fD_T~1UL?0+'ehZ@(NAqv.#h 3Y 9)&ҹC+Ѳd$~G$i ipd_姡M/R#G!9y|䂅PM#Nf9" +2CvbDu\<-`5 0 +;vj,$|fQ'!u@)K,=*'X-kqD>je֬|֩"DqV`-:S|XMSyS&D@ +'v22A3yQ}Re),M3$6TPdI*tBw]pXX[2uM[uJmV)"RXb>FW͖$D%y %$oېهh02 G~bDf9>Ea%FMnG"`s$։|Le>_}-PYsdꟕH*7%RGf +28Eef, +f\5ISʎ\6$J;x(Q0x8\dنylHn8PT bMKej(򛉚fYiylDM3Sm3-D$rwj&*ZIZ>v߂t)>)cQ-Œ t0r4k(gh&M#odoᔋNBf;lB/]l.vk:R4xn"PrUqbu<]sCh\4-G ~,YH'Hc!p|6S(Ë^m}S.+Ijb"cŜ*W@VyB%F@٬0}COJJLW-ړa)=pӗ@]-NSDM̢PH""X778Z=uoRQ@1,\ +"i5huڜueF8I¥i^(< +Qn\%jҺk<'8 +)/Ɣ0B1!@YݱE.8C *lI +p + !Z@ 8R??e-a7j? +es)8P +AK:lmԦ. +Η7b~^/IlB"EnQ^ # ۠J \A<#$Y^2 + ي +<CDa 7& +-ש&b +hfLaQ Ire1sP19:m^w"c9>p K昣,(%Igglr9`zZ$l sٶ##Ҥ&_  +V9W'$-޹/%AҬn"kݵ͌錐& *ixѣ;htr$ƌ 3Չ6{%NG])N~ʖ‚jLp_Gکh!;Rvz˝ϵA8FPlj[˃Jplg[EoXjOB,ߞȂκ7`(G[X@U4$m1 +$n( d;,)ᚌ~>o02A`a"~E ~"F8 +% Hy +~=p0*i,r }> RkX^yd- KA揇0(:*:B*Κ|G,-9z?L? ("ͲN@׻ +# +L8'~G*z~k 8'0'r $j"2B n>D%}Ȁ**Rբh8V5zҤɯ S-APTa̫j<ǎ YյԁUoDT,b{P!+o#QUU]DqQ!772q2<ݪɩGnIZ s$t-(P[PoSGu +^RH-BVM%&yZ,ŷZkߤךnz i"9*lrB~T4K]ZMجEH/$T{Ֆf6M 8XyUԙi^* +gKS!"4c{W  z6l%{\Jࡇƚ29HMp(!Ȭ#; #a z0JjyՕ67(澛ۍ,jdku&.Θ wVGȆP +ۢ%fN +`'LHb?K@"熼C:7(d$ + ,x)`7?h}6O][px{~**S +vķ-[?@80Uup`ge%4[Y{Eq .A$ +*I n+x Km O4R!x?$܆'aQ16޸VŌa"%HEQ4֙)،NRI!nɉ@8PrY#iWDje>-3a187<ЪsY)vsD0~uSY&KQ{!3&\KlDNRQj,u3QȣnL[$.$ TL!`#˙Vj>ꢣ_^F%XxF4X+7uƼ1cQqV5Pe$U1\'*DwR7hbWmt + +WrgdNSod@ #$oV^q$\H<=Pzx:f/+EԴMGՇL^_Z,Q24_ϲnh̯L ͖R?)_^nuv=t9gLCcN"L)o{h.ߏ:#oI9Ч&l#04`ܝt6%-ZW>&Լ-ڲcBT>X\AK8+'DnYfME8?@JR6=p/yI)]}4QSx]n=kaf/[i60pHy$"F7q2bȰ .&䜩f]j$gTTk@ӣ <.攇E狈ltjc(#}3 0&&d +d~B mL.&jfr#6dЁPsւn +B" צo4RLw+0@#tl+c3hg:j1G\yvh}Paz~N,hp .ʘLaD + Bܞ$)a 'pS=") 'j(8BR1*Jjt%!%+~/H*Hu"R¬8c,8%!:"UO%,EHUzbsN'""b@d'cB"͊` ` +ↁ ^jCº"#4+(|=J">S+qN)X+!n?$ȝ-)N C-z,Ђ4%(|%~P`6TN˄f.=VGc'EkjkoobXqص. `i/DfnVgzB.#4e2]Ɏ`T+vsi7s8bo/gPGR}4f*s*C(NƄjeHfc=0E"'i*H hDoc,hX*QgdU,voP!k'Er7$|8d<;tf}F*&"mOBGDDo)"JT O"TJ(O,%O"01.m3?B{^,c(=WFsHd$kFb4|) #Jxœ!v Ը>O!O66!b.E@$H+>F2z&8ԛ`c$2꿐7~v)+2!<OЂˠ" +c%"8? 8!(nT*d,%6.@ b1f.m&N +REiUrc3b̼&Fr 'p35|b+^"s@R$v+"dqu$iaLfoTi0P$Ń~BnE#(\ehvY}d}j6f|D;jjdc;!5'pU!B",${Ա>dgcyG*俄h)Xd'4`b+f2hfBF+"* +0C b>0;b^(\(bq +:r/#}Ɲf>C@@D'|4`,q^ M +"f7_"+ 4;"?R c4 +mAl+->R(Ⱥ!8(QS>5a䐃◎uYr+e40I`ַ(A 謣bb6"A-]V Dd,W\piୠϫ$i2LRg!'Gʮ/#A<Ђ04'萤BdAf(@FD +tB8aLYҚIb YDڴy8" ~ɝcD,rhvqD;īc~#c\$-HSZBH:Zˎ~/tw+v(Tz!#IWqwNOH7ZWk2lJw6ۨW93O:4sv{JbL{s:%݀ۦV:.` p&Ҕ,cZ[IlOZV\%{:zsЬZ2Ȫ#/iJ3_joR+5oX 6u=zj`B5tiكA%F3BK0V__, + "+HI3#,GWfF*!X(|2Ah`v|N~"Bg=^C6P`f.Av8 wW)ee袒kaT+o_$ZDZb zxF4K2i +ʦ$Bc 'H?_aZߠJ8Ap9Ig?ouYrt)Je2m9 a!3N>9ha :8pSCJP&6|4-UT +9^p +6kDZ@oåRg{MNh 2jG|>"! +*ZRȖ/+!Ȓ4ĽR8 $*b"}gğj~~( تn+&1%J$\Bc +ˆ1D"۴H鬘"Nd{d6 +,\ +4qSO<$Z~-"|#q 4ȧ9JnG|?"8L#prhn:¯? ;Λ`CP-(Ӧ*ڟYAO聸U+'jleQ(.P ʟ4{ƌ3xDd@K:u6{ +fi|r2ȪwPQy +\@J`v/nv0̇|"@>,wB^U*8zǹ +꣏N׶2[ua˳&Lt"2N*Ы(:00ȷr nW,:lpiʄpK)&d +(گ)J /,4QBC jh-[f|&ˤJ%|VܵAPnT)"+sjbıh,IY4>2( + a +ʸyNJvNSIL7>R<8Hj RbqoJ*6༧gFD9Bӌ#$)0Gɧv 1?0i@`.2xzch#{QU*Dd}GD@KIt:f,QoRd +H.ऒ@+YA-P rHAH9AVS!S\EIBW PYeB*s`Q2 B4fȌ" +\sHe?L5͒TvG3hr[t4OfPF(bCX&FD@gș2/[(=)I%xHF%1F*RE H ixNHSC'Hfi4dبWQgl9FE"Q8L `&(H GjT('^&ƾ&?eQa*LP=UU &dh{PO!6!q1BtzWVe y<8p \)j.mAƦqkr3ZVNC'N%bC$H-. Xf""1qbNZ5+0|cbї"5{qшe>.X"cmiD(7v.\p 5<_b]*l|[3](?oÉuk!$ 1%"f]i[DN+sciW}K-T`t7 qq8@Md 갓K{( Io) m޺bNUZDBqIA'a2 q DvCOrI|,WQJ$Usy+NV Rr8iS 10dؒo4O2#8H뮹=OU!2"b^)FBk!V9XLϸȹe!+b*OL=Yuϼ"#_$%4Rcy! +IܭR侇ǧ>0!Z} 0Aaɣ +u@[e&0,4ZՌZdƹ΅PiMg}@0G}+VI8 akmgpK YVֲxIq)eV&V+H*i~m/OnmP]T.ݿ_'f`YD|κ່0)  *19ů1/#YZ  ȘIȕa4@3j9)? +f d$/QJN28k=#xgCP{:)ܪŖ!0<.$C hΖb=> @ z1x) +iP +A>%s" ؛984Sxs?9y3 P T:H}ŏQ,b豳5 P,Z0(= ї!i-  P(m`*pjߖM*~&qQ" '` + ZE0rY*bF0ř9( F*4٣y:j>~'#W +K}E6"ט P +6&:i:7퇩CM p- Ġ}9oR3bŹk*)4^(̋(C"̀51F7Y<*<z ݻ@93G !F`<ҹ +00'Š; @?iK>;8(" %$7Dj0{o qxX#>fI.x9*3*`aH+ S0 40Ak@"A2̢ 㖃53q6S 4@H(;s8S+qZ)),2L"#* +fͨ'N2Pif +A +&WbV +rǒFA@G?RM2@s$K͕rKr - ~@yV͆[45Oab/rT!.2](DwA + +kIUQR"UB]0MPGh*b@:HN$$%7ÓHŚ$mœOeAI*uqDA7Pmcl3nLiBI|91規F5O*Z4ЏL?K:DzuY Œ͔R'hPR٣ŴX̐JbiXk4 A$8'i 3j*ɗso$I2jIȫ:/ WL1 ^nK1O@Чݦ!^`Q >=9md48+\ +iцM\({ +Tl-P_hz"@7 +k Y6(֘qB[ MYX!1*[n[zͨo+̖۷\X~-"G[cv`4a~C~ZeŇ덞ۘ2zSѣnk!oWB ?O|00 ` GPd]/K"ObN$0[3âS5L&!OQ3z` +C)F#,4j6'ATᕸc<(YŲ[K9ŶW!kf}j +LJ-ݪDZT6ZMQgmuRE`ͬS @Ov4W39"ZQ+}D@]߰@t&]k8`c3}΢n\J:3Gt7 +د { +bƇ)ö?$>{vgۀ}"p +@E+) b*g*},d>G"8 0 H +ɲ'&*$?qq9L"*C`$hj8HTקJ~6("AhYIK"t7R%:( <Ѝd "7ɭ //{gՃF:Ct (~#`&&pq,%#=7 +$}g Z V.VGꂟt +klQuNTqQ~6݇\z' #@ ,~ ºL  FZ +|ur}6)rZ `J46-Z}*.'Bzol3j&!Ge  |3~װ"@#ڦ%a\ڜ}g&l,/ +0 kE4%Rc +al$(HVI7%iR5z[:W1Ԗ~NQ1LbnR@Ėxa2dǝ8|i +XR:> +bdЫfJ!#@vaY*z5#6Hw$r$縮%ibN XrŇo+ ܴ%-J"y)Ѐڙ:8)g%< vHB7 2Ⱦoqr' DC2:{ +x3%BL3pDH#pr=dHM#mxLX) +%(G:NUp"xFz"$%=,?OS*brI F,Tݗg#v·fH$ח +FQ8B4n18EaV1ʰ AQR^hR -)zc-iAmqijRnckܡ+jLX"UK1JR -6LzlZՓU()5SmQs?5}yeC +jI'[Z"sPmX=.EˡG=K!q>NxI~}Ssde|A;7Y948DȨ{qzȊl{dQ@* Rۈel02$Ph/| +xH8'2Kj7X/Y",~QՕ:Kgf BdRo,$_ٜ͡KȂn(BV2P2-7iQX TϘ쑲FbPbq4(XD\ [;e'IK*(0"]QMʮcS<( + + &PmU GyOM#c(u8+E8JZ%Hأ8 heE&\ӲR2[hܑFg *C")\?jh9dRBJ`"%j^5 2?-.SØC"*PF #`jj>4Fx'Dy8 >+Tk [vcn,x=KcqUΰ@⳸((M-Afb>Y3 \ PPRM&2Ԧi%GJI , +Zg.HT"DDNkp6x*C!sB +ܣJv"v8iN)J"p#leIK H VF*?wjT%QBlLb$*ȔZl4H-V? 8 +"XC# +bx&$`8U]":<[&Hv"mh)1 O>^hx"TDm/"VB EeQ皱 +,C@ 'Q;>b<\@>%6V#'ZÜ;Bge#`8+?%}F_4:x %NC+k;`窜CRlKYCj3T%7(~mR-d2SYL/L) O.`f'ωvڢGCS +\B)p2NK"B"Vя!Ұ2MQ[yr4yJ-Ɛ +0 lSGmIt/E +2NKG:A4,A8Mt<\Gr`X13NahZ4xGHDLɺ]pY%OWgeC+W~CS6 +,-ΥgG +K_<& +_+/cTyg$!VJY(׊%'\Sg ڐ,ET*h}.RFk=B{#;i#/M2hd9~UՄ0OuB7K$YCHIiRyLo3:KL'`#HIRtj%,烾o3iS` *( a3RoǬ$9E.-n:D囙:GXǾ'@ \ t ] +G28+ jɦ:#a +!dC,2] vhiN4 +4 ReHRfg€wd(#3k6H^$ZdRip*ȇe<"'!W +HL%^8]Ĕ 9ȳ  @~AP}8Ap'P~ϰ@MP( +?w +EjK+?dq g4pD+ +>OFIfD37~?լRO( +M沘w|g`Z=qP]}tFu +zG@BA\ +@PLY#r +@:K?ŽSy='V~_o8 rToY'IIOⱧ4o~ܩg h*?g|m B+"P;븫B**:k*R4O4@ M*ʳ yPC +FI s2JH(/lXʹ*j%Œz1 +ǫ@o8.RdK<%)GHjCCs^lR,G/Nj10Qp‡ƔUS˱ĔN$)˓atLwY"E2Ԅh[ $N~<:qWUD#FAv(♧X}*%򻩇ڎԐ +ue"(F(X6b%n]a:qK` \[7E +["?agU%@N&6إcm@"v.@8F>xן}JAm$Q˭-7֞hvd3°d&#!8=RpOPets BUʲ + 8{$RG21L&񴏑<9%DjmP@ή Ǩ)t],0/gAHF˜-K@HJO#DT +y!0܈.ӃO4i!CϏh )H.4XqI1f.`pMt'@LB:!jFPLeq#=Ǹv4Kʪ:4Q +gC*m?PՊDP)dg@JbOamҔEphi] K(U)E\L"Vd>0DQfiͣ1 ?ZK(9GRVC̵R@,Hh"Q3$ٶkd2D/Nd>dәWL9N,SHǔhJ k,TBIq Ki 2 "E'hN:Ȼ0)t@W+"NˆhևjЎ ̓Q*Cȗ+$Mqī}31) +{QىP˿QG H#( +z Cbz$t04C؟ؚ! VKk2^s.@>8yHzGJ88٦jt)+긠A×CH<>8()%=(z# +5皤KȤ4 +I!ƒQ?ZK2,=WJ I3ۺP b' )G;L3{)-n oojH+(9^BB´l1{6Q1OKODbG.`*$z|2uH s·ʺJx;b +S"(*+'0Ѭ-q Q!3aHR>ˬ Q H? X\;KiAz +:ԧt`#@ˈY +hH5ђHɭˆB | &aHRDRG)^:`ɤcH;= +YtI,0p117qx +܎u}' tljTЈIt(%$b Z3Ԃ3r)c[s( #KNf|Ɠ⪂)䎣xڨZŒqOC:Ra G=jh y`7D (J +qRC*Nu/ +ѲLy(&=Յ P0iGMqL9|>%K2<8(EN-K 2XH$HLԒJ + $q + +慄)~#'I(*):K 8s0q͉ɂy5Ǩ2I0*aAݪZ A"/H3m#QaY"o +U39Pfr]<Z#04!#\Ɖa>ЋdS+ SR[:..Q"ҍіڶJbv즗+ +AJ``"mS;=DړY:ߚQ4qu> CQ4N~\fؐ`zG8a ^+mڌ/=zICΙXb5}⑓K9j4рщz0*pŬ#I0a \YV +=Y,]c<:3s8iIY[Rhq1h} E돤ĺk?.tY){L9e0A:xi ?"X+uA%B׍1>\ܳ7@E{5GU⠿du9{S\]?i#:  ca5/`s;]2pbS("BNDXC4./Ќ,-D %x{5` +Nqjj% +l/睺ۉ8Ǘ1ю5kJ|z9uyk +2˝'~>AX҉reb[CC'Z ;)]1uSCU"j.ǥ˧k:7F˕p M"\Vg + H3:R7Ϙ^`={͝AS^ɩ2OD$!2Xq<2*'d!L6bGzJhvĝܧB)8ԃ>T[:?p 9Đ!DНԗˏ@|?o[@@?[A`0( &0Pj4~M +u&ţXox,5EQ`%zRhR`V/~#u j@"d?oףE's. z'BꐚXPYZ5* :[D~>_zmc`\\M'1P{䞒W2'9O81z?q>r9AUhWiH >_8͂? IV`, +8ɣXJO&O=9CD!/׫j:9]H'5?%9덚D?Aasw%NCm_;ai+=nSH9A+-&@;NP}k`AgK*՟褨 R1*rTWD>9d4H@)dեNX"t+'$twGCם36J(fl?>M&RIAXneI >G^%%]#B%# %s +Sb/]XPC*F49?%:BIF鈥 s%@`$Q?%&4ŲaA4#͙c"cJ]!y)%S2$H~4H=j> +t\I ®Z3h+H+uM$eP#[!C!)ai9<PjQ#"EJXy%R b'LL#X>1>#fJ*iE #"=K1ő,QEL(l!LIv4 Lq @32#]Dy^e ԕpI5\钲\rWQx$&V\ +2WWD*KzYWdI +Eu^VDO#$LYKaWvGxԐDZX؛mM*"(&1:Rry: +NǴ,ޘ +|aUR# 'XڻMճH[:x |_<&#]D<΍ב_u Qd[7a-צb%e6 SŸ780m9IJ#[KAд@Nk#[+EB%"]m$9OD}VZrDj*Tz9$AL1Kմ՜b>%Y4KФ!p(חb @!*9r!G $`Yd$!flS @MYd/Eb/ ظ3y$؇ +I,BGjb-O ډ\y$irQ(A7w) +s!ɠK)ju@1Ƽ{+]ɭB32mKi*QQ?ɣBhP'sDQ=v'XP +0Jba=aӜeؠ>p@%nKf}Qn0&Pqzc?b.Pnx0cXsrB5Rլ. د" +܉5Vۆ?^T.j| 4ƪk",:%ˆjDCfb"\Z*D< 8F p|De帏k-cj +hFm#upHɉzVnPHF`WSh)D,$`DhtLd`kWhEj#K≨QhE4ł4J:Dˬc,HG!fN_+16p%f"23k:_BŘLQ7h"hH2xetk$Nh$GBVЃuF5C(\o<% vuh=hࢨh"$ASBk~%$Jc.^;($.?@Dj.qdV2V &M*6 d$CVP2.flo<=B"ev`^mC*$09bV2;|Ofd†edqc$"j{b"oN , +Q.C$Cl3hNTHbhưTB}qLjЁ +]d2oczVi##~H7RDŤ% 6Cf8,r*n(OG@|@b( W/E/=h EAB(IDDhShl(F\vt0AVfX(͝4Ġ-Ga e;ZnWmf-&J51<ܬ6pHd*d# (N4jHhC:pPcR!,"O1"+⌔>M3 +3ڞ%Rb&sGCH(%L!mcON+G=gM +p=M螁J\s;c^,&)xcցcdYrlJȆ$M'J&I] a抃OjPHbbvW@h(4\.r@5&hX+hD,qaM$iB/ch̆#$B13j Dz HOM"/Eq!qVOMAΐ?iA50 bj()di:jn^{'"6eOR%x,):"]@*~WL]ow=]o~omPG? gE-̀΃ [R@64_=ot}C/_O*U 8Qlzlr3,w6V[8Z֤/ \2HhbT{.QGGc?FEēn$$&J1򫨃D:hZF!&1bNj8kЖbbpcʤCԾK3HfbN-%|&3LsI:C8dU.B5frN=v#P"rcH +bT\Q]JhzxTPuE¼e(Y#>R5f}ZB+qx!scM! ggr +4=迕]i DGbD!Eҝ~RDN'Dfj*rnD +vkt) ΃6YCSin:4fMq;Xv 'J:nD~hrHd&B$L@ Q6gP)"4ƹ?N\JE⺹tt:u}ƣCxEh#8pV +#oNoT=#^=b"Bukqd:#Oc9:U%UDmYneļwC;d!=b8:*M,e|Ow%'(p*Ybfo O%QV3Ң>a%ŢBWc5<4pc%0iF9#&>*cj/$HxrϻMĈ#&Ɩ`c@qey"xn܀bICco(ɸn"bg N-c>|cYR?ߠ30d* + 1Hq49Wȣ9d=¥LJoL@04$RWp)߯y^Q 9IIwzLN-zK]J'wg;̞,J+&o֥q*Թ5/_z#%y; omߏ(@5*c?/{h6ddú}4 ƾ6o:Ь`". +k, ;F* +؎"J"rvqB} +NK|Bڲ-'℟ ZQY}G +~3˫Y!(.'-& l O$j!Q0{## 䄀J\I.&H2hW@u-PA-~OgO +%C$㚒 h["Bs(Gڎ~L&+ +tHՁRܨznR,<j]~ +c!.$l\|qFP8p|ްRkd {$R`B\g&h[$}eB{*(9Q I&V`P>IU9VzOolBn#7sil JD;w4C>9{._9ºZF.DAr;U4ͯ"9SOz9łUI;&~W;7NCoO4KMgbkOm'oR7*( sv#0$_/ +UKU6R^Oya,R +Q/=ܗ4y< fbFLćrrJNP7\R$.tѱ+$y71>b*AiQYi..ZHe7P@؎K! Gq*#ٽi18̔R|SDS7)N&bmSJ,4) ,%*1|PM>DzBBZNxLaM~LgQ3ICc`*KEbT>H,}CHXG,0s׊55LeQOiY(rc(AF&:BTc/*CZt dɁKN@SyJ줕  ZBaGPC5LinJz0DDQ"gݪ8#PǛn w6bV(NVH6A}g@?ʜMCM&măd|԰l|S8${`2?UH/`{yeJ7. ~7f$:0/U%$hC%umA11>)!,i1uO]ăKsі=ND 1)̹ Y*t4ż] #MZT yepcA2 ʰ§ +ydgK/?r36EI;K,҃O؂0"g޳2S(lY$Pt*݆h9 +.* *$FF+QD}N[ji# nۘ([Xu]D`I9RC7_K(y=(&=10D(U"^ +BT=.JI)4%HKEa/5Ek,0'IThc4+;\36CD wt娶!vƒK:[7%@( B |^~]ل#KG#OaxMX4WIF5RFi SSIp>r^w#пPjIlѵ8~5Y Apx7'򣤫&"q81hRAI{" +o +2? C +\¯5,*NǪH@7{3+0jYxs I갻)2!p1`2# qUSXTS +3;y#H0ԮpBal/6 +A@"Ƞ1$*=;1 H +;:h s?k џ8 迠"D(h+2IGT*͇n#:bpPbB2T%j9˜2ڭY2- +0ƸHDAb6R +$ZT#*cW63>1ZTDA#*;Qy=Q%`MiZʌz3j&|9-) }=ڽ c )G#.B8&= ZH9.k,)lr(~qACf>35AZ:бs9M`*)\a&y;`00j6%SBw +)*BI +ũ 3?hAD, +bnhLɇ{z.: +DD@ +A뜡sO˧CB +  C +$$9UBU+81 +)B.2%+7 `݉D JC 2-2͞M $ !Z +2Pi#X2K*0RRD.BH%>F2S G +EMX>t@ fHA"=aTN5%t$0ʌFܲ*НjW/`3QU& xϸHH!^UTcuA@.nH$1o4$w!RB6+4 ykP9!(B\!2* 0  +iuIBFam;<"8Ś90z{9"\D回@:6u9K|@*uN5jt"9\]_1)`I.PZ+"KN +;HԺ{ؼT>b*p0zx@;Q# \Փ3g512VȮ zA%UBH!s +vj( JY1%cZ1Rd^ +[0S5ASTz.]%juA 0KŠAS5BZ=h˭%B3*,%|R]V@&W˽2*,;nˁS/ +8Cw* 0U$k +'cI d+ܥ` QD&im^L@V02NPmaⶺ2L\- CE\ݫ[Ƒ#B\hD]BF$ !-HBX3We~&9 #) 09p49䙀‡ѱ^" ^5Y$Jyğa 阮@C{(0}/nQ$YigXRT=B~ܔ#=.0{v鉚 Qg.Q *! +HFk&إQ]!$7) i0{~\jqiЄ* ?WЕz+T&QhBzX&$:%26 r{RF$4; +[XCJS9;Hll\(5 + v_*Tٮ~h9a2*`#%\ +x/z·f^f҂^ ;`p{ 'yŲ(Ԏ[q $&q nJŘh`)Q޻zΒa08? V~>PLL~A+={;d@W(~@ioǤ% Mp,l<}R@4$_njo*dt(yy``8++_׳L4  b0 }ޯg0Lg\2t9PZ sn]3yz_z2ڪ&O}:]-K\2;oR~`A>3 H^ bA'k+nBBO k B q +~F\! |϶(aD.02+hH?,F FS"S4=*4Dr P¯R4őZ..S)|01  .ۼ#(P i}j2) +|a/]lO #K='g$@ +" %*"-H ?Kң*5ΉE +"Y2 R&ʬ)}ά(1*cJt'7r"0}_yްu].F#\}2lF+s}m X,<9|\h7\i:T(ZwIJ4jc(2G)(e/? 2aw7&~;+sXJg"Q1ဂD_TBc|EVAƉZ4 da_6*txV_s4HhǻYBG-x8BQ QZ's6xq'@,F~A@jdzIH+@,B*ڸ2/7`\J3eL@_X(*ݷkNr^ 8B$^ gxӆ<&௱٦n9)B,F4vvO<)rҰ*/eD L,\*ǎ\C@AVXIʕNc4c|A'14wU +Jvp))9s DWh̃Bg XU3@)Q銐)Lrh"5-,Y-TIٚ7j'aW&aInћ@%L\qD*0,dZA6IBH +}@,$]#c ^)$eyQgCJ‘9&GHSD$Hlt +e([ BH>5SG]mP#pQ냋#RL1;"f ޖ3~ F-Sx(gT̺Z#GCIUy3)$*!eXZ?eMYD$BnDعG)cH蛼oQG%Uyi50jVCƌ("F|[.@9`u'V-" *0s!VZ=԰dBSYS2匪NpC'aқR\*cұ=,֣kIPHNz3)"ҖF"쪹9Nn5nsLFq({SUutԓQIFIy"dUU]FItFڭku1J౮5LH¤^xl?ĤyJSsMQlC_Rɠ$mxndrҮƞC"ڧZcҦCFhBI+FD! +vC:TAen]&d=*"vj5'x2L8" ΰV|A( 20zRԵz^~IP¢)F#r#"ԁ +8.fT3%zBF*Jb4fB.j^dAWj<}vש`*T1|cTbj#sL;ƀkQ#d['_$d'e0~(^~ +*HiJjFGB"OKE[}@OLϤpn Ȳ!-Qg4CX"":rPPE;FF4(\G"cceLř +D)@>>g"b!|^-"JYN +>ER"?d*,p8xINuB6K%<@ +tK=jd?cĘ%@j cEo#*O醦qc'6"Ÿ<*2/4A +Cc$D6FP@TVnZBD$peHP>ďFdj`rqJ4fj W(d*DqV [%UɔT&+*WGa/Jbc&;itƄưEYtH%#`CJ<:,A P:o.?fƣ:R"Mo;jf +jB08je2B!nb?Ok|efJHj 'fN[v=^1I_ =vҀ?B V2z2_el=>w,4%`Fcԣ# $S(lN 'k,N2k\W6mfnN,bx$FZȌ QMԄr'Jv6Α8R&vʵ$4I,/IPP, +e#*iH&h\rN;W#҃)a')3TBRPKWZ0`d+VؤIaf&o;68FϤ+Y.nPR%t^5?$dei<,2Eq{'^gA)B,oHF0cl,/(C'p-V"'HpMBpn"Lei(E`JKxbq +NdE)G##5ϲT!'J g*5/{"wbOFK _@Wj4^ouW[RHR`hB"sv|l 찅{DbÂ&+ĆKE03IS$ +6$"NWzljLˀh0KmUxV'% +ʥa`,x\UˈT:iH^.eS\ܗtc2J.H&b.{f7i.ť+Mkq&BAq j$G&jhj-gAB*fFO/:\6/~C_i~g,e-sJ&Hp\gHAP&pI^"Dƣ,?(% VChjLK@VIS:LT 8n%JS48N ( +hvZ6DT2˭5$:.gdnG`v1CT[IXx679mI/cN2oK>y)o:!r6Q5.").ySv.!ckC̰6rJ;WDH$70O~sJN^).g8q7i3L T +|GGy.AK䅘O +B6p_5-"Bb{[\JnNGc&V(5lpaS8#*ByRș@MsT3Fpf`KM$@O%(iQ׎C@; +1KLv5拄6̊!JaewjC Q*|QcJ^hb1ayUoxƴwD[ bT)ۗӚn +-'|,ݪ_?h6yz!&,$e +LdtcJ۸'YUD]J[Cm +6&sP{4T99T\S/dP1;Y 0KJj%0q2__N9J`W&&e˃4ju`78}yqRh YG[uVPRj!Erf2D=Ab^ù*Y+R٣I'R&G؄젥k+w~'(~)['ĖD +It)zu&"WP/NHV7[%2C<-5|#*a K6UhpJ.^{/8/ SP +XPe(H:F%?dp2Iݥ$*,FŴ +K=Xs;!fk4œ_Ž.+:3|'k"졥V.$ +-ÿϳ=Qivf#"_)9 z\AW|;>.3l0#wm ZbgsVΘ(d!=R$S*FL-; `Gz_` A@ 38~o P@  Ϸ"``_0~rpRO@J{OX#-.?`: rY*~pRtEw3=be{ j mȟ'€GjQɋki4ܮJ +Ei0Kn NKv |ydVO~/i^"(]S̠b߇B I | +P +"!+̪<}Ӿ $,C *KB!)*Z,2JH@! ܏o6ã DiRVBR +h&N?0IDB/Q|8'{M +I(!km CPE+[AJ%%8T*$Nz,KT] TP +E04pVLVT +Z(BRJUHXFNj;Q\HRڰD=m_1MLD +RL=8+r[PEAjBTZD2++ +0-184n~찟ܶu%IR +s([2/+\lhFe"38I"d?9K=\IaS5f S +:.Si-~bC¼Lff/2]Yr7n:in9KUˏΜ#Ik/ly +C|Ӡ$o+>X#6bP,J\.І[2R +W@(I ⣋ɶV/ *GZyH{NЕX&&Lߙ.s$~N*r \@@JpS+B͏s 2,5">y^: RXU# +j5b> +;<+I&1 BxyF ϙ1LB.uV#C +Ή!ln` p&Db[ + +9b@>(H\G"`$;~AR9x򅌱IH1"=Μ"R;(̪FT~3s/4~3 <#A r\H&x$nlO@MHi]1f/&z8=gH  8 += ĴA'\ s/AXAmjF5EYˈ+iMe~YKz]EFQD[!T*m}`QMWyX,ơ nֲ Hu.e+h-NȵSD#LŒZ:'!p& e2]Rx]W7PD8M"jmAaS [a\S̙ɡ5]˺ʬ흝5lb5,1F !C^JX%~#)r7Pen䀴p^,[7-J< ܶ mBmv34aLNL[Q"`6?MYlBsTswI]CJ68Պ" zư@~dz9Jz,Go|/Q>82xM2U~.VDvneɻj uUeS%ohJۉ[Sp@fԋLL(5oPDPRASi":#e|m3 \ > +R~ +8S%KI =R),*_JH ~KdF/T!Ȝ=-EV P4L!o›j>IQ{CoS\R2hB>1&u!5 IgZ6 Tb}eK c"S{38b=9>.jDdJR懡\br4X ;. ֧ K/LTwt +<ꠃXȞ jXӗɀy"Vǔ}Ҡʁe@DHZ-*)o@:/;)0d hAˡ&{RZ0hE,:uY) +kE^5u|16*3MҶ[K]Jzy-TEK,dk6N<`+lvZWU_-dL/&olQKHzKyKqz=F(M#KmzYƻVbb WZb9S4dLƖFE( o{<ʟ"h#tU2cԭ.,>HC= 0 }8M +A 04!CE0z70铒7{]!(_E3-\+&!lFBFK**揈| $V!}79 vD! +zP[ +)Mp 0.708p󣔈 +ٮK+IRh +HyBॾh{뜈7z> B0ɐ෇zyBz @@|SDa)+.2j*;(0>** śjqJ!AB3yCfEiSʡdHQ6A%{*K;fIE3B֕SDs)r(:ᅡ9t +6M +*Vbb6+ð)Dg+&,CϤZΝJpi|"J=ygZ{ # +r|0و=Qx/MB1x@dD M?"K NMhA PPȦu:MÐ0`B )y } #1J 3I#C΋\23GŎRۋ \ % +ah>D+ b%L(,x4hUCk[}'@~@\yIP8YEL"쟚 +}34/a, Ӵ3׶e9 +[ +Ё؜I[b8~@-7xqF=B؜2ӊ~=pPa#`J ~ }6Y#y n 0}8ҿAabiSq eJ͡D,8,3*(Qs_Q ϑx1;g* @$OZ +ʘ5I += +KZuȐÑ 'J3)%| +ͶfEйYQTmE; + +ȀH ʪ_#ęKv3Z |rl2jS#qKFOT/ JIъ69 +x;'; +qUk~ӒnAdE\[y8%l98' _8?~,"8}@Ms +{E[R9@ 8zw/::uY/C( 5 "ͱ**nO醔ȎolDKq857a x2F +phy! +pCk|^0;VP߳hB +x|iy" +I4忑!٫jHm6#uZ`Sg̖ĩš+]Vb5U^(-/{`m^nkE<<OK(X*r>s +)Y)17j+v[pB#Z;o@!YC)oQH +d^L)DBj훮 +e/dyXmTc_ ;N7XQ9$t[=ٲ^ +ʋEYWtsx<0z\O.j5< +{ $Bǫ/>5k89G@G)U$T#OQ!*::HWh2d>\u:7욚ANLm&' 4 +V,vYDbzUc ed +yy֐Z#:i{-2z}WY)[XؒYSC<+~%udE y!=t&8k/awFۘҩB1#`608_8{0 \ۛp=7;=J6{8Pgq0')Ҡ>Q$:V}^0cuS؍GH] H;[=---d +NIkDKK~0j D :"4I%Hk+ WBSvA(=0 9`ioRK2`jN*?Ͱ^#Rn}G-^ ]s̹m] W.UZp -ɘڐoI\O%(,#L?$%_ 4!A@< +# .-H(].!O𩼥+I@tV+mu0-mKAO ,ԙ-?Xӥl<|?&T%G9NUڄ9@Mh< _@[HN~B>1 ESըTLI`,&~*vxo`}}(ll"1{]Oc`r z5Iz;ڌ#nK~- `+D8hʹ yBʲ*pJ֥纈  H:0d3\ +<ͻP9ױ36BHI~gúX{(=⨲`%dL /S>1X4Sǹz6+M + }gCX ++: +Y#ܐŊc}GC kcgѧo)(IU'u@;xBS& +Z#̕%8Ϻ<ߦ+A%h({6ӓShN +sX +\My*" %5hzp[ö:Bۦ-QK o׭ +s:FM8*8@` gֲ˪&{GMh\zHA8kɹQVe_* NxǎJ&5 +dZO-r৉ +Ե6|i15,. +7i$BigpwRYxD ֯E>U&ɭ#\^rӉRw(jƔ,B3{ zS[ znH ،T;Wf׋zBbmUOTR0>h|-X${ +,Yp+a2fpҸ|NLz43% ^z`&X|/=kG +JeGZ% +*vep$r%A1%, Tu +TcRc^Gm= 0?7$Ps[%;"fKb" 2Z<V]Vդw}ֱU +x)q^c|&z"j+;Kf"0Y4!A+wzu$Nhqϐ?"kq*il +YUVcdYG! Dq刣xs0?M0HE A*nxa"8G(؆;lz#k7vN bcZ30xtӯTRhI9볰 +qv@Kbq%. gRS1]kk@m+U)jQK9_#/>*bDCM(Iq|D=ٱ9^|{lJuIo%Z?!AH!C34P#y.WDuX?xeoV +y p["~= *ƴ-(Iz8K&F tJ^3B't#4i"~Hn0b(sX/$X~'h.m øÞDAzȄ6+hH;*P\)/PBlHCdbI BK +j**$`/Aê"Keh:|cc< {&a$s(jdJOd7RDf#DW +,cSH=°Xc쓣,{b%%^ +$"g70$*2N*$TѴ&:Z68Dc!h."4,8N3jpĚŢ>E* +Bb4"VCT̰FG$+n $0%/VBL!.Rj^nB2B@%6'|)a4hjD38XUBpi#!nf<$$Ȇ}"h6 nl BzO*FBIPƊ` o^T$HC9gՓ4v,&xk0S!3JB1"**V{p0pyү ;b8QdRN~ *@*gꬉDb"ʃOH3P}i9Br& J43S +nG$LQ~QD#Ќ](@б"LnP|}SKmɓfp`@ +N#by͛+,uѶ8 +4nsCJB+B<_9>]+sg'fJu0.$jaJ+Fa\"/!o%#Ү!"ܑʈ3[+̖8fN4t +wB,*Uf +HG`+hN LB,(NZok(0nlOze7BXLE(te}FB͙="""T4"Fvv4LN8,/^5|J#N-_rgGOyC,sTjx8u8Q뉀WGo'pVCL=^q”tx®׸ +[yjh^^t&;705LlI/*=X, h#6l `i6FccBH.J.H2u% <^F#s +.8\%8Δ|\p38#@(hDWLH5b` +"ʬPZ%ryݥ:4>"RȏNlCV/Lk:K/Q)7><5梩sCdDB)r)c\#F['t=MbS-\l~ + +ΔJ8xC R:(]_bS$E&&ʣldB"FcN|F"<$R"!UqL!<@R ";.%<FLʚhVAVfP3UUhV1h Zoj,cNgw>%"]Bޔ.Dq6L,LWUfa&D\,;W. +:{b4ʂ1h'LoP@A/ִ,x80C:ʵts#gڭzŬwqTI-xoze2!l!"ӑ1'?@?Qc'M*kCFMbem%:ٸ$E_/"Nf:!+D2jw,3fGC N4DJF/;P+h f[BөP(MEv+?B^v ֠sV4 +U 60bg }+DZv"W?,C7>¡$jH0i($Jbw"Jn+Jrq 9b~€p72哉m +=.6[,kN3NՉ-F +ۡgNʴ^/JPHTӀK(˟ FZ33@rt6/I K$=}?_;Q^ }_ϩGg#V~Boۨa6Sv i0#( (}@ +!N:+˒d~jH@ +3 $?5HшS;hk\A3&[L:Tb6jůX}Ӷ} lr4(Ȥ/i);[hJ G^EG9 +Ax +.dXM,8ҥ1 k:',hj"ҟ4T#t3h|%AB?.e2*rK>LJ\LPk"f3zUղ1O!4<Љ4~2.'R:.m\.՜~U#f5+"7+$MJHԽLky}ޘc {0ƹG{ь20A0Qm3~)뒿'2}e"uz~{bE\k:cp k<o1jR21-JƓpaR )Ižl@ +9*Q@ˤ1SJ}*1 i-a;QM")*2F#0Bc*gB4U@pJ#EEXD2bEK&fP-%N +u.%X%oID0hɡgp$Q$nn ]JI"i JF!:`{?CQ 9L 8|D &sJLOr4Ⱥ`A@Q'HmЙN&m, nc c\ #Zצ`%`ѳ_ԅk骸Q@ bFڔSA =JDOrSARY3bˠZ'E远AJJMz0xbJp<8gۇD }YȢ +Q&EM yɂj}0MAO9muETq%*,aV; +=QcJҔ&ҿNm b*Bd(Ll殦i|Z:s,ŐCCSSb +Ƥ$ +(V끦.~T;gxe;^f6y 䠢4C~gU}L5br1mBr6 +/ KT< XC]y(RJΐqL;T0:Lȱ7i5+BSۭ! +ر +.I#fWƗbyPd 1 <$ÊT%XKɌpe >K +c'CQ9))l_V"e'DxN&Z$T^Uu !yJDV[IT0 +.űzd Y8̐r9HgBNaόƇB>c%$KM9N UDU0`jT* E\DȖ;B:Cgs-E#Vsuxʄ̩1rl-Y|`8ŝKH>u7q+m9#uq@k# +|1aK[9%! tI?Prvm'Ǖ:PRXu + V9K$*Te,orϹLT@==@!M"\ͺ('|1W[:ƬO{-0 Ȼb؍yD zYS!(Wv *_|H?jIX,}KzL, +3o-#F+ELzjzUM?#B)pve9( + vv1W@%Lܾ2?QGXĢ~@BVZ%[$QFR>+x;[2yjLRs2!5R+ d)q]c>Yx+@B)b/ +(i`V q? |!k1H|ۓ*9KBKp:^2+83!3"b[UB +2B +R3yB13B5RYR/.45 5':A*N< ^Y+z9@ +[M4 ߙ<$){ I"KQE3)2y;R;0$ +ʇb +AP LHD Dd=%ҎYMU2PAʋ!*؍L +9֏̒K. +K9a +|Q=rతt80+r1Zy$;H!2:@Y)[]^)G9CъX[?K%'-Q". +v0@r=j"3`Jb +Uqͦ+6uۅ'b+P ҧѽ*SHڋA=YK +IR$)ҹ?AH*t:zz*N'BD{xFH`{J0'$9VJŎz<}ޏX 7 D%Fd&B Chh~X 03Ft!>lfٳδ(POpI~Q;D4eX |a'fve:| +/ U֖l j#2z*댣Ǝl)eqv9K"5|$x/!FuVյWk6iY9:e4ȕ`)jƉ!yF( 2{5Ti|/DX ,Ip *B +QIO9"ţ撉%u3ȑ +| Ҫzf(᭹ 3ljޜ@ղF>81" +~@8D +,+CXP[40Ê/hÒڧT$qb)L2Na0 zT+NYy@c;M\͉P*t]0 *D*qs3<9y+`0zdAѲ3Bt.^V/Oy<Le엍Qҭd}BaJQdѐ0~}*R Pk#C~:A2FNJYWb$K=uG%О ge*$A]Ufs*f鵞e:~2 vf4(FexVW:,c30 #B!wY³@k 1-5moZW k2L8V h_k~ر5rqY_og`P (X?oBF㐘x(}I@ 7Nc(@B{@,l +}Ep- dAy@ ^V_OǴQD0M*rž(E"zoPejkO!!p%>$ o +Yl_FfTE(4x]}zW4n(* X4We}r$2h: +`nv>yb''&mlOa*T!|: +' +D槟l(+DX.̛iP䄢KT2jsTɫr iҔO$ LRԃR' *j̟#>NTi3NRS$k;/e +3L/ K*U:t"O,73 AjNӔ[,B%T;#/gĭ)М#N27ڊג)`b2W,=7RSt)tWi77Ȓ:<}'Qk,VU}+.$jjO90x딁%BUy> +`+ɴ&c:Y +/W0J$Osّʘ ɸ edM WjM0s +l̜h$lr59ENc~@G54E,|murJz^ +B4'3UqϚ)*|q4j;aPoNz'!.# 'v`¶\zY*B 網b8U%kX[!#bVi0F=ɣ!pgerJ{_#KHqUFIP%kJ?\3l=@ve<☍!%29/eC4DUyZAtg`qcdHa;*jHsPG(/G`kZ 0b #V ]αy 3Az>T$CyHH510 +B10dH$Msh !AG?9OBV I<@LI2$).)FɠZyQ=b`PK[luOҧRqQMq&ΌrM516uU*SA I*T9K*4/XYd$R:JMjApg1e5fSTUe6G*?I*#)բ"+en&KG0<YiA.I)IBmʦ8k4Pa)LVDNd.}rF)"m` +φ7 +ҩV H,d^T@JFSl*1SL(r52В\.$ʱtG>+Х1Kz5Q^kZGd4H]_͈1[Fi1 +6$DhpQ'HS`6&f͉6* R KN#w%J>hDزr/"EK`EvɎ!C֭ׄ(8Bh+ E&)*^nļBHO4Cy&% xAQ3&}6TdC֒@Mf[H &YN +ikܟyaP'7ƈcR^N +1z #RFG$l9L 1`|!, zD*<\^Y=+I9VTVn,֜kL{)+1*{fλy)54惪2z;ˡ.U!f;V># vKV 0ETOӑQʋ@FHŸRX[+o<bP*1\0v>&t?³";X;>i Xn@Gq$+Vkk:*vLRsR^jU/=9ՅM*f7- RtQC;+X[)&T~Q~*4ujd+f T(MOq] +uE/k[ mԈSvH_o&`CR a+ Y1}|’?_<2G,W3{E J ][:ڎkZKEb9bhhe*InP"C^vХ`1aDDh Ƙfdp0Fg+8&F* NN^D&HDDj:"XMg!Cr"O:4afz'"ֺMn&9L6+ƢT.BoB`aCōPk|b@FH/7NM-hN6&ƶPGk=5w1F{NfDMd,g#62J>JctE.DiXlT(.$TH)bDzgH%{ +Dt"Ln1 <%`HGb +. W"TemCz`1F$.waBB;ڰ*f'~/XȼijvD hB#2r4h>bl%"D@' Š76m23Fj@D4a#\/F'B?l$B!+/Tȃr\Of +!#b^2., R $ +C"9NmvF".G@b>$"(x"BD$U,Mb~tA+~28l +O,4.&$BRITb@kK%RKУ+V>gK0HM$jHf_%p^)5Jx.KX- +}E9H"dK!#+'DfgnY%#$4Pwż.[7:ftp\Cn0zY*q\*S!OPD9x*##O@ 2e[vi9/ )$@"F(%#XLzqM~hրd*XUdE딆m&Ò0C'\@E0 Ԣ0fc+~%Tfisb71+(Z@"hLѶn"ZG\s,6"8jD8r%HhCgc:!2q0,9h-#EҨ!AGD::`ef A?@1ƒ#Ol+BիT[4+5SλpI76!ÙwdbD֫$u`i"L0"3h 6mh ((F%ROCbDS."(dL$X25DH%F7w4/TQlA$Bip@&,:Wf9B{6>Swdx2(iؑ"P +Gh #D\f#)a#KmPb,?KP'BʲqB,E|K,X2UP#p'xAB5'"{넿CD ǝBRD4lOְm:pm$#38bbPK˄TIp*䢮hZ!gZP.QP''Pd-xW'pEjQo +bYLa#U#Q,P )f1b$`t&~>ja\` iZ6.w,νosBxH.o-N%z?@$ +? !P\6)a0:% +Ca +$G`GQC@>; +H!z?N^C&FJ +Y-uJ +7*c2ɕgIT{,Q=~ʬyLjmJ%D?H sXv1^-5T , +{Q_pWĨxW:%xQtT\P̰U< +gE0PjEwcO\r`V>\  Wk;eul\_#򏱆Iaը^*дjh2`6 W~G|"nʠ +zƟg j +!,s~ik?)҈*i?D"22ƺ +D⦤jv~j+- NP~HL83'{,9{/A\@JX\eiUjy )/,dYD07I383R`vDd=¢`#= +f*C@FL?x^-hLxy0GXn ,P癔qYf@`\dOc HC!(hJ?Wpz!)Cb'-D~"e f*Ѭ.^rkE:1$iԂAle +=G̺ )"!-DgL+9j7s2{5e-["SB3,KSI2i +Z:l#jT}VXo,TY% +GtNV|4.1҃c+(5Cb'\p|%):gWI (Ml:KFN<)]a5D)@$@BO!ռG{(!ijJiO9Yb[lֈҗzūDNDf %ROq#MI:"`3זeTDQ{g]R G i1_ <U#s{DlKD +YԑsT"(mu*WU7p(-} XEswtKoka:K'G{F .B2Q2K}JŤ_OC) +p`QG-O~*$=1](60Flyp%'6G+"B`yu3Xb1D >M *t/$pdrSs.;Qh@l$Ryø6S"\Sjed; 8g^1Hv"zㄑ&&pш4J"RH;"&,t+BsxDI/1#7 VoT;K5sX pq.c("a+BykO2Έ#09 D\Cжo8h?IT 郐grlnܣFPoPZdF6J P2Y8xF٧nkjE!>Jrlw3'9)&Vs/)AyVcK@rog!>WENFx/*e1ZPfȵbHb\g3LmBhڱh$Ng%cQdLnk)iG#F<丧2!05 DB!Nye T +Dǒ>+#NZ4{kp$. vVb +'ilI +\2J cG hkRQ +vxZ-h%EN9$IqȜ6j?>u:8mH$p$Cl-<)=uBDIp+ر9_b_#'`$lĸIN5\bNse7QZ6ͤZNUy>U xGЄ^ӕWEN*FLy:4V).\bByM?VBVS|:$Cq-Du%VcVb&[o +}gpl(6)!jsfNvfu- :DS i%v^%7 iq6+à@b8TJ`#g@dD‰:tzQC<H/ߎ>S+7@H&kki*bAU2lɾ$Up@ʻ!j:z\Tc*Gx 7XB +֚(,6FV͋}j +CaNA PBAA'Y$J8 +&TZf*V+G#f{6Ze bsc8Xh9ㅢ$O$QVYd=Cen u-0~zC +H7s$+Xւ- XuX^Qh!W#Xhd6= QFD&:L~&NmDKZ5'A#ٙCz9K""dѝɂ{ʿּi7 ÈJb> +QՊ؀閮X-sTv5r"t%Y cYY=:_޸ƀHJ9/Dln4D+dueܒ}$TI1O9]7犳j&LK68# NJc W0\rnd.>J;B[*k*-'=r}Jt`1bTC>oklPpY"IԪ~qaj&bdD97BGUsM11hiqn&h9c&Nd9 |EC?X*+ 3W.S<|[aeW!EJ s3puGwg0  j ?q(>ߏ!0=)>6` Q[?@pH\@`W% e=%ZeDG @+}_w@8kO. +cc(1DChg-"{EcYQ.Hr +f_T9gn? +Wv)~j_i-Ig-TPfϨyW?חsR'懟:NÒ> zkb+ +{r49;zSF<D2[#%ΔB(1FTEI5JW;e; ֏ W8처6-)<@z#q*"W/镍>|ڀZOs%&w*⠮eK.|GʁߨbJ*_(I j*c, U +Q߷+ +$)Nė҇IM&Z򭩂!'}ɝ4Җk +mAlеܗ~y\$elJB}g3rE>NjGw&dg9 +ɰHñ9%ş%@;vg^3) +|1jShS%*pXb0y5mob2GfJ-_&,$th*4ZdȞ4.~سls٨\\J)oއG9I$ %̍' + +ȔL_ofOO p%Бj"0)R?  ?$l.$0Đ&".)c|ț:<({:)<3fY(fE®i!- +< +.Lvy^Tt YEkPxIٟB)SK +(?Ec"`iH⊗cD)xԡ2LPLPE2Q3Q*gq(kufeHHLe,X1+/JQHBca-X:j޴zMy9t(+ Kr$ጢjDGqs,;=9$HDPHk8,)HLW.2E0~bŔ8u8a>6I! ! QN5rq! ^f]$~V9:tBGU^Cъ)F :C + BUIи#\:,3WX OJb_# FHR/5.&"l+*!TA=1ɪ!3 pMfH[ +2Bkag ++Bb +&pt%uKpaB`8S +'&bԚ)2rl`>Vf^#w0Ы.&HǭB0_Rt"_nIOƕKU=a0gl##]!6l(nI U=/Jvv;\9ɷ-@47H.l<{F2RgG4va܏ @ګ2"GDNAY 3= @fZQKБL> 'LA d|0)Xۦ>hmFTDxh+ `Ta,۩A#Nq*H$nvA" +ق-鲩#oCOdU]Q. HR:_d@%r +`JE:Tr +&yƝP4J t`_$]nJmc4b +wj'(柣6 Rֲ'V$唶:iY` WW3h)҄P1jFD +A&Yyay naIhԖOƬdҬb&QP8D!;Kssͤ$ЖosyO@P ᪇z172H-PՔ:# + 8 T%p,#rav@ 0`V9b iה({(s,h 9%J!,JeqNriТ9=a Hʊ)qqȍ +ۤ H ݫ1#9@4 C=: .c{(j|Y!QD=\YK ~I/w=p64'96+)ύpJg$;V#$h5b;tZ+f!`G=>1ՎI7b=1v6(CCdnAor9@8 8 U"s& ٮ,` +%i[E:X4pKpbTHm42БpISlު79ܓ2㉹TcJZ;B#Y1`Q9ʢĪ}A˧ +"Y}zWۇ2LI9˓M ϐi!KY:Β{Xj#ʡGݓ|d!Չ)̉ |C)PQ +Zݫ!|#k󩖰96aʊ1 82(ao؏p,P [ j!2 +( 蟮q0 [ Щ +|  DO<xBwʞ\SS)b +Щ71Q@دԈ zz:x!(p~@fj"AB[͡ċP1ʉqȸL沚@9X{$4(|%+rf0{&o"GQPnǑm7J>#Bh"2πs)[5M;xN8Ӳ1 +2'i*[$"`h7}(> %jS!%4 +%"7`JK2HՐ$O'uH3$K{'xo1l7l\A4 +A#ؠYͫ8+Z $MT{5f=jo[+a Q@sâk'\iJ"-MA(+* +B+`p哘6+ՙX +  +A`0* +UZy~ +b +J 6QD<j ~IJK@a+5DM?|o4mz9:{aƫRЮg +ȸt#P8q=#nɐ*"7쉸ԨYpЙZ:#^ih$ OeF* +030%r[0/:܍FST620H6ҍCrg0E$ eR3i19HsdYjm:cIJj\ʹb؁,ɡ(9K]ӭ% +9(LVfT1E|[ڛy+:X l>:1覨ڊ2$9pڼaC,\j *M32[J !:֘)+,$i' +y4؝B=ÅA7 H^ĔՇRJ"X!{[<=AҼ:A"G:])rQ\E}!nò!Aޒ Uci,R@H0y BT +.3aሩiT@!I4 A oG&3"Q Xisg4 ,!Ab i+) : 5CL7'0>e}q馐Io(@؉ I_!~ +-eH,qpz@ PURaOPOuD ./KZ"#ـ `J2"mv-r/䜘i/i,SRH$EC-'P KY]_R>yzZ@F +, ++h*#%̍rV[!F)a!4624lmEyt(kyJ9Ky!֝JDuW '8v#^qk'1I=$J,`Րui*!Dp1P H 3NhW|\ިK*OW>q( ^Z9(NNP04L fjd|:`JӶOnQ&1:"[b]R8 g Pިim{2H] +@u.?rg^7fhq:) 2wpa|j;7Yɥ +&ڪI| +$۬A_w~?P +" ?o +# ) PP {p@ 3_/GfQ, ?(g( $qH߯dCOT-qWzɠq8 +(1@J.Jo4EѤI:#pO +6-#?o4 :)mx ` .2bcxV!>i@Z"GbŸ DOSw03"wA2G{^`t +HIR"H89(I3z8`J!) kp +(3( 2Σj.6-G" b@ +h^ϣ +q5ʚ$l:~JktBjd*䤨(.41>&h`gN=JLZ=賃74Rg}RNy# +7&!]إ#'an ֱ`YOlM1:A9RHQ!)վ.<$!H`L + uEX~uHSϙb*s( }Eֽz +?䈓z5>!u]`H"$ +aigUhAް.YR= +ݓRߎ!8.ZwtmWC!p @8zhL] O)떡$hK#pb$W= +URV +d& J9+cKiDje@J4>'Nn1ҎY1&&ל0W%BTc! &0 $*7/Iuxԓ!!0&AgXs"BdaQUg P]!v?s(4gL.Sl0)#3CH[;DVƔES~?vJV)7uȶֹ[q Uծgcls֡5Z7%FdUʴ(zXK]xWvxV=૖G*}k7YE(X-ƪҽ#֮5"m!Ų7f^]R n +B_(j(4xƱ jfI*z^T5tkŌvԘM5䄓!Pˡ(]֡Ouy4F%씲rNX +LJ/d ݞ*dr,iĵ AD*r`uOXz.>Nў4lm.LR>N{F&>Vk@ Q +/ɩu;{ x/JYĒYAJ_ixn%# @f#%'QŚ i(O5<$^`iqlĻ/iU<2'U8f"J(I-ع +$GkFH9Hc#vX쪷e* oW+VVl7 +[8h+yaտj|7W3 +LٵH1RҧӨiڵӨ˲Y_ROc+EY;eM3ꘖ !Fu"KkJ$ Ħ& ["#'!l2$? +2=&G M71JgŜu%*D|TB&*j@ 4uOG6׃85:1nN(s)C:&! +;"@e*" +)f7:?'VI3KCx c](92f,>f +^2qKdF +j(DzECCX4?LKޯDovJe=+LWʜp*5Ϻ@Ct.t,X + 8s d]JXh'F!{"W/Y +E'6`hWc"Fu>zjOlS?(!G Ga4g'@b F(:bn .Cb4O|B.~$c !,"N 6,8WAAk<7$~,̪F#Xgʑ0eRCp>8'0}wQx"1h2rFcL.f=JOlc8bB G+YzYTT0^<"fj2}'eb:!%88(u1_#/e Y4cf` +A0EOh#~F?F(-E,sgT^H|kT(tP#^:s&2^-:Ǖq[LH[p2#iMJxJFC VfQ쓳ZFI(F^(f5Ft:51(lB>-B$rV1t"2Ar"'P\>A2`^135QPi%2fi0n`a el<,B8 $Wn/"@:T v79~q"@,!J 6G06~bӺV&j4f\9TNkS5BzgxV&X-"(pJ(ZtdF_%vŅXY4h7[yTU=veB`gs +<}G9Q(Em|obOf:VfZ^ສ\bfLjSH +ll6Z)%jJ2&$o,/KH*viLpXp^1`jv2\6-l~dr^xU?nTǎ +bqPHVG5>&VʱtI:H44k%%$cDaZ̞]l^>cl)<vub9 +ڈd۩mj7'\N*Oа,-("S$,RncܯDH, $)aC5a# oRNt!(U,O-` E!#ru.BR# # + gǜJVtzF&Q.mBEN%ze2 +^F$Ȕnb>-lU V);^"Y*%=CDTsfɰ:PG~"H' p$|vT¬.[3VٔCfe-Bn,""8\8g5l6;įňT 4&rM2~*BGȊ:lʇtZg Gv +NV\'z;z ~dv{&m΍9Z;ԍZèceI;{'+6y9Fܣ*#"o*aM|za'C7 +,}R$QJ8uZzC*{o+Rphʍ|o V0yW8 n%2vgKtjTW s@$hldRpoAZCGiUI?Ea! U~,B7 Fr"NH˜`-P38 +TkPș{$[^F}r=%pN"-䗯20!iR 0fF8F"9wY؋0dzz6+ +ӥL"CF_yrY`]ӜW)[ Nr))"MF\nd +O%IޏqhsktkVS`>h*JΉF,8$BաU"8R.&? ~&BMT2N8?BI,n> ,G=(>!njU6dV/Q'Ec{#+b R"K$ϳ1A(r0m1RHa\ӞBiDQwCS(d\QTj}/DSu)ngidFLV>qy˝p*@}K9 Mq>Sf6ApG: +>n- +%:o(L\ii5yzoo;7ۮבȆeBlߛT3 +M.`bſ̴fQVMg;@GGERDԔ*GP`#V͑m+MYZV0|IAV.c|=صFKR¯j]n]A80Y*).I[6r !Oy$}'}&:bGJ\HQL hq⴦XiJ"=Ў싘%{Yٸr YXژBܣ2c yx:CxIdyqJ)즥!!بP 2.y]kQfz:j»k岔<呁 Q[7R;ّ-W(a + ,tF#E1hJyMY`*0٨0$n&iQQt k*БAᒟ +M˸9Hxʇ4Dي{Cʫ {#AR䷫x2`YZqS=>x̕ryQ2$1O0{M1!BR"+0ʜe=aSD{0Њ2& ̔7|C`K+Rk+2 +1D \!* CZkyA­/Sz$:c%.'`4-aCaP.z_9ۍR + + +T"4մ6£)y5 0}.\!~ +$Q"wY2F;*H1,H|Bqe6L¹l+,pJQ8a^#qM9ePģt?[p0JʈLB&Ğ +ԑt 2GY ٸ +M;tM0`J`"br)T;IZg|ģ4 T +^m{uIp1cYKႹp e}4e!հB1 jNܵ+m"0K~խR!HHWuI)9ً A홑$LH 7 +O}W`⸖z0rGQ*[`.\y +$!T*?} +lL=ӄ܍12(ŕ<%8(\%Ps J]y +d{zh+P۲X Xa z~Z4z1(Y!,X4! Q3p*ě! ʉPM y9% S~&!be@)AY dU +x ڝiUepA,2Ѫ3*<Kea!X#2va58aud3IU>f_=.X32-YoӉj}&ANs!%ӣ0DSEx[.EY"l׉yZ<  ɮMC"|  A2!XY^zU fYI&_P +X(Ep@*^!b?}TI"3.EJݷGkv\ې#:ףP:-;ŴxȖ@߶ЏJRlqQ + +˼ ȇ;}sv¡r ɨ\`)"ì5UbkG p,M::Q +ȋ"9tUR㑸D[y`~T뙸!Tw#xœ +<,ܔjƦdEI˽ jX'/Ñ &'AbNY O!EV\Obp8ֿiXb֍OY`|Td7@=8Qה\0׀P~gn#/jڊ|bd*~YhcH2QtN/\2`C!rNiI!kʱNXrBlb)$ ,3׊KmqCe[|m`YbN}=ZGpZMiB8+Ie~K},.)1% br&PÎB2HJzml*z: _ +y +1èu+zžTE f;e@,[y*.2|^ߎ.D HE+S ŏm7R)@4= +y S\TqvENoڢ*Ios'ke{\{U[횞V]|$ʿ6DCb f}4kl"7J㛊7o %d7ƦR"Q&[sͻU! +wd_kMT9+>"dz4۵uKN9\/,Ր2Aň>;/;}C +gl͇8jkj-hVJ:8|P(ڏ&{{XM +dfDwP3i܎' }:v)!9L + ᥀? ߯@Q8< +#P'F(88 y,TPL;1 @@`: &F1T~>ǰXѨ7_S +@ L}^ So'`05 +P'bR\{@y`\q+^:\^1N8 +_?7oɽUAWJ`-rDCFJ\~^`MOʽ@",,g@K˚殪9ʢ()k䱟OY`J&̳$C/Zd3d"2}.d$Tg{ +3`iI,"/C|Ȉ!}2"Y6zCpKzތ +|I 9&-1؀J6 bP6NjD' +Jy2@; 5h*@/s.|2zD)r|#)x"J6-uGҰKn$ +~Jj&GGu-; +NQ +-rCG&ts߳췮Li" ޮ-Ɯazʪ۾ jMS ~s-2VbKd{&h=9L8H)~R$)ܦP`xo72Q>2B߅X~Lc!jsB*-R|QsQ~lrˆƼfXZ9W{K +ȿh3_:JΥj_ }#(~AxNf{OA`l 2VbTvCǠwND'2L+.p(ֈܐ%2Lxai89}]7#lҮXPATǤ*VR*+,唙bƋSfa'͗$ݒnQfHȞT#aЌi/-J>LFGPB%U{/qs9 ?Gʥ,䈃*vwKa0#!j L,JlhA G~LP[Fe a3J6C"%CdF%X(bYt8GE2;2$6 Q`~)@Q(I2H&rC=ڠbS北dQ7\ +J )hDѼ֬BcMrGmTL9,Qy<|yjrG|?%RX8_=I{$P,=H/8 =l$;) + Ʋ?0;滶nș>eeHf+sD~w0F1p97fN*q6춳y@:c? tb0y}5zƨ+3qefL27qkVB>$}iwMXDG$ŻE-`l`9'0wHJCY;jI(\tR +LN8kX-yF8ubumeM24iJ̛rdo +~䜮+"z 8r-FV-%D Z:wpIljҩwf61T zҼƸ}IDvU6_1PGD0m9u$ɪTjkyq8^^a#4Kc& jB"rAcrOuåj^4QKH +Qkx]]h"%0R[AnL% + 2O bqP!, 5SBU@6봖ȈqY v},8,):N *ȡ~ΕIm'l^0k8/ ȰE +wgtp +NA2aHNrc>U <[F9K úJ q#qca,68adPI$T~q/!8T⅗%8 |Hlq +>Ihţ?31L:Z t?Ϗ^LbH5:?1=h%}`.< 0wHRH,j<|XHD*cىlT3{3NiyQF\+̸ַs(5YGsvbΔTb +(=̲͘ەяi9پgYo1a^#x dl{nĴ6zfWdB!L[0:v،.l87/V1fEgJ\ v'VDri+ +`G{Mmf&k̖DŽb\kdz$hO_'rD\+ :kXJ'H⌌ K~F\e),:&:2gN4teȽOb-g3bVg#wIA%,dI1㖞*n'""T*j̶c'^N2Il1eQg0%R*- +8T,e +CC8K&28grǜe6D41d*fQfWfp_GKŒ~/~.U 9Čg(9EpT͸tR $l<{Hd(JF> zb,|B(9B~|6ܔ琋 +S‚*!L$b8' (B8,J>$:> +6cV\<-.B`Kj; E$C%1htb)#+p5& +&dMqBNĄIv@ +v3JxP%du$xgr:p.,"8"X'R'c DAD"/"N~9Άq"$KX&c%W6%C,"*Ș)zi@gοn#F#+2Fhnon8~ vF5KR"F N`#"R^DcBkpt@wc°$B:NGFhK.G?ӝANѧ< D&*>K :P9kXs+t(+}t(jb2.&(h'a˴cP&#" +%>$f>$rFjAf(MT&v,wL9G T9]4#ZDcˊ" qlrˎ1 +mo>pC2n*7lEq)VbFgy# h+EBFNkP BA.17hdP/d="M|%?'.bxIܚlpwCb2Zs!JX%P k CQbME0D>oO+MF,lB,U%B(¦r9G7J@厙"4CRGgrc][/ (@3*b'5AJArLMK.x +&bѢ(2f6"B  M4:.e +1a$(1P%5(ʢE1ta,&EI\.ipB4,/$!TE C%mfDb&>TG0v8qWhU"r^C"q?KCbwDhҴB[#*2a@[v=*`R[厭)I\-9\& +a}fn̳gvW؎iX{R`S<@CiQj»oo5~ 9zt` 6˦__Fkضq8|C](㕀+k8cf8Pp0s}DD4( -I)VtY( Mb+UI"֊V匴npwGzc9+dFnDt:KE/}feË߆uR}+}5&|J"WGԎyVKeʒmo&ZsD9 _$'T'zp, +) LFĄ%jLJ' +#KtB-Hcwt|aM*6~qX@ +HZIjXfd O kew c Wp",f{Pj)m"hwNo&~jLQFf􂇀}^'_.OT6xX$5"n4º(JM`&JL"2t+ +}ACCAf?D#HV*v%>kN,!!(/BBC"Ob!􉗌tTcN6nib;"Fn JZ@FCB%-܇!wQbfb +Mg\=l. +qoc(ă4jfg†<.S&0A&۷G8o9 +/Gb]ZzHgC'u`:FE]89aέ$#PW\|q+j+)g,3I/ 1C U]$r +NbNgd&bFK{Qlk9ifP&yN|l +j~#bfL=tV +au|d/lCkU}[xZm +W8!UFQSMyG5S6tṉL־,E@tGp֏_jmGưkƚePXxކ C'z)dߑJRc2Bt'&VH 6v8,qÇtfL{\yk]<a44$;7Sh-|a("61 +*3CǬ ѱHBSlf +'|UVʮvP2a/@nx!&|_'S"^d3. +}:_Ư~ +`7fY;#(4M hU_KK#%BS2[Vd818:MO @`(?EQx+5 +?r +"аN +,C2 ŀ2Ԓw+?G€Xo (HtASDpټyl'6F'9c&&cH'ѫղ6iN7*HRb/ +MMG;e[K֜~$1<4\f_KͤDSNs3D*pƧɛŀM%; dΣv6L:ꁢs?*(/ !`<2&^ + 0 +˚КGHNP& +QnP*2؀/4|{a +ԟoaJXdGP`}J!L~'|р:tdGEP!@+w:&}x*@bN {SGƵMl#-«}|=lE`@ +: +@Ʋ('ͳRQQFFN l6+bl +:@QU,-iD#XU/@ +`|i vCT5:ε x_hKhUs +A*Ҫk1˚,m2Z-ˬS<8t5( q)ڥ;X㊲*̽:=”)뒼!y#)׶"ȗ iî4+ v,8~iGwإ +?jJ))"UUG"ƑSݩS +ӒY\ĨRa?w 3YR&}(BԮ -,&M_ZMa2 +%pC̚!,G$٪pY@&1jOG& +R.mۦ&1hMQ.D3la|!% JI"ۯ74H.8HHFR\y$/9!Su +&\[>TF%(s2PAF:BI?c|SEO4Ђ6(r#j1'VW&%wc%$*\IC}8jJH:߭Uш I9LDᖉз":Q˙92-CI\BNڒe&@k>ac=t PɐNJ-Fcg쭟h]p%5|aƈ@$o ,k8 -"AsG9p=(LX| +O<UQ{\ +3`#.}6XbW`ellѝR?4"*ł%|i J i(`p9r_:⢩ F +!^„SM0VC=G<5EAμhJCrOgI l&=6)ϒN`deKat *LeP*Zr5{qAzA + +]NΝ9 ˂v(OODlCg rr }U +GGN! +{ -"SW7P ++d1eB~_[HBJvQ+.T\Ғ)0@H1{aeb;6> +zICFQm\3GN۫|\UrP+1\7ZI,Sm널R4'd+|b-g "$ "(֐DBVf7xe!,%*\p20' uCp:c}g>/ >ҫ=dw]7 U:P'W f)T>dpk,ehڂ!ql3 U=\+Aoix,Ek}OQT,v rlusKa@[E\KǸy.Y_=.)m$@tp7=~{6Ӊ`):mB4 zLډ>)Rw }æxywb:VH\(\9iS22@)kBRQ6B$W/ƵdcDS9HBSK-4Y#bNSX=;nWvxN3K֌>MS)UE/-$;+kag +OճIL1fdn=r&ԀёP?GhjqR{%R×ɖ{Èc ȠA9ߞIsF8 bvٓY 40a. +yx +`4z8zo +謱t*i厓0 qC'Ⱥ3" +~"A!`!$5Yjm*i 6A ӛۯY '3W;IjBAR%tB۱h{A@6 i XЉuyƈ@웑F)QŁy B"#)(0?Bœpx8 *&("qU]Wؑ\ώq ^: xӮDX ++p͈/Fdw hU W&I] +*|Nb +iH:C+L  + +rw;3Q2 u@H| ՟};yccRD%;&F)`Șѫ(܍/KDsʬ01l>QZ&C[p?ʠTX, U˰ԏ~ +#;~t +,H@ZaXkʲ{BQѫ偏9;MɠrrUt'!49Phն^)k" +4 >.D5ǝxZI׽tH{%@P^>+ظ>MQQж8<7Q2fJRLw\o-Am%AJ0%AH'DVaẕYؕϫ #:C1 (|)E3+ 1a\"3beW9^k! ,00]ⴘ3R _T0=P39sXqAB CjCU!B"g=TP;B#r\FH1R㳞:8I8UH/^** bRA +XfEјͥf6: # aX7PH99 d{,UM?t:5ߓ" 2a*xb/L +JcLQAKM Z.c @&,J%}&0Z|Z8(CxlLКP\q5aoE8vPʯe)h+:ɑ>ʾ22kj-#ꀆ f 12蓣o+!e ,)7ȷ[{MNē + "лHUrU ؉^ >T(O5]ex]ܺ[߀ #靜= +V6 K" 7$BzJ"1IH%c.ʖb6ʣM^{rA:%"V-a99'Ԧ#B%:!$80Iq&LHҮ&35%:q>(v$Q@XWCB4 +biStԖ02\3h6:]acSpt:;TV΢"742y@u +IeNh.5%]$+4U'&ms 2健S*J +y']Et+9c )v^OZЈvkRIZ<c^!y=uymvI=A;>>mơ2T}HʧV QLwx׶ `?Aǩ}@7KFRr &\a\,rmYlQD᭮'eO(z跑X"ѓzJ"J ԕE -$ ={ԣ ;+@ܑ쫱W-3.nAnx $Y9F`@XEf{@(i#Qn"—)}٫ , BWĈs +0ACpLI@r5 ~9oh{zٵIp (t_ȝSޔ!i7H4ála G!q^J$1t5-` U +dO 6CyJf#Q䲩>OXU2 +@ +~ob;Lfa[) KZc6ZPkLhe4ͬeYrglfdRB{wN9wjS8 +}3jew%_Ry]x4ȗD) oW:- +mrqm_o; !; +H +?kЩNKg "Nв[$pCpDht~{ȫ>o<(47Q;$& ~Qšq>1j2i:ǡD* oFrF ݳz Ep6 ͮ'Gӊ +)Sbƿƌ + |;ڠFC0*a~/M +ŧ$@u Loܵ18(;!U[, ,/:zL5qQ`45\hQN93S搠< +$ur5!VnFmUsʊݺg*ONZ8|"JTCU;j{٥B~460|'x! =G9BUڪ2h4}$:--T0W(2ŀQ}Δ%?خ6(nN#Ȃ9ٶvT8{`4BWQ-;}o.(Z̠-A}RЦO*ELTdѴ vSqQ B P6c<[A5;RXS  [Z˧*u+׭m󷘱伝B6Nu+d?k'e4k@=KPQrA`W9'@X1ab VNP+AF +Z>2O]4!#Фo.<+SUFF3$(d_{z,T"WZ\bDאQ@};)+L5D!)HcȎE bmm +#c|r9ri Yd +J-DMɀq ν^Dr@Yi(b&dRk*M&Ƹ>f)5$Eip 5%b+`F"4 Pq& 0/N#RV +3:x)8THcf,fxy> e>AԹHT'NBHe&,hmdJ""#9~Pgḧ@L +G.3g")B1қc>.D+h +Zh ̱hr0`$"Kl0â+H>I>M: .@4S% +CH$F)NGp%t5 +,Kc2#̭6Ql, ح8UiH9#j.⊃9dɣި%8*+~NHޫD)FA#6ϊn6].T.7DUqI +D)\2T+ɖe(1B@[OMnH;KB;$LCI>KdΜ6?#2UƼPg#Ų@\("a*!XEb␏XNp,ILؐd:"0Ȃ-43*"B)Mcd*4hBDfU%\\N9/dF@dE4B0ƞjBiL\bdF0=/bԯ$[+$ rL"DiDM06iL:XA4&uRt˾TKXMCRB +nz99Ȃ>_Bg"*Q_:FYhЃ~C a6kǐ7.c2V-!/.#f, +%>CHsc&,q$a0O/TAi'  #D6 D.6E2Efk#xULD{&’\Mg.woQ>M$)>(ٍ&ИP#I,>"{"B:hV͵ʑ-taC\T(|5-9rR0%qX윈n|4(|%$T)cv%(D&V7j!KQ41@8oQCs$.HZi -GN +D" <-)z8(e/" +1لd-EFT/Z5%wQ.o2+qāBg9$eRFced 4+Sz*)*(%8ٌTS +B^TT.(?cfq2e[̀-cZJt!{!v~%[7e\ITd $ōWS%PzB5(Ifvct8¦j\I5Ha$N;^7:F!H.n^A2[ʄ>I`Z"x6k\W*p/%#$SW22/lJ0&zcfNe/kH>X[*ni(cF!`Z"6["8X`_^2"3lWB4CtZrE# a~l"fA(!BTj$"HJ +IΔ CDi $B"j䛆^sŒJ%b9~i=+e3Ll$nc g~Šh-EZbR`RԂCt[n$J*/dW?|ZxUADcN6`Rm' +;*…*G n,nn Jl#8 +Nd|mIB@BB1iRLΔbdIPւ ~^@6ԃbHObB)G +EDt.@B=:Ь^<f8G>HRh¤H1N?FszL2̣1H/,~,LI~cnVBz*ö/H'ldKPY=by$Ӣ:\p})qhtİLpW/(w#?㠶D)z_̉?6$Nt,nt-j8P=WSk$TaWwǻ,6EÐ%8%':'7,4Snk7hyNI +cxƛ5"hkKǵa,/N +O1361,>' +˨tuF*d-J-u]FzP9(ˎl@xuR^ venɲ>/16! )Ԑ"<ɔ⁢[92.)2&m5H]c:=W [Wz4ӵ|ITĜLQաPh/-."E{qV-5+PA򴢌x)e#%R3Q#XtMZhLc|Ph4cNa6^4Bb4W=&[')y˳P==/}G7peTA^>Ҵe$OF$sj>1$(g4$z[~Y +_tx$ENN\EQETLZ1e>՗+b2iƾc 6:[Bʗv7;Da(#jFxtZܭTv سe o ~T$-zj2[`UKH: |H1nRR;Oʡs0Pܼ.Z:3.K&KzDRҧ4A% + P2Q|y}G4hLHB$P +4*|ѧRiS7(0 +S(;5@ +EP3H/j߸H401 bFQȚt Y( ]4|Z+¶|#+N*Ӻ Lg8 +1N%Gm +Z8%xPk :ʟWڔD-:n+m0KP%v*WI6|jp +`1{, +Wk+pY -:X%B|!e !}ya66֧B; -$?P1;޽"z$Ybλ*`;昼|-Q}b$~( +h~,ɏ+pCPrb^ +M6'P %akG]i|2:{tf( ꈲ; +MQvb(ъi?!j=%EOWK]\} A7> !E9'TѹLaIi$~CVQ)Rp{KRltЩcƂJ)./{Ia!,=rdF8v#Dmb:M3hn1(|5La4۩2g1IDt6K,FdUYFL$ ^ AU bF^f=Iqd`<ܴ&sTE:>#cԆVYqB&"8#RBCX@D{SbG^KRtݎc%F"#UB-P"c|Df{ȫ^qQuabZҐXR-&͋8הy3)%ozOpDKX\UB=ɳz䞨T Do2^*,)N7E!vT +y'pbU8hA$EGVLl0X6?0 mO,GJǩ-D +#݂pOB6|:@D6P +#-x^?7ԅbwS6g8JâI#2@Mdˊ_>5@l4(D&ձ@kޏtSxi7Qz}H١x +")l#(FI^sȴV5KtjC?3GDUZ]A0Qgn(EY=Q8ΓC;&ɵ$"qN븃gTЇdD'a9v*Uz{)Փ5ɄN#Y }Vz&%rAC'gӚĵ|v Y)!{"%Z5+;&SifI=8%3!lDfGJСz×Pr@yJZke݈>`p=6;P&Tgr$Lvfɡ@G^S–aDGk± +>Lŗ%jOW| +8dLXX_:NSeDk)z?:D.E'rVǺ֕]]I@qf }P +1 Q@2  8)֩; 3О 2Xc+;!iR +!0iҏ@ӏq-*)ꋁ?Qܺ Xz$ ZJ +дa +k i`sq7 +x4I=ЖY -[Y C,1Ijxo')iPډ⬲ +ȷ @ P> (+/-D7r 6[FKU R-% +3ǴX9$R +TY3*W%TTߥ+ʙE#F20#Qpe디 cqj6 pz E 7Tf +ѫV2\Ãd=;1!dI5tc: GG*8_@-4l>,3XI /F(0n(D$}=xZ]ȡ`yJE}6h³p [ڎ|jQ6Z#6EgX[)aџ6yBp +kKg>Gz3խp<㬈{0=K2 A905y HZ +QXH2L0xR ! +]@ҋ(̪sMI!s0.3b! B1L;q^Ydb`y n +I;0iFz˹00!-s=Cp}XȜZa 娹:Ј*_Jܿ;as  + +~l pםjj1"'||0*!" +),'NIY1G:IӲ{ ;*b4a + +Α<([kͩCO$;&S (b@1 :ܮzq*΃12A@ +ՇG3asP~+;P= K:1 њᶗ&FQ$J<Aj) + n3Է2CR J +@@hH^/PV+; +y + ! +i V`SJq;ƤI99\#L͞@Ety+iH:T}c#>(Y@byEhS:i# Vz4ѓ[x`݋ LC8+w&sE܇Iy;cxARm"Q`@k-@ K4o8 `Iv%dʔċtB:FRX8)$Aa#QZ,q4'y(f1/LyGU@~!Lq`p#w z#(,Kɐ'IH*̲!= 3: ys ޠ: +mAg,ժܾϴS +FŽ [,Lx +ſ#y &"1@U< +X.|O>A2 Q{!>D%B39UmuT 51$(#y,BB!e'ʏSF1+ya!TP*Fس۷۠~ڜf+/{ԛ1|M (SyدNA٩q\=T14yX!ua^̜p q\< CD\aBa6D +a!p4`\q +Zr/ؙgWUt"WUzg #X|I%d77JJWxyq [xCY^rFΤyLpzXvy[\HsFz*ILش>[ +ۊ+%[#ƪJD|ī;"7[м: aWJg Srvc=HRRhd7/a ><ָ7+&(Md0%fAP|| ."Vk܊~e<9  t8/zV!}赟 !⠉ +5%u +qyӏz-^acH摓)^$]\D7\²Rzvs,q-#쎁]ܫ1x(!)zoT! x( @Y؎96t'ڇ䓏ޛ + rߑa4QQry:o^Qة%'ΞyFдrYO +_f]10 Dm:#S +qv+THrYjH vٹ +*%!0kܼp|X %,Ȋmz6V}sgO|cioVyZO55\r[_GGoǸ ?`u c (B]Wq,׀[>#I^c~ w)*u,lyKf43ڤȳ+ +,fk_\f#{ +]vؒjxwØ$4Hy{W6ƠJs /K3 +cǾx|YK,} ^Y㯻aA?gK˧$Rm䍛9^4<;pF}Ջ6ĵbqh +A +20{]OJR}r4&Zy`{YAٙ*3=>`( _}`@߱@7~?hNB㑙 |B $pB`|Q_P  +@@*]Y-7N3  ~Io#Ery# +D'֖^j٤'m@<7/fW8#(K(.%RZ-CJbOyP^P{~a/K"?a;M쏠}Cң +Ȭ ~*"h2̥ Ԝh@B[$/Ⱥ.:d1,@"j&N)zb +RbƾI4*i$rdp̘RJIȫ,Mj#L޵G<3k6#;锐 o03+!(8l212r8s,PN/=S*tDҺB4<"S QK*"m4<ԃI69OTR7,0I\ +>JDItV+o{D wQx'HsŞ |HU@#(iErhJD +_C CSNނHK4'98n.ԵEMuU-fp?EC2/oBDsDΉC +ډ+9.n2K)&͉;{J$8+ +fpqw4*Lʧdc +zG8Ǻ"}) ;7CZ" +%lD̂A-- W`ZS N##SPݱцŽ +y*$?YX3€=q;@}q\I/'fVz(ŝ +B$'WS+el h%0/rFxXI4 zb&Dޒ,2@W8ۑ,{H0 ZbII'%D\a2c13f]- +2{ ai8aP{uyXX}49b +dNԵ"$ẕIh>p֩KO5%[ B_ju.4T*Rğ7UIݒ(BW݊=)ǞezHTڔ`9mOU,s Q3#B rR3䵽XeR)'1E'jRs=kA:uzt2RWϳR` Z#C)ED5O ؠB(@&l5C6_8:d@ +j A%fx)I:O=N{1WO.&HrA1(MhEʝSYġrK>!<|bc,f@-6\ ־A}0.#j\Ծ)"':MS'uibQQ+GfL$& S8@=41+ng9#CFhpCڿ@Zd3Q0CҊr̉nb\ع'KEWehQv+a[[.NUIT%Vlh埬!3_ZƿFE-#!oA+, +8(` ZlxJ@#^~b(6&NKd]v'=bC:'.P >(FjnD0`CFZa/҇^2d&GfjÇ.<5zT&?H`N8knˆ(*3hwq`5"ֈŜ&#T*bވjmb +v"~h&^V1C@IrfSFk6n"@C0&qR&ABf20ZKGf@$-glBbq6 +0ҏh2o$hDDniZJP"8"^P&؞!*ÄG`SN4 &*ƪrtBC@dKtޝV@f%KBϸخN* +DNnF,Z*毚+fTMohf9:7:U򄣤v(*bPC^/KxWb:R3F|{+>^@Ӧ`D&_4;9gʦ\>e9dGz$N^c ƭr^„z^N?#fe@!_""$Đ#jJIn,fJ Ĉ4%^&jxFB(zu,@ G#&zRoV?q"N$YhI22&1A5gP\KflR@ K$B BքSF҆ODGBJBK4L<ȢЄD!G@2_Ih/h)"΀.&\]ƇQ8ntGB +Lf뺐o*[:^T0=>BQi 0$l\I(ױz;{,nDStO"hԏf4n +I +d"#20f˫z媈k”wc%i`%w'DX41eTҦ3P@-:lDԐ,OJ+rd" G\΢=bi {b2wc7Ƃ6=Bt9` BSv' +EmPpJ4eWЖH[BPH8" $|.ZDEl0ؙg\0ҵ1*V{HC$!̒hSG' )bzCƈ!Zo3ZJrCQָXl ć= 8zҎDsYIFspMn3t#?CKvC FfɴVlFVzE5^5mM2Űwȫ8"ibǤDl£GbF,À +ޢw6RT~ +1f^mq1{)`3ig +2|)sز  4Ll9EdvEL88ģgc,mDz4 +qE4=fOR!L*/D""-&!U +;iMnBJ("0_*,lB2N˾$0*a>"2Ap:2zN|&~"6F5EL}cx:"f:*uKKx\x%*bEDz2i/ChN9> IiHgWm8dIiXQ'6HR8e2t.4, />2q'/I:tֽ/2[.SLǡo?ڝK>5$rPWƴXKG~%TXX)/IvE-x U#%uW_6%s{ѳL:V>LfJLXRγ6ָ+6Vh-8Z5T}i7~)Y'n37ƪò~-d8JZh *I[}fg*EL,P6RuR*f +p`LkrNcH@%7"u⌖=%ę%0+mZ++($9J&tiv +倩!Ìwd>6ԚJ$j{*+D'jo#*/n8ÄJ @f/eFb'eCLyW4? f)0m>RvP0B(M#:x#M6,?.2C,$fx~D!9K *%[vf^Y\&V:*$PFz&/C4!тN/ +7LZ n">,;=jNk[c +SD&,Rh\2d&1à˕S8ϤX'z$,xe00|W%.3cD I#xhIhztY:sq wD40iO< 0+Cц҃IހN?zԁlxajt/*ޟ%)=*ZP+\*(Ny:{r+=}0 ֍N7^L1){akDc!3TdJ9תV.|`ԲG/{u^Yz%XrWrw}+N4kw9A8I>-LSC (F޶G7K79}f!p& +ަ#!(e*0+f@.F@, c$mCTe< ͎Am +{ٴJ>»/B*e"osUt[J'@i7Ϸ]=!W}.}g>{0IƬWG*M\ӓJ2:"(u%Vx}$ P\1v&DE +yL'NIk!Bd}р0O +7,~VTk{1fbU +ic yE>ǜU#ȩ0RX 6nHFKM'c쒌U3lLb+*' Ɣ6`?vV|$D&)M{! + 3:܏,w;ĜjD$s:Mf6{a a5G̈́{Bc=``KcϙjI0 +E8# =BJK̀<PB=K( "+}4t8r5 Y)Eʗ$^F$zk#Qőb搟֓AORq$$⥂A% cד qUFA]_#z])ǬŽWJ'2 ԆSѫpUʛx]|Թ(I#ą9FHj`rRW %5Ld:X[,q"\ldmWRhYr0r1ՅUٳdYnFas'/m<"RFآb[Sz8ep/rvqo"B4'5-ۋ=!/ }oT"׈TU:UAK&Gi +#?owe* +!'zE1.B |M&Xz*:DںK dpPc%FՉ͡D&XyeNLqd7~ lTu**(T|@/vf7Ð\F݅[mM-`Bv[of ]:^=\`Kn*S +w`"嘶u<ѭ/a_UKtN(vW9*MXmʬB$TFi.5+=_I蜟۞ gak\k\}53) +Br,!̻.Z¬4+]+q`- +w9QD +!}|ںJLi+AtAz1@˜ʨY"$q{JG +r,5 yϙOf +\ xǏ02%8B X[@9"9T[Q si8> 4y53*pAb\4J |'0떀3  zS +E5s#-:p!Z({z+#頜x;8YV\+ ("S<񜞚53N⢍z | [6À[ +)Bp֋ +Co 0H jc3|Qȫ7!H: +:,h(#,9h" ZbA83 +)*&3!0T}T14 (OQ+>5Sڠ̤P3rؒ1z# + \!?H8Lj(˘P  +%-/; +5AgKh!Xȼ1 k&C[s +2r콃防ۘZtڰQ .)^K= |,ߙdr@KIat@BU#C؞q=3ûkJnRNrATcL(Y7K>x牌*Oq0Fd.r9k@ *>BU Wq3ʠ=ߴS@ Ѷ'K!T)b%q^ؑ:Ӓ c²Y +:[&( +a q6 8K@p,T1*JU +1))9 ?O)ab9#K|Sl`Ú'𑉳j)n;Z IA*uP!; , +OUklTQ9Eݭ h|p>8;عWH xTU"&~V*#k&ABӈQK&xs-u 1IƎ( tm2zN8 +t 8bԢ)0$y*H۔5!9VӒ<0դp0{z0؎"v9 ߐK $U<>4Ț[3[Il ӊi~~ aݣ/:|*"ұ]}^IOd#s'B#'Be}VЏPi[ӓb= [ wYK76v2 +b +UͲ=?h59aT<29m)V> Hހ1 jC1 + ޸5q'I2c53(DA̼1*)9 s="igAi` :"҂֊za.#: +;UW+ ǂ +!0 @ @M7V*Q#6X .E\‘3] +U$J=H + +8W٨!Wvh8 +U$Ǩq#8[z +;Ez&1\ +X~ ؚXԵAXX$*#i3p/ +6IrWS=:;9|4 +2e+л;51.4fJӡ`*N${ЭfM8Jj=:泺'H=m3$;&ש] +71> B&A e* L`XMT8yզUj4WHz pt1:t5TilJi ˭(TE9}鑹z8ŀiʄN9#~$ņTp1. +Q: 61(QNތA[ +$ TdN3wR`Q@]5FRR2=s?@xBap@) ИlM 8$+dgKq)}pm?$`4 ++?`O6#2iJBgPJP@qb Ң gU?/ udvIx4}?_O( g헨~_@<1T@MUWY%;"s󻍾$+%ߠuJD"c~UNKTB~-6eil @.s)@垩lr6}0Ck +os4#N.Ȃ7J*\gxj4~H +03 ܴK?#H'ӻ$$'D|G?@3~:'{ Ͳm(*fП2`zro$h*HH-m'6:J% g8 *NB\B2${p6q5 +H23TR) *T&( ,B4I .:S? b ,/󰼡%ȇM/r#L: +BS ,)%*T l&ƀ.8LD.$*"UKԑN! ¹g~x0jq2?lmS^ %JQl}\L^3$bb6jrC\np> +*qJ^oK.k,jpmo+J +/J1ʩ "c wu<]rRcsN:I RbII4%8}zIsxNqI6ŹZ1'RdD@cL'H@Z +J]!r"9n\6d e2'%c59*['|~v.նnA2Pr9td(Y8Wϟ7C-y* ~.ɬ%󼤖kg$eű=L$)IpTjW!9csL*2FW솎~@{*<"ia^!^@>=K,Rb>AFZ>ĊݏIYsob&c|!Z X@cǺEM; +J@U5֯ Ja}ء"< <"C+E&|68"`~RB#"*FT̜? +D/qN4NR Oa@;#*ABP36I:td +7˲Q jg <(ĭ&HNa,("gY}\ޞ][y +&ENIJp6*RD˸`i@4KC_*F y5s7j11Kh]Hʬl#j~z Q2PhkmM蟺@o `S+gtv\ԍ|Ťxy7WHhYsd8W_C.£s +QdzF߉ilT4sr'c3#* XH#/ )0Bӣ,R"iÍbtA>sĬ-#|v1wseUAx ,ӊ;ͮ MhAHDvs:ݲh*Ȁ{2Ps6#(;$CI+jŋl>J h#,v=Ҡ +E,eU14n s3E]3#"?ߙ != +l&/lfW?vYBE+Pݎ $TRI J2Km LWV:ein#66$UI"X~&s):!IW*2xВ$;SQg[O% @lzR1_Z^2,!6^}*{_)B]Y,t},m˫9ih)*~n(Φi!3jbϋ @c|"' MErT,2lXI +4OAYr9OȞ$]e)qoqO$. Q=ֳ +gӓP XV{޼,K|CNen #:E Pq̰M+sP਌,,0J%(bԧHW:#^ +1PZ;E"V||N. +$oT)hs-&0vA +6) 2n#'c^6r^'J̭ ' +|HZ> + "t)/V;L)' *):/$cA贾z'hnoeb2R]歀!)'P&j8-&zY;ƎaKCx LAqD:f:fՇ{(Hx9rRE/~ : l,LNllD轐B;b`|bGLc|.&J#`2XFϢHi{Need*:ALH+#dlE7"bFG(%B@PEeOD"c67AQbV&? =QЧr5-IAMLO`Ǯ(ʢ>xD.^i2 S &"ȄH,JT|B1Et8tLj + l",;HMxr(8^j3RE1B&FHԍ$#HQe,cB%Y$bP('et2L#$p+*"ڪӷzc QZT!0 @ł !>ad@r4DV`< EzM㶀W-bvw"FdrnVe1j28 O &"ՏPMP겇, +{8 L?.q~'VJ|$EPz]rX1hjGgJ / h{ +)Mik&^ HK'J 5J!NkWJ# =ϫm<2?t4u*f.P p~H-F_%L2( +96uirg'r/Ki,Dv] 8?+ơȁ5[J$~oC(Hv_`^DB` +p֬yB]n#HK&#``JDfdAW|3b]Kd7Z()p;NH"UR7DD0plN9 pu. Vc* )e(q"nM$LiD(p!MjXSeͯG`cBb%&~`e< +"%h">E8qp1P/Y?-)em7PZ*].QrƜ밦ΥߘB$@.m31xjFn&d"j=VR%Y."C lH0P$,bJD0H>K L57y>WG;!yϧkoȺ/t{Lf$w c#7Cv=qgdp7h12hHҡ "U%q45Ui(d$[$Z(l+s9MbCTIi,lC#:H,7wqEodV N|<'$:UʴJ304 MPwΣMT<̎Ʀr&Ϝ{Rytusz"0olVu/ ]dIt&Q+IPi(#ڇO z)q/D̽}K؅aiX]{K",hբ6aR,pGzB+8Fx'?0$Y*uDɹ.h ۖKH8ɓ +JAs:,ra zӚ-ioY_F@Q2'sH?Hۮ\VU#] +GkbR$he'r3 x',a@|%KDac3֒FF +)""&21jaJ +ݨMR/z3c3-?'{(ƹأd宪1d(#KǓ^70TBBې­Ut)Gt:>½5$K"WFJRa"~F?ƥBd5 7Mif1'Z.dU] +&AwOx@O4 .eb>K_&CbrhdBC>4Rn_1voE^Nc^t +Wx}=P_?c@/S)A ~>_O^}b^_12ٌ6d܎KUt2Uݚ}n_0Z鹪jg/:^#.@g!p?N: 8ۆjsx9:]=,X«ND +2)1 +8س"ܟ& +d* (tdQԔ1H*૦|| +2m6M2@*P7E.)`4Ra&*<_̘E +;QgR~*sbAIMĆi*WDL](CA} ){/y{"@Hm̱q8Ez/쾫)4{G@Rв ş& +jR} MYDS{4F|v0 +Qi*x%s +ѕ <-`$odu +4#pG'Λis!#FzjGt|\: /mDt!anJgjw* +I +񧕇+c:ڛ-Oma"%b s-|@A+.2J3 1 3&4 (X<7Kz~Rº%誟:sf !sB1=_UY>3"2>I't"h/-*=LLͬyTdMaMrǝiKC$\ewR@. &| D=>{Zg8S%jqd{ߚ`WϖKUGV,d>bTs Hs"V<52Hj14Gi +fI)jE"2diK;)veʚP&IQ!!Lc}$$4wr|Îvڱ9R) iQF%EQArʯ$ +vD`8Si䰑&|y(}tܗdGr +!NKTP!p徭6f,DMN -vQE%EZXq^0XG +9ڸB\}VHcbd*=CNBJ'I;[v(tY˟D?8{*$U3v "Oh>DǰFu"(pcж]Dͬg^ş=iX@6 +I ەv9|PR"oz0^-n6襕? ǐd\ !Y;|>ONz}eK nbJ2ٓ%m8`يcͧeO;N\B5+Zwn(")rũZ"%d3>В%ULsǕyqQ2IP)cWREh.SJ듳2ϣOpl\dΑQ=~n!%hnGJ7lN9ʣŀIBf34D|ȞL3w)ۊz +cWxCR3RE[dONb*;^ K0[eā8RRyAi]FJr}_%lIU1Lq4piQ5{D^$2ʰ"nrQն=z9?:UE;ZM +ݝJD긗ӧ$M|4qzE2Ȗ)*r8> 좉~ q/ +T19:~s !22PP'i]H)XEim"r| +[ +5+BPȝ( É({y +@18Hjc ?9A< &C -! 89[k ARd0|a~0 퓈HzYgX* ]:؜Qh4ʱ2Axv |Q | abv>‰ ȉ!!L +ٙ/# ⶭ IV@*I*J6Cd%ۏr;^A2<6!;xޭ{-{6sh I"7:9gI pH6`( z%F<=B(귏RAVQ')*ꈤl(?c(Cڋ3DE(حRByDA"[rM i'[Ǝ&X>*$6 +QMx'Ys Y>(*s] D9n1|*dLx~%`צ{ T*.X&H%J +iƑx>zɻ?DF3 :ɓ(*Ԇ1RoAimͪ%(1nhI2O բc*Hh09:*lw;>,AEQ8V0CRjq\Ȣa xN(J/0yxFO b@šM:s6ZՊ wL סI%;O2P"f@4}М P0 zPYҶ4nB (&=8Ǭv ]: }4"-z:s3{ 2? {AȆ|0 ВS +IE/ [ćiB3Y&L1^ I{3qaUIhF( C//x{(b9y/)VY=P +!ƈV- ,0ݘ _(zC5d<{0(F5 3R IT\G낙=K~" YL񔡊YKꏥD>x$#;|V"棸|LslL8 +)K;@c1p4mH~iRџyi=M xV61c =# 08~TS `G1@5Ҏ; +*]XOHpt(^y^q3_PӨNm0 zxz\!H*^Bˀ2lwy.(|N3C ?ؑSBv_I" ۱ZGa :*Xj R[jԱ *1FVxJ(,:*4 +rE,K8AB0g@{(]2R8ڂkfCe]Kk$C`#Sm[^{t b)q1>1 +7ؒBP(2l!M.N(shHTqMz_о\2+Ĥai7G+>!jZt .$KI,Ң(۩z [ON +0LՖMl cmI╘b1  +n;^ab?Bf!TS~~ِ(>_˞)m)Ix)Kw|8$p~=$_(&gOS˨7[()d AԀ">oǴD@,#7htRYXck%~c L'Ff_4QC +3dw`P0q~ʕ~^_P 9wyK7| i1 +|;|UqUF:IJZ(zd}* -}*R#J"Mz@I( i|,}%("2£`*&| +c4 I1:Z~)rJ{/ 9 +ɧд,I;2s,{D 8 E9˲ jƤX "Һ'BDȬBM4뼞$iA.4̂yJRAA*,H2r%:(+}@Z4/`a{,  :_1BlRf~S H)@CV`zG("S`H \ +E@0PN,"**PcH?Q&lFp+z(E +rJ!lZ&E ⢬ +AM'Ĩa; +Xj$WuDR;4If~ +l$D Ob/<XP$`A=ȤxW0=Xfmb0j0j' gӇ';S(HO2GEa#@%FXJDɑr=KbTD4*iyAS ?$IB#nPq[6hUIҨ5Q, %45Ԉ" "Y}V뛦 B"a)AV|d1ސR2ldQjȤNE+5#]ueIHMg~(&<=Ln- MdV]DKVNBTlg%m?$>s)]ٕ巉e{㊸,c㱖TF ^lZRMffmu,H.݀IT5K|>r.9bIώ5DaE>+Db0#J:d&N@Eip2'(o>.%`"&pC '0 /YD@tX r I'i+"&cԥrJ9<zb>+@d:#܈%DbE*j.$'rr/sF +vlyC[ṖxujԬ|ئ)RYʌd&M +gRgRsJW/jW~vH$vX肁Ph.FN1+3,x"@7gl^Ͼ!Ϝ4‘,ƪ~1X)ͬ`r'z$Oj1(.,"^CG~wb;HsIQ(P$EB[j"$QEMqFC8Xbp($(̘KOr&N H*b.^uItp$E8E:$+ qO,BZrt2G(bRfV&C| Jt} Gr"jV0dK%!B&:nĨvƼBXS聩PXvcm!N[Ƥ焐x¤#Itð |; C Ji&V!d,Ն`#P.!,Wd6Rqg!"أt2ir3Ct1AD4z-LH24% +=ښ4D:skP0bT7a$+rBt'$$!/vDv ^ʐQC "T<`2tfj0nR&EA.dRΔтm":-"dFFtL8`"TM,z0AT/>/ +8&b,"F"Nla6"l3Ԡr"t"$<`(Z)S򹲀c\FB 5Bb1Dz)&CL2vôĎDw(hDwQj +)|>sd#qyq@H"yuRxgRqWڈzp%tlN} UEbF$@17 ,̭=qi1q+D10"u+uʎ|_j7l@"bx7W'ђ#%`/sKd[ȷcC5)1#)ƂT-w_+h.v1eԛ V&‡ФL ]s)N"3 +T0e\>ނLG1O.N2GJiG*?T礣`6gC:kgW>G#T(f|!.bOì#@)Ep0iDMIEf̖"S;$1uŨ.*; +0AE9n~z# +UH=xo4B'Rù2)!p>H愺RQ(:ƬD4 N]&cd) 򢒤UBGsB/Y&fFj$jtLAM"]JĭdWLh.Ř >%cenA)%E9(R $*\#DGV\^6+6!$:3ib&.$LF:# ídE}xI2%RdC/TWS#JGxXbBH$"w$VLAôH!2F-Wo*m#N`$d&+".B<*# + &ATTFƖBl,C#A0BQ +4-Z<[Ŀ E09l'd3{6YUN΂/BPi_,Іt`yg@#(Gf.dUʔ#x0(fP`-A d6m`"X[fjuiKCFL +"/" g$q7!4,w1a@ l \1RF$|-h,ldq :˹Q 0"5BiXJ0i9J;`KJ:;,22-$G`bt"; +H:PC;35t%ă:r5&՜{@V,EVQV U5v1g)ٶ 5R=π (YNQx*ǟX>(%ZdCԊMn/ka)*od(#D "1HT(}Ɖ'U+78!\(KS|1㣰DnCj-Niٸ3)&wLCæxm#_ZF-o48wÒ|aYlә$5s{YI TÔ|HTrgU:V i@R.]qfQcr>hD .4 ]"c|?6*P7r]"KnIW̸`-JK|fdLVqIF-{ֶpOb-m?QlOv`F\YT0d+ʘCN  +_/  _À8}>\`HIo OH^'B_ 0Y {@5BBQ"7 | K +>}TMΤgӀQ ?Oh +HOTH Lb`71$v'Q.jh$X ?@>s'~ySo:15e}=l8ܬC(H=C4+@v9( +p3M~6x&H B.٨Py}2& $Na{lB'g,h cO2H5h<(#,k(Kbȯ +7鴴*,.R9+ͺЯ䤳}eQ(>$ H3K p:45 ++;qʻ+ =" fq 5ϣ|g҈o*9kpnJ?JS} c&g{Jj_ȓPgȾBҭUğ{%%0$L0! ?RtͳgTͥ~.26tl#깲]+RgHIB~ヂp@6|96 '+-~T `F:vrI"b"<7j GߐtXܪ>#Q#45HO_yΉͼ}!= qVjbxJ:(Yy ٫w3fEJy1Rrg + (PrSuL+VE@+y3VyUU",Kw)tUBCHPHnLh2(t Q*$+00fD`cLmE>?ٴ'J]2w +7TUʰS&O:Abw[_j"Lmji +&RQ&!v~I)LmڥB"PGrE=/ZHK:Ȃ/:M2E= |ϥEh1B,vX\#(d~(3U+ LDtʸXYNw(dHd)2gFG ay#R#MkDjDeOT $TY܅@Dҫt12ziyIxAV=r._k,H +D+܈^B|='׽q@4 J6QA68KAk+gdڄY?@T B-UTvJ HMn_sCE<ײk1 +2nnSռxpEmz4tBs9$_4o\oRtbtѢ0.(|=Vkiiz3*&BvߖQ܍ǣ~>:gbt`̩,BSi?9`E tA"n`K _y,P9)(}=ݳ?e +<xX/ɀ舑XF$iH,Ҥ#})p&` R 1 D`0Z (=/ zH~`㈸Y/!ॏЀ (F0$8.vخu $>wP` | +˚Ģ)̪Z1Qwi:'E9۾(#-) +{:z:Ҍ>K.zv J)Aj68<һIF1/*?)깉32.!LL1'Ɲ;Akޘ;!(f;В yMspX<+;DMˮMyBb6ߛK8)1@>:[( @HНD`>;+Ջ{IB4Pm$<9V!hUʂK0 (21C"!$,,)"8PrBK95xZz+ O5\@ኈ<q<"L|=dІ .'!MR_ +Iš8MZ|.D/؋`#\"6ꅷB9TaŢzC'I7؏ƻ#w"S0?@!/p =i$8 ++4PҍAKd#XZ{# 8 ǒ} k$ n Y͵ۃz2;gx!RԨP 8|-YA 'C'`U` ѿ P1g +A2&Xϥ볰WI@ ܕQ!1AH +KvZq8~%ae('mQyS.U JI.)ҴM!q;KB;l*n¼K$*+Av ![,QЍ#Ѩ(aMr; !|ʵ"aҾ~ +ʂ +ԩ͜7Pa`"+'uʔSeU;)qqY +L\*Ap4s:CIL="ATJyɺb ܡ&9,J:6Y)XaгaDrT]D6Rڛ\,K͡: QOѓČ`0yFz'0 +gŪCА +$4rZAВK5ИAi>dBYd!.:UC.ׁiN"Nh̠@ B17Su'K؂aX.# 6;2ƜR@ +6d.p?p +V#kX8ާlR}$# +-Xh Ԑb-d +7dt+"VWZҙѠ2X + +SP\-EO+h(8ݗ7ה;|W݊uZFh x;èA +6 +G*s +bwBv +p +moX}B34[f44""2IZ9ڑP@|!8T`IÛ +! + +*UhS D$1Ue:;* %5{ +R_} i*^LLЃ%:ȕڻqa]u=FLRI;SXI(,b>мO}<4ƕהT{؊@ _i_(Iџ!U)8zz* ++'`ߨzр +m~6H\kk,{+2jLF2&S2T-4dB}I3俼RDb{QB|XUPJGx4 qz9?`U@AfHbF;co?0SyNIz[l{7ͫ4P)մ(5U13nR!k=IΉatG^B"*}B`r (8i[?{r]z(2ޓo.s( +l#˕қ] w=:{J]Jy +W-h3ACvԪ]`?; +/e(Z hC6w ^[(١)N粛bHY$i$ ;a)Pn|jY-!"rP*՗fp5lS[ƝMNjn9)x8Ɛȉywe0BVHT:xD/SHl"B2$y}H-Y&9F+CBb)b5ulyQs~FX%Pۓl62(.K-ȝ*> {vlxaĩ#UաRD{cZ|֥a PTecB/FY n?$~L!ϖYDw%Dn xLiJN+l%T^.)0[d=g +6(f5MZ$&R|'.L1gb=ǸA<23@W͘F Ś3OS !l͕rm"!'JkP®\T|uNISyE3n̎fkX)O%N2"y.]5(}8!h^uYNr}I -<&S 5HIX\fb Lɚ-pSN2e'3!vUP 1>7(s 3+VYf +uX +[7v9v;Mh1-|cKl3 +\$2b/o#K6.&_d0nZG'%cJ Ph abP5ad1 +`Ʀ*&OTbPx$*Mr"F6ĸLNVo/aXªp9$HFHd8XN2b#l'Ff!D, ʑƦ>gF= l0pf]$ + l~#P7&cX^w>ak2 +֧= )% +/9G30CN&L~ʠjl0n[ p̿$:S+<lK\mg%O(=B"BF"+.5+OH4\>/N +SL"&ctֈcAXhbd">;ȥ2m2CɴS 94"Ha|H0!.D{B\UH2Ym>R,'%hS 8h#JEy%Ӆ*|@\-#B"t,.`"b*"6d/bH4cGBLl+r aBG\"a' @"=`:;@H$8!f6Ebi:0WNkÚ%]uE" +$ +b#C +ipy# ('>e'pFY#8c /F1Z r5G|iG]Pa(qdj+0>lIah6ƼpsQhZ#wzer1Ok슊/Tcll/g3t 3PkbH#ldi%Ll51cR9 ~2T0 4" +.z$ d}qlFsx:"F\B* ICk&/#< 2Ǒ2Ƣ6g"gb(^JV=R?ZcnZd,C !'rvӯx"U/䬭b"5lIH9-*EFG7!IO"Tj$G&E4}txb¸_+d\UcfaH[*lb"8"foTYttRtS,sOIv^CsOC9,TA Gp+xcUb>h֕Ty1k#`4)úZO0Rh>: 斛$0U#k +UqLb.T0*o/謉úr=} +^!lzy(Zy7@܇W 8 Y\@)(OC|*,XS~<*.x5!N͂`ݓR6 lN1$,vFy?|Dxtx`wUT xXE?Bo%$89bai(%!;Pea;i$!HjH-H`a@P oK[&jDxف+ܹfؙ$&Lc~`KqިtT=R^tKAhkj0fULU5mizyj% +#&Uw * }#&6:hfbΫSʵyR̎:Jy|_d.g)4k*+ &5 tG)^(w[)b #&;9[dɇLlʸ?rȎGQ&tq1A r(7UIk|.R&`!f@X%ԢB'VIDK\T0_$%Q'yTJdWޔaVH+󘛙$V>ŨmDB +f)XP"wUn7ӖFGZB\/~2 +ٹ;)+2kiZb +ldTn58@$Owl?~%ndd3@Ԫa;qǂ_ B:5HV~@ɲ=((>B 分E6s/8TOa\^6P.JYU,498KM$/ Z+N[LYz$Bn8P<!=7/ކ~!#%8 !QLH&C؃J*:A[c^!k t*GHAO5"?Db@p{`($@Q9t!/CY2L_T<1U3C2ؘL?ߑ0:s.Ed4lJ]Tm2Z`=_G:'|€`0PPz_2.09 UQ , a`A&%bl"5>cЦq)7HdoNi?~'7Z: uf-Ly^M/A@]nߓAHip7n$~곲g +?Κ + YCRR I~Pc'+:J^ z)*ƈ"ZĜIŽt1n{҂oBp{;})4Ҡ@"2CL}K '1"\mʙ,^й{q$C=2 +%6,8R*%,I0Q~3؊%()oRjF$+l# b:;3ٮ<܀2==*g>KM !U +1-qA'#F0*{r +(Vv)ƛ_ChbԴn +6/UŶ~( +р.I" ~"0*Jv2>;H}a E0NސHۜʒ|w f"| 9K"Pk){; V*)kNS1duG&a(uX";~R?H^қPhBbZC"ũ.4CVF)R& pPDECpZR}e +Syn%a;ǸðV:`@r:Ǒzfԟ:LjU + + #mv!#(d<š,@ 9{"猯~}Y R]([µ %e'V~,ednĭYEqIʕَb^xw%pFrzpbe +zG'5rQ[A祻"zzU B z۔t舣n17f4DTQYFghjA@ &3o&l-Ř[)=(5΢*Hn?MN`HT侒 d}`6'^R +jUj'TځSyXECVp W}TsoǭR.cC~I F{cTF˨QOҼHYoj[Eh[E1Nq +=.N)t}H(@a!b36n0AD> +$gUTB"u)լr;S[)SvN8 'tP (DծD)[ + >.B@.e<– 6J$nU,򮧔ި~|(F՛ndZ:TDy{+Ɉ.(Z ~vCUO[CѴ&aH3e;o(EQʊed0݊]&#qsK:6{aKłI W&|ԋ|bk]Dధ#Y4HAYS:ha&1e' +cF%CG]E@Ozҝ~)?$ecG&4'A ꘳S6$-˝QUTm&&+@5)@;XK򭔙 !#!஬`kbЎZzˌ| +* )ޢk^z(Ҁ 96Qp1{0`љж)haBT ) +p 5Ҫ?( +8?r; { !yRz#++X{{ +;1(5㉲ݛ =%򞉠ˈȦ0x*с,0H'6j.i@L"H٦("{b/[֑єp`2  [,r+^.IB +#R(AKaF BA+! zyZ῱ۢYR1> +i9#.*vȔ ZyaO.-,ўqy," +i- + +|K"ƻI[d Qr/3h09\+h8럔5Cr6ꠊi p Q@yhn8w$ 0yv8`{ +0s|x( *"XB ?:aX8 +`x4kToJY;Z* Ħ206YgAX4Hp豕{ 蛕1J+ \g"cL;LJ^?̣q,":I#@7Zjɱ'8= 0}wh)&𰥪HсK- qf`#p𫉂MPӕ 2|w-6rN~SIE~ + ɍp R:9. jU$҉/ +Q" ,ğ8z!.CNa45 5F`4l.@^Q9~ cLA?,@Y0yTӗ@0l5X9i0(Y5i0"﮺xh$y [#YV YљZ<ɶTa¯q; I[ ۗvR21={2Y u3Q nX0xv3V H8Gy "A|&[FyQ“ Q倚 +0Pi=U)I8ɇy3aATRIu +a +?q6)  <}G$a7܀EnA Q9f?񋘁ȧƈyB ̈1`];&p,Р I + RQЊpSb +ۻp2zG}hxwi xpP~Xw  y~ E`JQӚY@rDA'!yL(~H [؈բbM6M&,'*_l +=ܟSv& (^Z-WY+C=Ӧ`1(&)@l]ޒ05PY91Rv>,,WI 4ȎԢ M@ Ir픛hsF@ݛ9m0 ))F1{@ hU éJTzzQp0.m#asgcrbX=D#\`d!c,!ZGbMkI6aB.Ҷ:qEz_-K͌рLXP!UHKV iX\a@A= +ф2xHDV!*62WX[ٖ') | +Y%2D,NK=(Hd)6ihV +j t ?֚喂 /ŔZ(^{p A jo "be U]zy"NC֊R +(qވLYpYbTpi"P y%€M +pЙL NΉ|4-I{Y ;/HYʀ2LHurbhݒԍ| t$EИ;1Dv)pZ@ :IN؝)J;O]B) ++#gz+;'I<Ԏ{h|zNkfzv@v`UCMiE /`ޖ辀A0ݟ0 +2 +G`~@ + +x|-ށY +-+6ʗ?&NJ;jMB.l16P2m +r튶]x)t4\2*ʐl֑m/ +t(!4j ((Zb,'\;r)gЛ @.27:-Bӡ9RXn +x 'V-M:𫈫JW + + Hm3+aZ! k HLӔǼCu;3\?)$ ='p>uPyaҼkj7ֽ<8h+0gޤUNq,K؉XD)[m-XhR3vNp-/}R+9-!0QOCuF;P +HerYPХٻЉaR[*DyD[7a0Ոn.\k݋u  +9.͵[!AY KFaVPyvtߚv\WT Ҏ y< +5Z +*yvO e??DP`, G/~LW1*C}>ϰP h+`i@~0̤ 5{@` +vG9 +&2l@|׻%St |/]Iji@) +lZO k5.CGVۤ0 +y[tY s2x0 `Nu<@yX(Htg/+^7}Ёð0"``XF @ + +8` Q|sy晸t hu[`i|p +, \5z6+sm3 DZk2뱈HK,b5;j mM`9;*>ųU +E<*'TD; 1 N4krϵ*4T9!M[DRbv hCBM-%>:tU%r֤)} Prѭ1}Kk,]: +^*[/+b-kyhR<'OCNV< "ڈM˘ĂB +'-ԑ)tM+؝Tu) +0 .mMclG%(pS+r1"p i}~eES  +v#ؕ졌؈Q` +T¶Vn : +0S-cSfHJx%&[Jwrʟ;coSz>{'7 +N6fi,%nwju?|b>"2ַO[z,B0oǫ.@txJ{h9Stj2+/`4:mrZh1j"J +rBc0'|\C^|һ^9udRە<VdWT!±ǹ"nmEX:)'~>x&1Sk $毢A9 7r5{u x$T сs$;m5,;$ԷXh0lqV \x'XASi7;#z +3w3+Q+u[;6S&k(rd=C/ I#Q>OC$X#;PBx^c5=`z3H@UQps?dH!(r7GH`Z$= MuC +02M fcyI1EǴE\U$e +T!@tB" 4fٰYơgSRi,'ސ5́!e,"CTBvzRp͚:R qSebClu1=i^͑=اj!$ ge׺CM4#L}lLޭ H05'Njܸ'PEjHS`FYQ:墚$xMN i+2sumZa38̂|;@/Cmqy- ϸ Xi:My{g.rLi§"CFN!S@5YF'ytv`[coElAhy ,%ү c"`/I>Х$b>hN#A)đ^d1zZ*( v_fLH|Eaf}p +E҈``L٢4U盞'p35VxhPCcnfoLZI0,a=k60 8!8@,y=]#b+!4%#`=\; hF1:}T< PD!X!P >IL!&d)fz"" +"""W*XFlI6; CNiPW%FOR&WY@2(L69` m%b6p^F6'TL{i|O~F$^ I|aȅ +F i@!/<#`ҧ'"V)4Fz"FO~8^50eUBNybbtg'b*%6A6haPMf +r;f3K$WC2aIS!Ffl]fAK ZKP hFmdo% 0Ȧ-mkB7&u$hfbhF)j`.6, hFɦsh]R.k-&rb&nedO,:LdbH`s@pHH%"vh"`E#".$'ld&Oa +4bfK.qh)ł郴s}"\f!l]"nnt)d4_xv#*Z*bBAf+hmJE +@Rz&f3 1}b#c*,`ҾvG;$c"HHr%B`[hng&ML(0RS`E+d#-ES4Ԅb5]GP)veޓ$v.Bn^V 1-A21f| $O +#|1rXQd6K63^KK`98Z̄/7;aB,6?r@.ž0aBc. 2 +^Dgt1M +$*&a@,,d/K"fj4!0*}t >P&bl#…Da0h&, ^ ~ON$-F76SˆEc~8 +D̆^* ¹bO%p%wD;D2ڌFcu m"SD^2`M6^L#Ic97#`&į +-cU v"8%F ʦЭ*h)eb*CWLL’fnL[l.gm0QX>"^&muxl.b_l(-х)6L#\ f$-Θ˴'L̕!bq QI|j"IcHv%|qm#kq( (q$z؜_& +|*`9@rX'~,d&&L[9:UX}w9ľZxbMz2.gSu8r7rK\{#B!sE[;pS^®~#hBj3.,]XH;W ^@Z +b3T`%M BA +Z~Cj%y A+aJzIo.b,.,/Š`մD4`'ڃdElc4YB( %|嫆Eo3pBғ/G%;q~4L+:Nчw_rԆ +p$m&1ڥqsOHq&ep\a6"bM*m/thE JQ +qQk/ ogfRҌXA$uB0%ETD( ܃ceF/pWK%0֞.k)m$NlHeD`l~u^  ~?_@`( }>@(IhPB_+5eSY\F_:?4JMiYL.{D@-F|>5xUy_m녖>j# 8s{uz\vH[ +V7@L"X@,|e*VkVwU +kN>K_o[oé], +*P +?B(Mܟg +:G@+ +3k^-d#-l,{h3RI )btq6'yPsπ/k$Ph?zFЦ 6/@2Ɗ&|3C54:mz$:rs\-xLh)g) +x 0ϥֳS}r|E2)'R*Brxz +6@ +x'a"#h EKdՔeh= qAo)!Y@"u;t`vB +~ ?ҁHJȠ|^ :n{ `9'1@^YJFг3 +F_^Mt GI +SR]p +A$2J +\W84-(~` MҒ2Vo!2¤)r psj~g̰YЫBieh4M! R,)xsV)ɆZtIOMd ۇ>IP!ޅᜀ5'{t 2K:\ +.nR͝lW,蠓8ȩ!$5QTs'^us<;-*jM+EJP:a2Eg" +eD'M0[ΰ<蔢 +\,N %&AG%%MU<*)Ŵ6g +2hёLS1hKŚh'g-֊e +AE=J)  3.ZĴMi=c=7HƑ< 0vFh $wR< E8 !s Ј +vD!rM%༎ =F`z@aJ-4qԽg"Øt;0LQi`s$?{* %RM)" r.*b@3K4|pKA,;>6{4R yU*g2UBJhXeu .X9D)8b*qbWhN53Sm"BDA)\. ha? "*ДuLiY0⋍HW5%"Ne39DMgU.q&SroM'.iH!KKD>ϑɮm]bCj`X^$$YkLG|脚!X h"[0X/1(VI):(^$d%R6xG)y$vq@(ԣӞ{j,3'YUXD,TlKKiTV5DA\,H=rG)VmIFmc!z$2yv$\qn"xne3)4 H>S9cYL]_ # ၸ"2~H(RP9{EH,5֋KFSp6K&33Y4ʟ ! %!Da=]#Ṃz"yx1^%2*,@ωEdĔ7FO `!ažf1RrYܤ0#hz4:F\Qe%Lk6,7b;2Ԥ͢)ҵ2Y +ꪜ"r33g2J,d +/L͌Z]X@$3?p㐒z0xi}sh`h +pyHyssS +-xw#v +*,HPR*LCxmjulpp!*abK;oPlA9{ P29[־:h0C2k 3xC*P1-^ %2,so: >Ic3gAZ5,S%">1 +F`yWY_`/ȁ/8 z8ʠ>t4, +0 2F&" 2S +G^ +) /1ap";)$! 729+hȖ98KhҤ]y {+xY#:QZ4bD)r#@a¸n +QhZ&` )+1:ۛ̌KPBI( j*xq r[K[nRА +8iّz! +;?ȏ*"kyGU+'qb$) [ڻll #aIxX+|x$# +Ҧ2"̱ +:*@ 1ɠ) +8zaP;j +{L$BH#% @| (#ȤDN@iߒ {6 +sHh 0kZU2(c&Kڝ""cG*t Ͻ5Șpj0)8 ȧG QnЌQ1|jg (˛,/۔F:ؗY[`|0BȌ +)WxX(2PFxE(22 DƇ{yXu>8{hy@ +x{h Bjdɀ p'M +=CCâ/*J "ˡ0pl@txd0 +@z9@<)0stHSD*Z >RPEpH\0RX@5 !rѥ,cJ3&=@ /8ijic{?֋$:kc9䒖T, Yߐ-Zv,r +kq?[q#C%#3a_Q[Ics [f0E p({Z0#fhʔOrH 1H p("²iڈݢXډЈ!,Qx=ݣc痹W\ƥ"~Pѣ5ș!Zd C]?3 +[`#W{m `81 HJ@K히* G#GSJa=bLd΍4D%̴Чϫzj ~:є¢Ш1 +В )8*˽ةXJ2 T"Fubq GJCOFLҋa +<)r*%`XsPCĠha< ) + I +h!X[xFp +rqM S<,U&󲔑*@`zs +Jf? 2ie- +='#Ú +pP߬q;.VԌ +]8| %(Z3)hѾC@[\1Qȡف>vۉ16XUpl7p4 :㮝i}}]Ѹ }`~AR)}8{vyB %9\QW!TD9 oĐ[ZP | (zqj`p`bEaX~08lBpync3Xk} zxоYלn4 +8Ȳ2(@暉H.1lc ԋ*9t3aI5MFFN(4M q3x",ݱLK PcZ# cU}޻8Aqg'u6˞ے+N17봬NYF :Jz+9eZq~nG7%y +I !~(Q#cV%#qQ QОR +t=@Q :'?4ЃѰ81rz3ҧ +0o +p 擇(#eZ|{ћcL=ңTa!;8$x%|G'C +& +ݚ:PB(󨊭FE+[i槫pn$&^,G:t +DN4~;{ +Ud#6HY`2IX5ISZ)s|"w*8vlމv.ЊC"Њ*"z4V鼹XcNSe#| +)1b4R?Kd!+ߟ"s9=tȉΡ'ow#>Yr:ԵC[fXg@0-.>Bag`o Kn +1k8rwIRS` HS*?; +MY$fI2'ţ݂X^% E) G@Hz'AAc;7f<4 =Hf1z]|FK,7\Y@.$|'@\n +mO +g@4ou ~ܰgh/"8 +N9 +sȳ$Ѷ0 5h.0|<:(h*0G <ʹ} O^%/Ua?J+2R):`5OG䂔'}ۉH}<^ 9ޫ1u)7Oo* 4}(?uhѡTN2~'O+( +8Pr JVX BO Z4h{i(j5{b-2ڎ3kgqy?zksMҟz`1w@`iZyvȀ`;zgxlzgg,"~ +'C2=ex^#Tp͠V,%*&x=DH=q@x8HKdD lr"Oy!4S` @q%$_$VMIz + +GCN>X q4+PBpbeّ7&j Y3_C%"vEw"&[NZc%=s>qj&ı@Q\^Fm'daMmؤ & +E"=9#VD+R(^1D\f5j|LK. } Ĺt _XlȄHX"ঀ Qx-%4W+l +q|*E'4Io }B gz*KQ/ϘZ <&&l 1&. {Z*G#]w]kIAF̻}X LJ [$V1j_9RHL9t%ef3k>c1 + GP(Lj9T +=+@0=G0=Z<8r B H3$1#49 `XEq4 1Y +A*(x"\? .:+0HL +pc*pX d<}" H@ @ +@8>#yFVDzC;'d`4Ϊ*1hil(4v)jໟ=HdpV )9&JT1tJ9H揚;("`&KXQ;Vى!.A%G6L,鎎A08/Kp)Ė!r*{dsedA l-AiB@0XL6 ή6c_Ve&NDC9FMQ5IͲꨓuewU8ZCKwI>;>*{Zݿ򰦹O#tj q2l 4O#"T[)ʈ e."^] @`0VO\EM\8"OVCCXdec5[>Rdof .dTI|XEICkL"Ι0@ȢBT^42,#_L@J[ɬƄ c&<3J@e@003,edC?TZE^q #E^<0?& 6f|)ʊRG60VH0ASAM Nk@0,t"dOAAA@o<A@0@ MnINȂ(m`1bPn-ZqVM:bd%B<D@*'fa@rPBi 0NB+Br?⪟%&]W菣9F!$ψDf9ebWGJG1N7E7*&亸I`!Ď3EJ̎C0.J,bcI1!fEeLcKC1 `$I11u@d .ch#JB/#/XNĤ4fbB/*JPB*fDB4kXtQe:,"^Aoh +L/l$ : QCz<#Z*P4071*DWebEH&F ˦cj! Enbd\9.Z0c"EP2%h%MBBuVf1(fV%CEfk( k@ZD#`.N d/#O +]j`%P :L$u:"GMZ&"3L5j"aT*[BfH/$"*\0QˠIh[oGW4#֒*$Wm`"UF$-2> Eorb5:@&?TX&we; >hmXb=l|Fv)̂HYǍH`(Dv 24(lLr(E'L2,.NHOCj`#6:pBa34 Ȫl[me7E?Z4L f&)ig;X@$ ;N!eQ ַXDIK"3!> +q#-Zp=@'vFBG-b"$AMԌݾ%lA^8A`(ՄĕF.bS^HUG32 |-*I D0@8 $),Hޠ2D IVr,Hd4oOAy&a A"y)u5o? #|f֑#E8~x B(Pv`$ +uF.I~Q#@( +`4!a &@c!:8L].l-w,0njM@i0n7O*%b-'S&m;:$Ϗ7<3~4q:N˞keDDuC<3cԜH__V.1^#B%]e-+H}Jy9e$$-lH&djhƈPMB~N'6E48>XL+SBsZ$a2Z!Cb>jAy"ﲦV*9ĂicBB&3v6O+p."i +o ':KkKN +ZJ+Ιc0e^Qtclf#&\^2kReZQWGy!~!0xd*._@`P(EpH?4P B0 C Ҡ:Cߴu +%Rqy4if77wI Rm > \_qFpFTd:]6H J=\UBn0o%Gp`3D.%@қ ~x/hO'8{zHpTjZ'|N "kʿG҆|H#:2Jz~DZ:(SF-L@+`{B}ˊg#hԝ0ޢjlJbƹA:}i2 uٚmYUY +T I}.'Ki-917L<=| +A,LS + +.1H{9T7tָQ͙)&1@7Κ4Nw)Ц#FAyIx|X`Y+n ++;$>1QmE47|L #&"pNΩ\Lj݉;7F @k2Ĉ$`gO'd5nG&db]K64dH]3{I:X//%cx }r@TU!ŝ[-]l +Bs&x +pH̥gvЪNLd%討bN !aNaQ{];sʰC +l&e <둣dd4XҡUfϫW2{Y4~d a$~_`F*m2X X+TLTz)y +IZN +TD"AIJB,vBǘ_!|Gakd2yɣy-#BӖ˱q~TԕZ1CV +b&T5f"'{+:WLOqHNIܤ)ju| +kL1+]!EVH&2%1$Vvx!/Cw;^1Z0l + +A8"| +Q-(u +0~6.:H-l/cIl1A&S4 B'H6TЦƉRA𐕨 U3r껮Qe!fF<풷x+XXA9K(18ʩ cP1`akQ֔rJs -H7\mR0p$z:c0!@W@}.F ` +1a!Sq?(NItu<RkQ=\՘o\V%KrASy".טSR@W2Txڭ ZjP%% "|Jg&P66K/N(XaZݶEB[ VRO"U^d9d>? B +-1cG#{eaLҲ\&:gGҞtsJm.s| t+m*dďm)c9 Q19ݺU%fFNHxG12șZN.txi( ++٢&+:;wi&)jC#0 +x2qe!~;6MSĢJԟ.q# +-w6%BZ5翡77^*|#Q j(쿑%6BM?c?GcիdBաFf[S~mR0GJ&Ki*%(uTiH./8q*%Ǧ[ɯ}&{ԏ#C@fG$(>.mVJ)\D/ +Th,^(M2{I(9Bp[T9zf|+WB$Kӝ>Y׈B +[I,,qJ؊ Ո!#H9?<"0z%xZ)  +z98/9AAj6CjlPfOivyP B:H| }*{ 讉萒 Qal lUy@0@ A,x؈䯂Q\vDJh@"*/a_ ҃PްL_ z o Av +\QlȒhHƸHP pz!}tp61S+ƫ) - +:=[kD'5yCGQj &A09 <|33s9$.[+8p 7aIG4;f +ю@ɦ!H*cs9<x!3 +{ Q:"\B"j:iZ֌3B0!Lp1? +ޒs(" #KMhi@s9It9A8D9,jX#"܊};!:X +:՞AsܑZABo@N0є(Z,9[^Fk66(ދ@ck R +i4@+BBa9[`22Nr?LjQ")}8  ̕;a4?N !Qܠ1(9[ +$Bj,+P H͡J[0  pX +0|9jBzI~iDjK iųK@&(ZA+Pi*sMĄDžA"km +Cb'P +ix!蠥¥ 8qAirl>yiРUI##ZM?Ȳz 7/rRF +2礨yN4 +P̏Yҵ{?,H4"n8r_`M Qu ̀K1+ 8 B!5y& + )`،iMH0z}< ´;I0t@zky@u@{~yw~&i4pĉ\ɭ!<%-j92}쮉Y ?s@틃lOHFy{Ima1(%^x Lڨ yqAYqS`,?% z* P p}h~q8 +/3A]ݵl+m<Ҵ\InJ6TVݽ#RD'#!AX!p,L?KV3F82Jq4,Ï螏ELIB + +@ޭ4G1-/L [ZC A-7ֈȐlȉ~p2|U: RvǡH,S9ܳ@;N*˵ОwC)ό;1&,C2QA +|ң#׿c3u0l݌|Cr` Y"&>٭[!+:b⢊zҳ" <:9xIX8dp;gbqKj@#`;2xKKx_:gr'Dg|g[rx7AҶlxEE`⩷*3cΠwpy'Т((Pމ7*J~f +(E-(|, +m۝IٸwȊDh1SظqBO uݨA iN +Y +u'Ӵl9{@:;nβg<x#*bc `,-n%+ު26 Y0"TgU;^GU| +hix͵&~]Zq֮蕲l6BQWoj2("*@ @ / X?TdC` $} ~D8 ;`(_`h0 +?p  +ơ0ֹ(& AW>_Pk DqE!"Ehq>'bPi>U2.! +q:Wu`;PQ?d5 Y:BIO~5[j4-cH5)Ftl}>zq2~>DJZ#g韈S^*2::,r*6ITk"3i84bnx`" +:G +(͓\4F/|- +?*@~I` ,}g{BU*N̼ +:z"RNPSp}LvB;KHTVJS34B &- $4V˔u"SbK +ڠQ:ȒG{˴N*QRq+~t1ӎr:TD(C@ϴtR:#:+NG-NUz&uO@K(;|);kb=`ck!b4=xR +\;z@b|)7 ciQQ'QRg&G2Xpż!*V, <{>;H@4} n:u$hH|n{Pr$ NdK.xơx 4OaN2fCi+/OuJ&ϫt` RхјmFo3סt4@B󪐜"CGT>:2'H +yz'ԋѓ=7|3" '!DLd4ṕ(P8€PR?YF8{AA7B(;`hH cxy gD8C4eGX bILʈE2~%֠D Y;@f1q:6Kdr,G rN\YE/bI$Uh_l˓@-@DHd_D +Ѷ*hbM`)b0rA4 !LY$H+2-!fp̲elD +$I4ݯx)Ri0 +NxJHj!D钢4leIŗRrH;.D@(tRyH&Ч&go/ě?ɽIDI PgͼXF=ތn*֔QXݤkfH. +AvBY{ODۺv"E>PI['z)?:dkuGgit|0#pbԉBE-`[#jLR_XXiCyđ7(561(H*I^Mp@tGQ=vKˍYKɍ$5n@dFoU-ed ^/rPtW=&"|W1ȭjKt.JeuC#u\5!N4/g*#ZC\oRIʸM:T%pQ>GWuAĹlS+$,=XD%;jW.#-h6QKo +4\:'92sIOT1SPa8ѳ [ +NP2@՝ZXbL|uF Q(sW 8b +ˀTE5,,H u#d +RuK:7e +S 1N4Y+Ș>W_lPChPz@H=9ʼ}AA<cy +Q+tQ<@8?Ǡ$`3tZQFQt\&nb@B%)3,eȪt4Ԓ*@H Y$K"?2xPI(ʎB>2&?c&PdOF3 +#&%F#4QR*{3ydwQNTɩ`#"p'$KCPjdWļoVcC &Dx6vh&7(C`C ,DgKthXJ5dL* 2˸X~.yZ +J8FTGvH:ɦ">A> +8?Id\eDv]êl\B>tf@NQ 7E6'J4hLDz;E~΅UJ#Ř'vQ b O2$ +xkC"`Jb4CxO~<(B"x[Rqk'v&:at%GS)!nVBV<(V,vT }IQKD&)r2qbNLKƔDTg$KOL$<@HKjD;$-gL%xF]d$bfr("(pEF"Co(5,INH%$?'&0KĻR/7,wRKb\##hlBf@eVB \a[6Dh~r+a2.:Bc+H&g$cHdcbbiD"JK|)ozLt9:MC`37fgHBN8e&d= _5FCc'# ++#D27a49nacf9 +Ct5'(`b Y$8MT#HKP.oeUB4 PfIo*Bb<fBEdbF"[e +7,ZtDF-fL@K-l8*A +:IM6&FID guD[_)EH1\O#8Bz$hfp (|Wa3„ nSV 6Aɤq(>K)pR5ˮbJ!!K<@0@ &DŽBnꩲ"tY#'K|"̏dl:8B0PC#RDP1&"1Aȼ +2<%!E4E: b ZQ6?74<®A dd%M 7=tx$N|㢂ST.Aja `D@tb6G7sQ%4C\-? _4>hW +)]nLny*ɐDL`m=>:{&i#ާTbbP3HGx] xv?#Ig>E3PP&VrbIPRw +W+E$VRb{@RYBo%zTDѴ9jA+0+H*FT? ]drT,%gDK4Y +tUpY|瞏Gm<'L'QW1鮤 ̣m͜vXLzMm7oPlJ* VD :J ^nۛmB49jYS1K^eɻF6QL v[bjfee~Sq@lӄtHEz?%-'Q +B<+Xz&dn-@=}sI +:,ۯg@KB1b-yb֚fTg e͕|b:Ĕ<0D6XYP7J"H%A^)AMB)R0jDW2=_79Fap%pvС +.2&CP?XQFlOSńwPWC^EV"9\@bYD)AӃ!6YŅ!݅T4 4& 6Nb +d_d0rC<@A7ͦ (^B`AJ')V&BV+%Ȕ&e"ZpIL3ZD.E&lBd#!k5qD*Z}C$!k"8e^r$$t(bZ\p@T܉bv\`,wp(nCWG"HFE:1n`8Gs8@@ B +v J,G>?xCҰxHBÖN&!amh&yf\NW3(G3X]Mdɘ~EP'O^4PD2|pmf|v+}IyD`Fvh."aZ~"r0[t}q@*PlBBxXCj"6WKEr2DzN ~c$"%q [ ̱gLe3pƛ9= VEЩ8\r&ɽ]D8%c64dmjKxn3Gp6VY#wJZ(jk>HUl:yi75w"Sm7DhGDC!3pŝ|QV3?:T4WiepG=k'ZZ"L|KZDC1ap#DY(F"y1VGPûyq +_y?oqe"q''e^7WQJ%JWK_c5ՙJzS%($#86 8?~ N" 9A ?02/F~"S85ah s-3@7B>X ?h1S#_䴇~@``(&o4 +bBSq{=/@I8})_m*oם|T +aǬoǻ>tԋocώ8#H>Hhk{gvqxVi]Ap|G1K)d/)2؆( *:6(/#l)1(̟ +bhf +ϡIa{!L՚ +^ej.'i3ii23&:Ց^̪0)&iZL*1nYȢ)z{UuΎZG}!%].!邞mM{ɔ_J5iGp>Ę%_!s/Nĸ)-gSG >$%Ȭv +aLZ ?T@1L7ºL''.@AVlT⏒O /% bt?j-+PI! ,1-Ic(xGG# >L 4I"%?&efP2eHpm~+ZI01#2h q+ڈUF%²L# +b=M1BAZD3R1 +ʸ~"rD !CУx"D#$`CTG1EpB`2zOƈh&+/ +DxL=N-ݥդPb4&^Z$$&qV&eF1qUT'Fwk=ގ,QhR['ޯSY)U|zg.RR?z9fQ .NЈ"~$&.CIjF(O9E?9yҬ/kmFLCG12vShx!|7JZAJQ +Ŋ2P$W>Gz7)!j:#58 ʮ1~@}FJZk,*]A*b| &%Xb8l& }zyywpӇR 8dnH() + 0b QE1׋@+) Rk-y5e$7ZZÈy3)e+`!1ӀjHv=p +2GXX vHʭ3~0Q7(1ջ>0v 8`kP1@g#>Y ځI +r9*3jCEip7$Z.ϣP`"ڙqb@?y +z2q955! )oa[ЬHʟRhܒAq;ј  +p@SP |PcvÓh B 6(%G HA%? +Ƚ +`Ȓ)BgQA sׇzk3&(~8i +}/(f߽jiW:⎫_ ˊhܹc3eѐyHGEأ +`hۋS~܍ ;: ~SؿQg +ͺk!73}"J&ƫ +8{kkK@ C#kk9Ⱦ ئ-sC#[KQS9/ 4/ + +-!)-G>zy71F()y)pP~:i13 π̰3Ȣ; TuY?Z'505dx4Ih!񗝓D%U + t z X-3c!ɀZPQ@/0zҚ)(s1PqS8{ ù!Ë|HŴ8 "M@|8?qjaqCQptՖ9r8kpho8rCԼҦ@ت8 3 ʪPɂ7Ȫ%"-S 6 O)SX'#b62#"{ )1 +|銠h@nwP + +,jt3Cd ZI*Hs@af{(ຉ` j8x/Yi +h}f)h7TJa12o +*pqZx@QDHВB;5g"iJT;z//xS-t{B#R AQy: y0pY|8ʦ O0s`To{7BjuC# $ċk.0iEjFQ,m^ K"%@]E tdӐ~|CU;ܵG[")15:`I' +h:1fڱDAzI +ȄN讗 +0ަ7<8e! {˾7 a00=Y 3Y$رb"E +OGr;a٩xʕ1 + +h X:xHⲩso!B %H'Q+ [ v33Ë 1Ϣ?1p.Աe tp{R.9@|s%'(%ɌVBW9X\1d Z[)(RIn]sP{xƨhii-Ys j{ B,[ۡ"&X\'[M.,b5bi>& Ր˒8Zܬf(z 8XsܒpV Iu׆pܘ^-N v híHXi8fh/;C"h"v*V2L%˜<([IHJͨ"+"uכ@b :[Y' ÖڐնijsP +΀#;VSD'ӌi[4K' a2Ϯe5wJ]%ࡴ-j{-2Q +Ȗ<,I13:F{3Ʉ_hfC)f!银fpW +ߥ5 +q0;Ⱥ$zE l$d ɸƑϰ$<f!4[q`۠!#ș&` ؐd,CDC@f .8D!3IP2L`ˡ0Fp"Eg Z!=o 0j ЩZ铿P瑶OX_AEJ`.JGJM+tދ yĎ{7 ]|BB j0ڽw0니 lid*z{(s%3.]BU@ʾx~Թ +p[¥:s5Tlno/L9Q0'|vpˆJ14R脦x>p"᰸ E9y{ȾxzYZ c?k)/d pvhm0N`p/1gWSvd61>64AATh3!Pbg0>Co ff +}@`x=5 +t&HK"v/L /)J[VE=)kj/ځ0>ކPP$?@ @Q7#@ +c` 'vE _ȔL9#GbQw|N`GS-KIP>/e[K$Q`|cO n]0?2ZxG/5"⯯ٌ`cQFm^rPNv )4];)S5IbS_Og?_& 0  + /"ZH 4?Ql}v?@0{5/w=B + Dik'd}VЈhˤ7Wr2Olv_X8 _m5t2,7fO\ ٠6: ?ۤD@`;Ul3-]@vX +!pgc{>6!eP(_oDx" +;SY lpH|P2uX8G}:X:RL:&*b~=hI=jZJ~? $H= + +j>"CP F-|Ob "k !M4$Vqx͉: ~&.2 4Q:©| + +NЈB~G +3DѺ) ̽F)}_ gV)C$OWT< H3XKEU0Sܨ˕_Oi}ڦU濫)~8:-Cqq$lZ@:&Zc {V2840F8542G|ʙ +ډr]gI=Z= +6C+/C*T)/Q_z(٤->Vd} B~L^C-(=l9 %^`$r)u`S {I +3 'Fp:x {wR>ZqWZ-'B +z+ĪGJ1(.K,Ɍ>!&hc`NЬC,Kv-(v)\iI0Q0X,3w]@G9cd=Jyv^\@#KP+4 +zCx!:Xe&d$ *8I/|@@,2q=ҕ2 p`94A=$[K#t򠩌:!DHJ؃L+&j v"*_ BKTM ӌTvQ]$c7TR|- 3mRLrf)1ʱ'hQ6≞kj*:C\xRǐӒIZQELJ!)/4܌]#3T-VFb&Q.# L/ZkƒP?:-o_T9&DĔ% nKŝ+}Rtc&%x_Uy==Us2!A-HDńPh-O3P!e,/f Dp98eT,P%=:d>cVM5؏ܪ|ɮvLmV +~NXIdN~I/U H +tD#ƶD0#2bB3hd.\6ސbUpgW ؚB#kڑ' +#\n2 +'E[4a) +rIyFSsCh!r'wsKTq6֘c-8eG& "woi@y̻d%Mb48 ^*ȕ!MrTl*+ V=0&h\ŚR+؀HvC(#\e!-aA}BokүAz8zicbb.qu/t7 +,lΊ9R<H7( +P4F_`H(#nTj +G*.'K5DŽ6[M.q/ƕ4T$$v,~TA.D$"9"86BzcjL".xR% T/#"QBpe"*-4$EYnb.XFEe3ln$HTN]sJ2DtfL> PAEVUaP~BlDNb8N8zw ~/VObjlƄDph1& ]B'&:ЬκiK0%dԯ#*̂D}fb~%I,].P=evŎG +*IZ12}\Cgu!FaGd$F&#Ec &hɨTooB`T젽hzfm\e4D40ic`GWByHaB3B2+reL`KTDkDBh\¶ZeFXrՃWLN[=|vl$"ʲM$fhZtʤDgy& ZdЂ%䐆B6e4d~&+mdb^`-P.> .0dPbPniJ +B +MD#1`Y |L7)[d0}b +PK.FtVZf`; `b9ǤT4af2NAP;+mNxz +H4Ԏ0RUH,Ő^̪#94#tb[f^hEyֹK^3 +!en'!qEi̊gBl(&Cu}ExyBҊk)1d2:KRAdmw0&k30$F^'!Wn̸p$P /%$HE +6DRt&`t&%^QM*#EZĻN~ +`ZKvhXG0.UmdtIElrdЂ[Ǧ0B R&N3VB#$Ζ#gJOP%b5q# +f),fJ2d\qX`#'%1WfMV]K*1< tTpbR +HR%ǾER8Ǔ-dmÒh dX$$#sF"rmqG]5,1()>XP +aSA"sV8f)b* +brBrX.1"b.$&pjr>EJA,,T,B7,+--&aM},#"I"!!\as8خu؀gr8,y#.dA荣x!̶SB,N#Hu`LC;@g"&@ R a 0d AM1h<+ÂˌH1Bt\-VtPQ6C PXvd'Y{$EgQv{Bi9 q5 N2djxWȭE(HryKdQlCŴlԪ&T65c+I3D`e֔SdQR2ph˹xG +V +Rjff?GF pG&lšLTOtj,eW1%4j.2LLa  BP&PG&%n3Q#^"iRbi*Z QMCCTZ4%LqfB\Ė#@vaaTn6~#b$6+q8[фd|AA +ri@J*N}v&]a*dz@VA `Fo#:m$۹YW +ɋ \!WƤnIHBcn%C +$ +nT4bQƚN +#jDfc'$&>/O*&; P(?~?`X]P$bP'?߯-LE08 +. 9|)t'ZSH~Wh0@/GZ,o8p=Onoa3#,f <(V@ -q}*:{}S"EtR(t'0 coxO?y߯5hg2sAfP=IҺ2 3G‹%N7ND"-{B\ʩKf{GNc2B +BB~*4ޯlRf޳Rnyyq@(YJ)|J9LRiJG ڇ-Hz JPNJЌ,$T$~1&-GH +OAO/~r2E$؄~h & U0)re 5Xv`xҫ /j;\ϭc4B +mÀ 4HT~X^, +4̈́IJLKk.=$Ht?ͲI+;Tj+ +[Xj(N\© + ":J Umf;.3@>K2k +V'l5SE:Ϫ$6ޫ^ӍVͱzhB0& ޫ˛k*Br.8aLJk4:ik+p i +4[ +ŧ3(a'E?r>Me + !^JËiH3#h0S]"2#,3bIn/dzh>$}qz6$I(!.q!2&+ni_Ax>O`H&iRj-, 9jz5̀)C%u\l&uXzKP`$'x`u18@dm@( 1Y,R|.*禤T7qr +;v`=)ȓ7 -Qr ?\)SU X ( 0lA96US1}ݺgyqZ}#>hEt}I5E_SduAN0 +z>6'cɫ5kDX&E*I:`:>٪u23hjܗ4z_ +l2)\4F2ȳ2&Bm;pJ+5[9`d1̥\fJ!*:b +I4) ݨb L#'c*>1@#U;te;6EeD F8J$LG&Labñ.!1Nztu$I"a<PLmT#HI&ak3Rbvv :N`,rFU%&U9Q@. Bi&H9`B(嗛GU¤fn?Kd5r R:PܓZ>G:2 DKѤv,4bX2ȉ›]NT7ν0^HKs3B5:108y$h[ uXy pw6|yȄsv +X % q5 i =BxRaT!XP$`p%wiaPlx! 9ɛ %3h +9և8q +8 H:hظ㣋p)])E(X=q.A! 0j%"Y#1(K< (9n@瑱Ɏ@9 8/a'Q !"i(d\%hؒ:hyA" 03mz>!:q#n+" ,;1wq9X&j+OƢ!Ǟb"J' 2D{9q;9I +B? AI +8ykE#/đ7Y8NDc$r<,@im5q#͉z{j)lq`n!; 25TA`&"g'|p#{<䶎;1 t zր9<֦ MyљxYSpJ + +@= +2Ӱ񪙰[ AoɄ@b +:؟Lp ËH'(xQBa! +*l*j!"ے,km+ +hN !|X'D +@! !šȪ/8SQ)i;#<`XțI{`֙ +z Hҕ |]06My2V7қ+$خ87N"hؐ8# +)?1@͒"OI͐ȣ( D .0eI@NhtLX@tc(o~p n`m}%ȗ'TX2#P NxpY>Ԟ=ޤk`[BrXXP@{lPbxX6 +gǔuJ靉)1. +s pMZ&k$dr(I:'{3/l|NXi8+ +"&ϥm5`IʚQYLΕ +ϑR@ +rg1ԹP9!1Ɖ8X@3zs&z! jÑыztkJݿ\V5t܃ ‰1?C\5/&i(1q[1Jh >鼙AoP(}8@D_Pۈ`یTђވ(0ib5y +s%Y*xfF &RZ^8MZ=y ;uQF%uF˜Ayp;dw2LjQXG(5ulMlfX@zu,ث*L \Ȣn~q4{!P1Щ}P_9Ъ#hʀHq ٧l>f(!\N +r؁79䰲<8Q|ǃ(]( ֵmU;53oA3UA]0q8k z{vwgHc(}xxhbHz+l*p { > 0$ _@@Iq\.:_Ԟ&1 F_ \*_o؃$@08|=y7vmt #4&}d@ܜ!CEDv7`id]0#*@p-~xN`4 ?@Ti8, @``@$A \T, ?_bb3,F^@&o}@(?K6+$p)`JZr'6;Oqo"':ԨD&+`i:%Bd +~G6ۀCЖZnB)$o|j/C,ͻ:+u,PH~4\=(d㺄 +Х1b;- }j4*(ns}I+Aӥ8tO XH  3TfG*Hʎ +Ө֣pL4-`QX,A\}Yˆ:JFt}<}P/-r!|'p#cw r#dl MG\-%anYYCXDl<$/orW` |W' wgYI; Bh)e@{ ĝIYf:zlI#|Z֑8|TnK(l̄K0Ew {ͻԛJ0 E\"IzN#Y +s.5",dq,<3*GLR7o\c>/jCțK"P%43[H('[]S @ >P_zW/ KRc}[E~eP! "焈^:.ūsӺpOH0|I{Jtt.돢aHXiر ];.jkoն'(Y"l:NEvl9M&$ ?Ơ;w4@(`0N>A(Cs168@}p&)tA+PqmHzdtD@#I0?ѝ-;z/Bf";u +8$\^ҟeW'JbH-BxSИ"Sg:QmZ&٢>:OjO˭JK1+Nו'4Q͵bI=l)yN : +񣐜*f OF(2X1ԑ}]IJF7fXDn#hԤ.=;uֺբ-&z"gS Uf`LӃS9/FF&ϖRL';)#HYJ9@e|7T0CC{'.!|,?XcxYZ3HzF\@mط)l G/f79wdj*_T;Dƽ7m8vD'n9Cn%N%'q3ƌcaCa7i`8kq(GDa^-]qwa3E"(w` +P| +>G48 qH0c !x + ֵ< L1o.$A"T#Bn}:=UpOvX%(GGnu40`>  FrHHkZPUlHCVq{$y Υ +>&c7k 4ԉ ` FϊD6X @h]NՊe4PkE3DSD* )!8TMlDRGҫ8QiĦՊbk&IDK(KfBR9nlZD4Oʊ-$B \@hdEiP~\J$.#@;X +|(J$DIHG#.cl%eMXS ,_"/FA +$/f5 +X˖E@'HU-jP֧:v%\#.Ĺ5%LEmG#g +I&l~p +Da +̨rBeD.!a: ZAa+1`#!F2`@*85(D^7.@dAcnMD%p#N(*t\!6ӠRd rdmAl-!`V$NADC034^,Ұ"$ɯ0&GB͆r!`"U-*Ŵb|4 !C3M>5rں0Rs %<7@<aB oL8vhDʈ|, J)1x(diJPLȊK-}h8CT341 9KP=$DA~M_V׉3KfDDdeH t1R>ԻՐ^=@&uB +poQ +Hfh<&P:(DS Xr"~t!a1m + {Vfz.. W$ +! Qk.$<$eh&lc2;B@%J7E=a4A&TB+u]*lfIfPEcYVr:v",g&t<,Ǎ +R Bf +D(g$'$1 +`Vu(T$ދ#$[FEi'+0bTIJhucܣHIxPf6ªO6lfWjh. ?bnv )T +6("~zBA?[ #p6ddIL]i# ˹[(eTLd-\DFHެUB[VYBEnp[Fj-o`G2PDH +M9vШ9UI:hoAX$j`"h1-3|.^";^e.7.,u1j!c<+@:0vOt!bjjFA!x 4B1́3%Z($IDfu҇"x0͘4JERH^!z%J_9VB!N* [ ]$1D.36`BA@ 0 Zn'LԿ@)` +rIbk*k_m) +x*k% +{ i$WoI4KFD0EG7"@N6jLmI˛P/R3n&ExrJpWb0`"cPhagSnOB]*X4$ZtJ'y4: CǞ*DzCBdd&4 +0cvJX,=_y +6H,,!7hK@aVcL#tt 8aDG|v&j*ja8 &f*蓍D1cb(Vj2;Er>'DS:@KIf, du~rր$L^R,'aށm<'żxۺOeQ%=#tP=&az0̈́ŇmB";3B7h@gTJ(W٥cd^%g2|3b,iDvVB0@1 6gI[!I\dkl6?Q6W DR2A GV`~h̻c:L`qx(TU%;):9c3.,o +ǣBUc%6%"e ?MBG K +Pb:$nnXԙb Q-DŽ=v:ĥ/|""b*`T؁a`8`x`&^   x!l.@aa L&`u+f0/#ExU$þrR& &Q*_@A!;fïL +);`Xz~%0:0B`&q v#h<A 4@5 + ݏȖP7s M@H} ve>B>6m0O3͸*fpe(rkHt +4y +he`R\Þ?6Ȯtןpd"Djւ!y?O00~>ߑX~=P8 o @|߱@ 0H`C~S@YGRPbo&f6j|>`o\H@˫W@񉁿iX +1.o8aXRJ$X삧P>VWވB:FIm)'kF"z݀5e)_`+~uN)V%W@ $zAE`|"x `m6~ +#,?BD b|-ͺ> "pI}ꢫi:hz*M,h.(1g!(KX}Kb¨K TꖰL#ΎCzJ6Z 1hr/H>Ir.~P2F$nˑ{) ,HSP#r˄{K$5䤰ڬ SK+2(2?Q:ǹy/l;64: +oX/ 4zk'"U@n;mG Hlr!-*;n`sP<i )"#;gyr(x& @P(Lñi|S~`@s`g*C~[ Mo#K[*D`C֥iz䄧)s sd{X"+raR+DP3].lj`[bx@h.F jFôܼNtp 8OTүv +">x@ͽuB%2J*zZumZdc9(]5dǡ⩉"{꜐ޏrTIXJ^_~a=(  +q:`ĸ#d + 1ҥ›$4ԉҋ%M:IC]p }11=AH)37#z'v=ǘCx +6F#x p(CC!d*zZM'}/y` Ӄo'q_ȍS(`Gſ +=&}D-b[ٿQ +ԠO X. gNOrg{X. ?Ñ2_l4X7+sj,[@Ԉv2L[0G5Zvd4nO:>bGP>('o0nւ_EͲ?#L@͉8=E4 +U,+IYFʗ!U|:u +,$}hzXĢ*>.oAS*PӹGf{n2GV.zw3?R^I]KbU, Sr/@!{R4%kV%E$gb˫((}'BhC2I{.#!CݢUhP]VUaYI#0NʳJ>fHbu%W膜ή()a|qmD*ߵ4M"Ŋ,WkaWD8lgH}(r`tl7h͔7̻{h}߱x[/ ` +xh` SrXXR`h'Ct@w(qtcxXҩPJM*\XdQ폘QyZ 7{(rxS!d } +@P߱ *= M +@* +u(/:+7@A)p-?PLGۯe6ak:SS*(* D*{f,4˽BL" +D[ث +Lie;ӈ(Y)}xOZ+ݫ)b`ݤ<( +" ?;X6:Y}J ;Q.؁0–Uժյ*؃A (-;PE0 zh)> <ј*ƹͯKܵ>t18YZT(n@ H!\8kC땭(5")`@a1"8Hda* {X=-7h +J͸KYQ?pAiKK" 88vd*< 1U+пJA h͢.% +x{yAQ1h`y㛐N:h`{ڟ2 ( A{؛5F}6 f  :Ki~-Xůu? I&8 )ջ)%xX^S ȉxz +MQ%1)4Xg[Ǩ앻D6T4 Oh OU +SNd(21"͉ASK"Pk$ṣ +9U\Y,ɨ5Κ_d){ƆyxgR`+.Xz z!@J)NܰȕZA%ܵ݇F0p^`R)^]Hb`@uhj`|@pp ;i/61]h_/xaIu +cx)S +Xwsu눽ܦ9 @i\ac)IvɥPY AM<lw'`QTɘS钤r+ljhnAsKS̯ԄCW<=J#5eަ΀q`i11!?Y5O tj$6Аܟ#P"؏ґ!+_ʉFkA!@}2x׼ccǹ2JRTfj 9]bl$­wůK!|. c#JK/E-Ջmi2:Pٍ,鸇$ȪcFϸkܡ -89`ڗ!,#Н@$tnԕB 6}2AP_п*ON)|`v}œvoy +i6a:x]ta:b] +W*:x~xCVږ +RИ/tY+越kP#\G wHTɖꉊۡp +|PIV 0@OJ92<;A2>ۏ[4.V` GƇ{}#E' B͊`5j8]W98؀?~{hZpT΀2~PCV?=g~D@ 8p?O  0( +G$?ޯg-`@ _}?A <oǻLf8hZ lgfhx o|s9GopH/8[ +?'q6wzH tb?z]Du8 =@`( v;_o|$ +ȿ bd?}@K b $pxe +-xXoAP `X C ˹" +$(P +h >*B0114 LB']Gu y,' 0({-%ۈ!p/HH  p* +ҡ/||88,2>+0l;")r +Pl8sJP,;K¨ޥ.! *OŵJ + R 9$蜖"G U(b=I…]C?Y(uqFvaعR) +@$'-/@ΆA,1%NC6AIM&9YNBo2ʶC_KLH,,Z`eȭTa16zòBFd؞2,DsR^vIy;Xr̯9Hٓ/*p;5lJb!&8'B=iD쎯Wd-·:lFnF}䠏C]JZֺz=diݗȋ$e5SľD.EbzEU] HfpH\|* f +4"uv.̈ 0{YؔXM\a + +7([Q/g:$$d`?Hilá]E59 j/ `%~cD&MT'ڒML ~tOԼTjN;_(ů*ihG|*pbuR0yH(Ǩ3e@ Ndjv `l Vr"НP"ޜC2P'Mf)D?+$YBĝpx,`T%++ǼLW-#hhdM%f&֭LŌPit`El '&@#$[E`Ec/I%)B8odRJREl1Y ~.bfjŚ(QrM0jmv,j0RkԔӮg&>(7EGp|p/&|H`z)9Ĥ(@cƒKEβ&_i.F('rRdoH+R9!t jba!F<aa h "VB4A&@C+ +aXeU@Hii8bL A-@$eNk+9DTN$s\e)&F GElB]# ÄwDu^*Cxi"+uf +³6\_ +ޭ^3Hp";\@ Z.dd@$@&  +=u]r.) +s>C籆l 2Kvek +QGKQkPR$IfR &Fi%:XhBA&a&%81ѯ/6wLh^p֝wL&UDKψ,0bRgBF8Ѡ/q&"@bVz++Ly.c$qQbXn:K`b"`z`Mig1zPGgg*y-k'LN!Rŷ qDW2pl-p)B⏢bjh.YA B2&"rbdVmHGtBPGPueMiZxjD1QQt!1obHćP֎d# `b  +)A +~NLBWF"JP%a$@ * iNNnPB '\XLCFMY1"X #G(0/~'v4&d& +``!Aaz28q66t*Idi0k®be~q<$,đ'3Řw~,#"Br7Ehyh$e&3+"h.GHF *WckE"ӆBç6.vv w:1Hr3d/7}s"IkdR) +xC!`K%(√" +ȬL! +=ż3%=hV Lh EJ& #{J=DLJht &N"}fQփ.FQ|bn'gZ†t) ()T)mʜX.EtUҍ#MS$m~&ك +Y'+,hFXJbNX~bEm,-VmEI,}N|$"b^="6c_b ^6q"1!Z $ z;v@ "0b._ `w6ct% H$^)tnB-АZ^ht? +B1(~Zn }:|4ﶹ̹^8Yϲs: k?2'z/>ض?Qlw'/dqwh4: 7>G3Q'|_ {J7Lsv;N䚀6wꜱʛ&k1 {$kr> B}<#kЧIs:)"j03".gî-˃.7 4zׁ-}|$O 3~DZ|^G& J}'`0;nc" |t퀠+|Hg{ #Ԥ0TKB.:1 +4RbPσ <O$E*5T][%$:}OJ}Q+GM4ƘF3nۧ$<.^ }'F/jW-%2 `ˬ~U5:&T.!RDkY,A>6,$ h@T28O!L9;53)+;_W'nK> ; +d?t`ci4^$hn.,{BgĢi +髮z N J̯C +%l1LHbsV~0Ҩ$-5Jl}0 Aa &|G%ݷ +B}8VX1GuL}zP34}'3aei{+CK$7q?izQ<ǐwA=VctŸt@}@8d/r:,P +Gcqq68Oxq@`<I#k˚ֱ@D֚*|"ʪdӡ3I]3N x%IݑTHH} B@(  + ]` xc=F t=ۑ'FKQmRրٚ#鲒]]fR)$` +_a5.pt~pwN A=4}e s%lr:h$BKgAoDY cI1-l9n|hED ~N/Y$lkPq.4G4Z3=.*GINӌ3')'QD?5Z E؞UXcZ_ @6˕@9 +7_t$f1?zHl6+JYyhɭ JJ`9xQ:@ tdKz|"I(DݛT(!tK-(26@K&ʱ#F΃ڎ Y$# +Y9UI3O[RȗK3E ˙$+ +׳ +B2` ++gm4GI.f9ϼp +Dh`PC#(Us"K{7tэqAӜ/5&ẈcƼe!ܬ,@6:`|D='lMXz&QĜls]I z$hD{>5I<wSm4L@Y[#Ũę*3syL?s{?UUƲvsN;m&$=&l<Xf flTRr2K[^I΂M;*wXIp.PT|XV74Gj3ohp^IՀm`\ #bL3KEJ&'MpCązt" +dUi_dw-9`&,H^RdzI4yDct +qCs +@ +>@~RC{?< + DyD1m'Ĩ#L]E SydyqpkB$({ $@2}'I` cpqQ8Y6~tT9iJU7rRB;XĹ*>G״.?@ B=` TM @.j (:,OэԞLq׮Ѥ0cre晲'D9Zf/O\ASwPZ("#qҶE *F +=c:&qOo7n?I|__sŻ-:#CËX+IЙ,y'qJ T@ +ip!AcTz Q'c Pi'/ѩ +*3 (pHI>B 9S[A=1A?".9_ >&hкc 2V + hИ }7zX>М zI(8> +1ʀN]3 N'y`3 @ H\>лJ; i &+.ܘP(XM#ꢏ +Z@ +)n[ ؚ*0 H OTQy`*x0x~9@{kxF? +A2 TKCF9M2jDKr +XTDIT j#^RE+<g * (DDz܉ր[&᧸pK6( (b1Ed Õ& >*жUXp!K9ڔ+ }=]G۰9awZqB m M9a 15֑ZʼnSƘxjE|80~ۚı +T앒ؘxյYd2ȩ04i6%#>ʥSf.` iALyCDx*ᇫ-^ـG~}=! y5L;Xh4 q* 욈:nLBtrѓZ r+m^x67xyrXDxxО핈Xs}=ډĐAGyD +C9b647 w +B8* +@m0}( 0h 9y܈xyB!Xyo PB(0 += +)hk@ +=x*yR-==Qy%Ӓ0h[ 8;xk;ґ}LD-^Z8[c=biUY+JwLZ8‰ KRZ'H᯺502S)yr0Fϡƀ~۾?NTaY< +tKI ++>6ٝ "uG0٭+Q `[ +iȎjfpY Ad/٦"(_pc]0Ĩ5̪5{Ķ1-hé%UՌ^5Џ BZI y?uDуr*X* $" nxXQiN}ĩX`~ln%4[i ƙj &#S'_r)׈F ׀PDg @yZpp5Xɱ((|{`Ǝc7 }gXHH1^2BE&s +4^1y +"/cPgLnL0Ȏϧj1XD*mFwwpvaY-sPi9\M 6 o-kaבS\ˍAy)~Z2LLNG45q#]hOP 07 +pnsq@gexN@iE wU=Veґ|刭b /8)İ{  +J [`Pptq0~Du  :@{$+4 +Uʫm_KՏY 2㯦Ǫ̃ FXkx +ݜӦ+9;iX}!UAo)s?R3lD% hIɺ񊜼N/(0~Y2}qF oD}6tLe1`7fH}৏8(h 5~@ `8 _h @@{PC߯D +r<|A`@Dq}r<*$~?1*0~` +@P  +ŀp{=޳(UxO+Yc/#` k=9 $`΀72`~r%_b8 W@Ԩ+jsB,@^y$<V>m|ŒEZW +}!@ +IgPX +J9,i=G5$`"R*d +g"ܑI!Q +%5r:q`Z܌? )2 + ^f$@R AسGV/,S`uy%ٟڣpy!t<> +BTu5!Nj3.:CgJ͸IX*|B Q,aޖkߩȎkH*E~/[mat4^dn8LtX:R孛T +6D3K:}!XWE" "l{#L=rY YϋM t S-TC"H S>d0,`0dAE0&)ĎL\n\%P%$ +DHxjF!;ɒv ^B~jdSnC~,$]%)L4)|ZDX "(b<\$ݥcx+M(C ψV5bߊJ#Db~)ǒ.DKdI7\&ǂ7"JĄn6&T_ ++^'DPi4JnƛFhs?g0r"6o@.a"Sb)ǔc"6K4X6OԚ.VB<ipXcLo{c&y<.Ã7ö(" +aR#]fLSNf/ 1zSGǒIRHj "F0)qi"ƑN:KwFd_>!-$eZI/DМB6PF UJpsL.3꠬RID) ˄T{.P@d,WTJ7"+")!: `%$RE(JU.ÖQB8\3ēxt*iJLBv0*egHUf1|/\+D$vݪ唷UFq~*S$eh>"4L<Êd|!Bh78,Ã* D)6FKt0 pd +UALR"9,,FH|2$j+ȗ4jf&%K$K{6F3B@Rc'E"R0(%Q ^a8(e|@E)(Ы?#FoT +8HuRgF)"i~t5Z"!ca)`P,F], +P@(@"naaYq$ V`'ie:@aaD@t 5"$ۃ[ A &V$|+'?[W(!Ao@4P:.JP +H|ŏC ⦮%"H.=jA$N$I`qgg>OG +*)PHBZ+M79daS{gνq>a*>9C*bq4/EoPxↆDhɉFTzc" b':R)6$tPTnf! m )RCX*% +nY "p|Ni%j# A +4zL%z(`GAGG Xc",.CZI.WNZkQI:ɦZ)& +eCI:Biʅ_OAh) RM$oS+&8֔ l9K~HKFDP<| + li#s;1*@2Hv'kVx~>_@`( +>_`  DM_/@)|a(FoĆf&;0I=$eOwd` ,Q%?6| +e@U,{#Rxkۛ_P{U^lU7Р>Igi0 T~3UTq0^'Tۭu*ﶪ IPGe++v}`׺ZQ}_p@=7ന&% R4>B*.}"pɴܵ AwZJ,*5F|21o*:ITTZFLx|{ǡzyzgҎ2-b{ +t0gwgU)*yFm֡ԯ5Kbj&϶* 8 +8spz.<%|.m  .R +@!>X jFqv!ty +|aXT @xI(2˯$$Ao瑃3pѷRـ@3z&- +{I  jy1𦩉 VێW@@^ "'-k.̊8P q굠黚Aon5RpNL۬9 )چ%ۭ:uċTp# ;K)Cm@Q:9 zm 3: M:Lq岓$k*0 +B9iꤨT"F<Ȝ'rN&kAʞ +2 [n1$BSxDƋm{oTi:x6 >+}` L쉒>/isG$tB [P> $2Pb!-T$r碁yS@!2FAd!!% #!ؽ2Ҿڑ֋GؚCJbr̀̽$}kFp2|!q#爉H`(6LZ=ef(^n0 BG#H-MQ$>9( ŢtJ5 ?B=nDP]R3r< GA) +RȀ)ft[AR#U60$a)LTT"Ĵ|+a8##IMJ-zy,T>}LPD0 4` )4Ef 1D A%ٿυGk堑BxjM5E:2lv +q%;Z)QC\QPO%cA~ &6bhaN,, +z=8Rmxjr]& +FYR $?)ZZӮΝc|Jlp~M^3mڣcq|PԜ*$Su4Fk($j \R[ nGϚ8e>D٨e %(B^|L ]ɩsCP bHBIÂ6 +L,"w$j#+ڟ,%<峪əTj "3ˈDDIpr,#-{[҃=3L\8 (T%# BM\Ki}խd.$__usY$0[A2WEPI\ўND4%|%D27 \|h&F7ŒX%:8l]ᄘ| B1jc[ d ؁R[-Y{vHTK9UAb1V͋yDD-{qcU򳅦ڞYe:QsJxz%:q.GRٗ;H)" +Ȟؠ' +8 Ҟ!Z H#x  jsKk<8Kl6bjpЁ+ )?x~=B!:;,)+ +;8Cu8躓)$<`*XP [zQ@|(y|0lv&&0u +` +wu,u*iB*xbPSq  R, zyXuo XyXXy|ZqFxp(ns0ۚyx P~p x pHHz0t`nPy`栊ڀ +G +P +1@3`4&!XXI 6H88 caI'Q +މzѡ 11ȃ+$*c.3uA :zJ9Ќؒ5p8 #-WIh|3Pr1@܉%&6$D8*J3B`ݙj +ӴzP +2:â0 h*A)܋xp +58)MA +4EЬB6=I؛]0 AAʓ&+_4)Rr8p*U6,ӧ}&LʛT2ʼLPB rB$I~,"n)+Јɞ=+XƳBA FPvw[xxpx0wHPs2ā`0$`%pbiepk  3p7ppr(um@nX hkz(x%@v0x(0`ЫQ{C{x}htnx b9Sp0h$y~J܈a*pmnupt+̀4<*hԚ +La6q +k1!U! +Z [' +++#Pd!%%,aG8Q)#у?K_ꥍi ~ᐴ"=ߐ9:p4ȃH=x#`x}UY{s:uf:kIGαccX-<Rnt# +x +܍WXe魖*')"xʋ('0< +-o.rg5j5p(ac O3%C|՞q +HKJ$ lPyzY@ X`߂P +ɜJ*EbeЯ 9>/T4?8!$sPSMzn؋{c5-"ź :AB"HРf}*aZ%R|}$ +p>5p67yzN P&v*q!URJ@P!HxAoi< 8|!ة;z8iWb{ʍ(AH=7PH~?/ +A|A {P@ B +}=_1 ?-Rd +d8.${o"{Bp֪jw~HP0 >NOTu;f7WN/Ȑ m,3 Xw~NVZ/Ux:ZK;|D:9-'2:6'6uG`(J}>ǹRgzgik?) `2~8*P'I)} P ~5X +x +i :<\J+",H*J0{ jJrvSD5K彌ゑc4q ƸbrH~1Fi'%Ќl$̈́54v|ed㠱e0z$g: 8 Y=>歊HԺ +.Go)JRZgCcꢱ%(,6 -/Y>a{9' er\T#vd֮RZ箪~@ +Ʈ~ZV@:qqk5]JX ϡJwǟ'P' ͎}&aiI9,(BDЎh$l>{<#N>Jɪ4N 'D +]EϠCyH ]Ā.2vj_hQ +bpdwr#TN!/dFސE6OCoԤtpU *13fxMpνʼ} X6VDݛYSTF'D߲z$ ]q:C{]9J0bOc1} %2Ȅ? ۭN ̜eVOmEEa/Cǀ3PTc.$|7p ;C(p!NH9(Ԧ8`\!%ak!"~"HD-qdiX$ +qAX=o J׉RYM \3t5SLO( +>Z +g!Yփ<|PUL!ǥOc39Mu6&UCCH9J/:A f @4tK(ǨB {Qh=;,v)@ȭ,X&|<<4Te'N }V#-t +Phch92"|_vAw7Ӓ#x3=X/obH & `)`0@Q-p.%©"AZ@) +:IZ +0"^b&!RQJ?d}o#j^j2RC~`lEndp*\ +|e #_\T ( :L D <&I``"voȂ+*xi&p'@l+L! >!Xڵ#2"B| KhB`Z2A-g- rG!ablŠFRoP &tB"` + b@220:BŸ[kP킬7 #$Dk$@ ?2GVdO$8u#9f.'iRƆ"Zl\C+*ƾ`"$5bt<B3-b'B#3R Ȳv-^>! DCxBc*R1eA +i-E(!d%$%f".2qW!*`= +jG$Tnʗ +b#|7nobJrAH#h$隍1_Rc("#æI*t=,qCt$ +4tNC+H,gPbF.[*lLsL60Qwi" +n0`#.;d&⪶eD2"H-N'jCZgb +wQHgcO( %*B(| 04ʎdT"8H?&qcbAEIPiB,_ r) mu0!BBMm?'vd{"paVB(/.3<#G̦ +#aN0t4 "b#Z8]m.tp><",89q/dl8 +n*D"*~$`.)#bLb|C`/!9S0AFH1ff 1(r7hL;xS F@'~|B5" .A"""(c,1AQ>b=>2G$Cf€*zB2s +%z݃և#!gujpzBb>;RBQ@z#e$Ro R^As(*괬%4>ÃSF-B7on%bld 6+F(P@$`(`˔('_!0결gGU1XrA0HIص t/MYA *bb6!H,A!v6<*іRWi\eA0``B`(-" ԉbS5u>\"5ʭw#V.%:G0~@a]$;FcT\E$r*{O&Z4)Gq]4qC̚e?D` +",'(z=R눼Cy,qJ7"'\5ޥwh&hbKb-<)[PFzz"4k Pc +ςCRbzC497‰ +؝4;Cm JƅȬL7C +jivl1ʎrtu|4s0R9bGqGhB.8 'TOF'>6G>% +tA4v`r-$^|t52]0t4Q6 pNAӺx$% +ڡp +ﲋ'cA 5 ;DDJ'bH̽`,@,Zm6Qbǀ %n?%laBix!`at$R$ddlIg gG Kr!u. 5xC+GdR71<掁goSM\1u~E'T=[1^ +QToi0FΠr9FDj⒑7̓N7zB'|2rƋmT(<1fV;zM9p_CbGۤ"|`xr)L +΃%Z'C"'&efEd0c_0>;)z9qr0`c"*Wfg"PhJk ('+mԲԋQZnC[BJ`c.g\ΆY7hS*s\LRl~l>aDr:.~|d4圆婌ey0&'I"-`ں4&vn\YS8F,,LnR2X:ZRqJ-il0 +=H0!,#@!xQRNuJYrBZ`Y0LVq+\/o$9D4҃?TqNJSuSd MZ*8^4V0kFl/VO'#%B$QXK^,-HHp6@(W`i*rIGH$̦  & 0.#A(R"Qk (8 ?A@  ; Huh \ wχ{>P aO8 "=Pg.hb` D /x;]@pp8A`0{d5p#~Y.?ov +ٟG( +?r: ʵ@&#ڏn29C9Z4$#JB>g}9* +NNq*<.{0}`џG<8g +,q H(D;GH""Ly9b+Ϛ:'EKB$tMH`,~9@tErS JG$#1P̴LJcdV޸nJ!qS(lHRjY$@-u.ua! E b p,u!HT U>h/z²$R9@־6Zq9g{KQ +_m22lK:Pqi#瘟JT +GSXðG>XS҆JvE.`KW4hG/yG{vK|2"@2 +9zT9=l8 [7 xϊFtyZ~^8|F8xer9{"^:[ 6B@|[s֎|/!J:>&[WL\" t~SJ ƀ>!Mc{l}Y +^PzEQ>5>PrWg\TVB!cr(`zG=T) ) `$O Cl-vAc+'#r{^%浃29~@1Đ{ +P P-p`֔z6`ƢcփkЉGzwJdfHt䈫w伟"t*:yRvSȷzqx +e0   Qv(?@SҲ$ȚؐɤHDēR@ +m +Pl |IGh$c3˚b6;,r*9vG$JG]P5cB7xdحcqd=I%'1(H#D yjm萳4^447PVtA[#-gT*SI7&Fb?dXWFqS"p $#q8X8ă93InpQ!`fCkaCLD!˔$0n.ф!ofޜ|Gxttz&oe"#CĊ!ͺ޻b[a{\u@u|TaJV34c-*9;(j"|zT4F&Bv9I4l@P`eprX]w +3(f ${aC.q %˙A-ʜԚx!C3ʐ`I(,T"A٢~iNh #"޻C79GLCQ>@mHHޜg8CP +(mɥ|Y(l̏bֺ {IB"|Qċ _^ r%pJ.=WEH0 uQ +/t1AM +e/j`tgbǢep=| ZICt"S{:>.mi((6 +ZSV뢏M#{@&4CGܑ@N2<<6KGN2G`FJ<+P܋&䀈$:в¡@ĀQCrA;p,:\bxVfv + _F*%Eo׬_xJi.M7^խY$#I+mGDK !$E[>@({nx6u20Rba<>(Èy1 CaH0P4R۾Nkx)J ::8l${Xx⧣@?}F¸{kZpY +`0vT8M mĖ+=ٸ309$ם랕"߀CL8P" rnb 0* C@bOY6@"*kP*h2Ր 1i*2i.IR1xb˜y)Y4ѡ0,$HyMAeQЊ0P䰰1?yRi:Y1ҝej 2ri!v 2 8 +**J. Ğr3jI0gÎ + + I:.}5#כjd#Ç; agi)9s)q5?{z&DHyǤ,P Z  i昱) .A̕eZ׈bB89jSeP}Bá{g ! aeT + 96񦇡6z0T 8yÚ0 ƐՈ@*`虣aÇ#Q+iY3-!1%?rK!Ab:L,5)|8ď ۀAcJ肗1 /L$!yy +7*{M'1țީA-”Px +>IB|`I?r9ra!$ErSz$\;GD48,r ;`5;E;b;rL%d;:EHᛏG)Fu(P$`xHۀQE H{9mǐ}QbhXwl|@v ^ = {0{` ! hq >dqxxE&i8@7aH?LhDL, ?H!~B`@q, LAtqգOJ8 )á?t1JmFip{zA*A`a1Y 2xB|j0AqҜ5\A3SV > +Jܰ~YzFJ8#âN%X gQJLjVr) zӴ/:CYz~Mz )B:@y8~viJ.16ix۞#jJ.(`yoYȕY/}2Usj"卼F{88/~pZ{AP q p xљbّNDyՀKv/ +(y=C J +4HcfÈљc:[哔|ˑI.ͩ=XCzy$<)p]䇫X ;AkDr8FVuű"7@!Y +1&y 'L0-m# s\صXky +v܈m  #Jz6S5)EC&U iD +H8#;鷈䇛I_A&!/ L.{kC";rd70Z26~( H^/ @c5OZ*ƍ˸3X|P,Yг + +:GO RO8q PQ$O5 ԍbrMB1`I5 0Xyhwv`urwzpX v + +@P{sЙ +wO| | iԈP*JD3c+]V@dS ߫uøEhT}TmW.yb^ :$q~ +1K:݀3ߋ(",4[(]K @t@9zWAfZa CD1:ШT`3VF`s!M" +nQɓ*(K;XyP1& +.w@Vp3S}s>!u;} +Ba"7!}?^2 +?69C4&$`x̸Z;nٍDaÔGчz9@ȁ)Y$K~ +xnFaBQT *jqJaZI3 +ZcRKz.)AjkJr<ik-/8:8qM#Y YC+o961N {) R +%y\ :0x}`_})x~uC{ HL2f?4;Yq"(^ y#p(zAw4MPz'\+yM^9=2eLߠɹ:@ 290 1Zj#?l=`3:8II_fHdSIH8,O)V3%Uy#OVOM|:6XzPLGPvAӒyC0@zs}uyP~\ڀ{λހxxpv +Hl|xzep0c Y9〠 x^8%XE,uV*xo"4UnB JxGE[pޙV8_Ĵ,`4hl> +1뗉KHu∆CCz:/)݇X%V8Uڔ ~mapTl#p>MՕ@p?߯0K @.:C`@ V-~?p0 +@3B|Y8xGa0L )|_o8P|Y"3jlvhSWH{}@s%\Q'zZ`v~>G 6K%:)}8 +  T)ScP$"ّNmOyegi 6 Iը =_ 9N^z8˪.2Ԇ43`ϓ!Gک2+~"hB$oL 8*ˤ0 J&gǰ*f'"8"kd*ir}"'iJ~( ~2jAЋJD$( +z @ڧ*B8) +.THZ> +Gf J@!Qn3ɢnJ8{`0X Z#k##-h{ ՘3V@H0#ទ2柡PB-S;raRsM7'BX̀:s +l|1~!j<` ?HW + +CH:QcxHٸO`P췱úý[-Ҝ%|_/)욠983$ 4ʼ ]'+jB$-H".h&׌X ޏN2m1IQ{DzC2Ubp_. +?TԾ&Sǩ{`Lxh"z@|`e牼 `.!`, fr'qѧIoZJ x *< eR5ض/- b9+j9a ?‘k@"E}.t!DDB}JJ(8˽rFF#f#e"M!sAL +nSrGHٕ`r&W$cؗ~dl$LDE\,$Qex'"ed56]G_jhZa 8'fDLIF,"2{aǰSHO?(2YJYMFT Gd{ade7O},}& /q ԺÄ>'rvWE_2(蝬.rʌfp&95dEJD$I'd%5GȘV rJ9Fx + V54\˗TeФC/ +ub@)GL &rutnj=D9o 穥"H8,xF٘'MݸV$LFg7vM-M* + +&T:eI0cuZZ/|N?}))F t`ǕGl +1)b=̚IQribHKj؈`tI#J) 8+,AL0 +GPi $5r@)N+XfhJDPaV)ǘEVG搔)aY$FQ#琏r:Qd3A;Il\13 +7vyferbQ ` BK)[`SIǵKzTL|¶A8Q7H!lyW,2!tpF]U*[Ml"l2lgDFcgJ?|mAT&,82PҘ$ cvG4. ` ~H^MO $x9ǀ`XmVv @ +CxA9 氟5iYRt!c9H؁UBvdZM,"8a!/ŠJӴ=TϠRHa^DvG2јL!)0MO`:OCSA\}#zb/DB"kOD,ԴmL8 ]6%`*\$KLdIs'J ;0$gjTE/,f/ +b-|\ 1䉃:}+ٺ̽={ҎѥQ(BPr̡~+ tCLMk۝ a0}6?کɰ׋&iΦVUuHɑr (NI뙔n.[bI;le辔ĞsnJphI_^ ϲ[E{jWj7dhQ{?À o͢H& ILOkR>= +! +=`NblPܜ$B[Dr [*ۯ*'f`E!6 (Q4EEacͩD@8;zN(Dh'h1sVGdQ^&>B-h}e, Q&pGn6lqձ<!VkZbB0E1Iada,h4n'S54O+6U=9^JJFE c ~-f)TE#& +XJIDU\klXs(*7bfrzEO@Er\V=mb\ACl2!k|\"7B("lM0qJD8&M~/GxA@k4 H6@ + @[ $D߰Jn<XJpF@+ +nTz~`0_ aW1 5oEG`vn +B?o3'o Mcn` ]ѷz-MQ˪(|C'@2$.6 ,2+Ÿ+,~z;@. ,rpIJŬ|6r)@84J:k<m|= C {&.Լǩi#q.B? 6@yl1<,q 1j }++21Bm) 02/$ -O4JKLՑEN.)*kް"_Jk 8,Tv+3^ʏx' `+2p{rŖ[CFѕR.Z{H/-G0l5Y n: ˫>N3!bBzxZ۟I*MQKS2@$|$5Y:ɯ4Ӷ)+ +,)LiB"2*wMȷ#w;ފVϾ71 Y\VF< Gy:j ϢKt85XPhGhkr-T B{pO"LDd!PhL35p/B +%Cƪi+0} z0V'T`-K +ZEEY!$aC)SvIX6# HcLG,oL)G@K2٥U.6Gz)OV0jŘ"؛R)g-}άOnk B$taxd 32iYz^b'T@>XWAaa$yIeH&p3JŞ.һJ:jEK-MM̏Vd\ +ze@P{>R7":$,5n)ó t4KM{|`~ +S(+,!a6Xzdk(yx)q'-x0ĕ 2H +ѕ [h!̋bL:1O {ȱ" +ct>~#/zo +ݓ $Rǫ/q; +<ϗkZ J%cF8]A&U*8S5`ˣeq5 ̴(0'# Bc$ I.!!ѵ?ϲdߣ/$y)Rx"%00y)Ao 4݁h0*;NAaEF{z~렬&7 JlAN|7Qv1^r_ 1f1(aQ,F|.zaסʌȝ J$YRAɋHGMrBi\Y@30Y9>gǮ); Ru*'U Q0p~ųd|6XY i0{evFG% +4ˇ"(ѩb ;sE#&7 .0"9aG<`G^ &_b0Y[[H=A@9 Ᏽ`)ݍ::!2==ݖaF/{xι;ũ@T,L- +<{iK Uc (01V{L-}|ͫ- + +S + ~&2YF7#Mӏ,j"w9# "'*6)6 tj[ ŮY{FcRQڀ @bwurIy@!5f݇@`{00,raxD@đꡛYpR] +9H +M*#n&)',p WiK3 X>}i] Q|XC +X!RmҤ0y" W0LMn+-gOg.@W9*}?`9$j( *@-F p( eO?4O \SS`re}h V ju^|jlUşO"]) :/ezƟxVUgOKfֿH(0U/8D+pj@4$4%LSRf줱J=LR̤FސDZHtGRM Jdm$j$H +3$쒹˘ "H +xʹbݠy:K*b0*H|'l#($ rfq|DZAK h*w+bv xZpIbQP# 31EALí{\3M,}NѫN$P +sL/Rd^F*\;3 P5) ,@k.lL+MݤWMFь;g{*#o0R(!@*<~|)Z5z"H +~cP +ķ?/J_boA#Y*r>lƎ^tΤv4j,@8ǻ+L:xr&Cŀ;pՔ).[+Vdn/9^Gܘ +?))VsInY"501Lt5V404*6[[+)2@iqTNJBOđ]|Cb]H2Ăj$ء4ZۛzLC@KD(P},sc 6_.1n-@?LðDp!r"P-:gonlr +>G#\q 3.H3QT pf춏e A~78B=È5s0L'zTƚG "{8D &``g q>%%6UyLQD@= !b=GXA\bwkjM'}"-B"O6h -6~LA8WC&(# @7Vz$D:.PʿuGeDh +I4%>~o%?J2$ĕdK%(Lץ !zzd .%%"ôm⸎sx+N老C|Ys4Gy +Y82FyA9cT 1 ި sj V.,EYG9Xk"n9 +Rh#SW2 HۓFY-xN#-uc$L#$E*jKUTU"JՔHL3=Tv7*`i!ՖIdxĨV`:f;g"D 'RMbP`Na7pNXӿvlc'LV"5)jyr +M"x(._EOz߉Pu +C.HckTNjKCI! +Fh2Cle̩77)DD[$ +9jcgm$DH(Q(tIIXG~@dWHz(Bxy@_gqF0L1"PmcJXJwu 2s(Hȴ5%jo,5*Ʈ>).:a{`A91Mxhm0z:qyߜdBbLnD"FYⶳ@ 8s4 +3|jNa,s b>f#ॽe] +ngS MX-&fV1hhespZ[`{YiuEq +Y +['WOgV@gN<#;!%B+;$^@_qsM5(D/9[]6{:Eػ(i궏?Sw޻ܜOBgd +J:LESCB\娩 Q$nO#=ib:Jϩ#ƑM;KIM/tW'f E(~mQRasI ]RDi>rVC$ל9>&Jnb j >GI`QA_(¦Z.!vh0K*@蘆%-B%KC˞6O%?:*4O,*E#8~ƴ0$~ʦf/J Efb+rf;BH)4#j CHɄB"Y^+b&Kȵ gT#̓HƦ)gޤf#e<=.X.~6Dl$Fd)f|@8-:R#B&[-0\`cf]O",m LhXf"tbFrFL.('4Bl2Ø5*D14lj!9)BOc"20YkD_ˢEjOp4tav^ ނ"2G.bرal*i0 ~]. m"H0)G\I@+LWBJC٢A3ib#FGf%DN$$(L>z?C1foh+h 솣ƴ#W%P0MkCAhkBf`gB*'= +-"x͚܆$lJ&# +DD$"6*B1Ÿ-AlBˢaJ-DM'%%e* 7A.SI!"++z.mbC(qB l'R̫"Bb!҂HiC0&pJPfR[c5@bH"텿1!j?@Sl>pts,2FMnIdLH,h)p}vJ(I6JKќHeE^*8J\EL3$"0 tGBqH@ L!"* L @ "@? "fe*+ Ī}&$BHV0b*Lc8& дPI\\ex/FJ&e@;1#J$=E5dj#씒ELmM05L0vOqX>Lޓ=/"N8IQp1 +N'.= + JJ"dwxPNbx$:8lԈZHCL4jRDl&jHњ9NŰ#8$3%o%bL!@:θNP//V&fjN0#INB +B.[tA4,QT D'0wfe0KQobC`1]0b6b\HwHАci6.QBmf> +{#2' (@_Cn5'ς(.,20FI"#ڦdP +)fhV.Lr"JBjPa8Q8q&Q3$^n?`.v4lLUBL`CgvYn'z +ch¢mL}̼7I'he/OǦN\ %h8gPG-&]담E爨B5trGH0uPipn~:qxdƦ){0_ p*l źݸ1 ksƶVc PFj˜rYgpF"rh M,jM΄lGX$b*b'~yE_$J28Yt*$l+6b|"α VdDeBFAŲF.,(tgF ?gzЂ 56=bP4X+){ZD6FN)zQmot@zM6P6<2)v5!r(QM{ +(cTPMshڍ3m@6,9ct!@]r[W8*cT$hX! Lʇp@^t)| O&F2+*mȏ%z}[ /4.c'2@ +Jl$@|VdwR~C.qH|RJr +WMad ibalH$B~m2E RcbbxR=> pz=P0H a M~>_Q  ~>r`:B? hɧ@Jt}>t H ;{=^q$ {FJ_`p8 +G}P*AHy@8?n> ўw([w@~?kY|N h> ˥{_8"٢ihDuGb$L(X9볞}=kXz܆[@4-r#k2ԵIyzǣ2«‘!CVDZH,G,禉19*-ˠ5 P'V:`D `4(hա/r(r{.<8Q^ jS:PӤUm]1U\V[ UȹՍjj#$5Z2TXBx4 c:3{C5 +rc5m+A䊮Os]=-dynU &Wm z^`Ok484PB޲V()xy)i!LΥh$RQAQ%:˹|'ʪgO XtgYkI& ԛ&Gc(Pk:o"4*&[*hr4:jL0 ddeN!n43bwS&` !D.ˮc@0Tc*5P~(s؉"(@ RW#ôD>aQ( :^J4UǺ Jd͐/f$d@C z}.=&ȭ뼧F^QAR:D!+ȾV}c+VX\(@ϛb0QCW{!V2Wka?@@ l.QIHQ΢"?Rl\ +cp,Ԙ Ad<G2EADIl=7H&r!.hў1f" x0I ÎI'ضvJ%zs(-$9C>RQ-FpT9-@e֔J?Ȑ$ȅR [;):AbS*Z481M@1#ZXI e z[h!+B}@*g.r<1Bj\ܱd 86mGZ1Q#NN&tK6s$i$u1qُ).cԇHH_TmRU`Q\le:}6I'r α8} +RB&4(K1AdKCb0ޚ.r{ʃ.Mcĉ$̀U=5gNbS]{T9;JnRKu)U&zN>S2EjAy%iNcZ%%GGnpk[\{JX{[ +~eG09 lBM9F{de!'g  '6EDZ׮ +\/.ӄ%uު0 +[)ȑ[Ȍ ~;!> +)E8+XIT@|`2njb.S-r/9\7^ 19,21V H\Zbł('!) +I2iT34j_) +龳v +q/9 A:e5 Ü2 B&눍J  +u Ս2 v6 ʒ}R0 +I`&X#]0ChpAۧK}Y?2mP *`tY5JJ ZDc#X<ѭ2ەrnx[F3(!+}1؆;x 8 +G?0սczh \2q>25. 7 ֡. +#/8 +1nXk+<*5b'0Q +Z PpȓqC Y1 A KIИٚy$X68ZB +y :iB:ٗCl5ic$>\ƞ+N Iq8;>y +BzL .H%ҳze Y&y +H,-z~ڸaϜ0yY*L#; t8 ˭-ȥ!qZ!!w68 %Ő爈 +J)p@('TV5)(Ǥ\C,@/#\ި#QrG0 R+Z} 2qn{(r$A<bحIeAr[-T?1b-T׭T :ޝ` KQoC&BIqպQsoI6 +B !,@ޗeC)/V}h/,8c,Ƀ_Cx|U}9J$Ǎ3=kK + }Fr0Byχ(o8| ph]  +sМ %zo# %WI YT"o:Wɧ}b}s1E!]DY#l~9[ YsҎ$-y &pV ّ zwD) +i/6mD9|Uk8C=QUj8;y9 aqXL +0}/>2"Y5Qؓ-[⧜" 11n@ ˜/*u+uPhʒ`>Z4H% + +8ʊD +|HtA^AەcZAR -bdzܞzA,ZrP' +' + +!mBkA#: +yr2.z'ܥz/A6}/}lVh\E&Ŋ6hx(q3D +ٽ y,U((y1 wqhtO({Xt2]pH,`R@/.is>+x"bvdI,Ž+aISq9EwaLQ +9[<49qsR=e"Hb֔1Lz x +F;xX6(Hd: +ySdF}ʹVo 6)`RZztNÃܽ9.p q߬B4 I{V)IJi$ܵlF1avfa?'+KeI hDS ',A +=bFҳLfUunШIe#Em8U2tZ9` ! pţ{2k\[Л1ЊA,261n@0Ǫ<uI.@(&48ۘ;6c +I 1m@.FcӖSPS*0@` +<ʙr4 . < 9œd|]UAABI"K"2~6[;x8ꍎxŶGeTaMq,9Jb%9%k] ̧\$~N~MĻ4Q45 !O@|UrtF 2Q qbmѽ qq ի("S9lI3ݤ" BxVwy +#"b-|7{grTw A,9ϝcGH>zipM.[:{2/Cױ/774V8V6@*xi{<\I +ЕS&ȑ $ay~(*݆ex~hqEt`.x} *ҳb^qE|>ZҳÕƟ Cf,;-K.mb}F1٫7"/XK:1`b#;9YOe7>qDZ^ڜAYͫk wCpݴd[?(`XT~o(@ +>Ht (?_gH?`+ `SX Kƣ;$).(I(/Qoj!PbVOP +y̞?_8y 3EfFoILC pw3>{.ExaRh~`m}>$*$@WkGh7M_6w|Izw( +h/;CWtj/+mįFG*@ܩ +X7갇+L+&ҳh(c&<@ KI}' + <&>`6$)0D"J ϚrBȇ +k} ޽RAj`)$4j3ЊkQ70 {~oH2-Eܷ 1{Ѵ`5IA{+AR.,#0O̚,7 +Ң,$h~# iGүZ8Dқ Ё +24|ɀB$$;,.|G%3k^- IJF.n*KϠ1e!“IHQ/,1M9喾0+&9 +,ns"} f0Ѻ-Vgk7(a,Aɾ-[b$ʩ/edFMZBۻE[9L«' +{N$ y`C\FJ.x,Ku{wq +(xF N3ҩmv:ts1̢,pRѾns.s kce pHi&,>bt PY^Q~3@`ezXDRl!Z3dVg +$%VENzCࣥf -$ 8t1>#I"$jR$IL(iQ $DhPA$dj9##">]W." "8.3E=@0 +[|LV!$ +3(VO5ieĶi:Y(0`N4j]r8"n(/$aP9/MS@%T-&,yE-8]f=EفHqeIUY0GؘFN4dLq8CJ.z) mLSG@ +;kIT<@2HG̀9̩Q(=y +G C{,?ݩXG5UgvBRL1($%+\dfEӠt>Pfј$x`e~',/]Jy'm˼TfA,r99 VHq{b +8>mtb蘨r@T L P0{!H7A& @a$<%juu%bup8ĸD*wLTZ @a~wI ?3"2CFe4O4hTSSj$5rE4ih<48F6-BMj蛃pKpva)>J$CDUcN)ʸ`\]ʄAt=@5cEBg˰ɹdNpR6t(V6uJ@z1v +є:@369t i-#9,Z88՗)Aj(K?0y!¸XD55GXg8,& +tÞRZDE +PS bS,@ɔ L*$| 5!웙BpG5ygU^dM_lk#Kur.o+V0Bd'0j7&,]pG=Li7CEI6 r 3FRa'K<(oYٞvu3e밺H~ZR [ +z#|gFDPل0GBj)e0hV˹>C̱'e@ +`a%tE9eU5-GF[렙$l;@(P{f_$&͵1Q #)< k蓰9F<=_iDH%2`)z,FTu.Rx&dCf,p3#" +(?01Q `%~O;$n$&v +lT! +B=xRʪW/t5B+n#"{4h;a'Cb/tJX"D*2$ T!$T7HqbAHCtT V"d!1" +QP +`'fbdU|CwhT8BrkԤbMkb.b΁RYN!m6 md +Ir'dƦE#%\bND0 b@DcRN(:J]WD +#z2IU@hlRjm fVpi,F2cziG#$ tU#@B @6`t04bjKmHmѮnnǦHK8@ephr*"+ZAwA@:"ƈjsRF(ʈ6HT7 '(PEL`"al\b4.@ <>Bp!eFB&\KddL +. }X"K=O)[G`s=BN$h kmN^F.I0(cJFHnk(~2jC6Ȭtꆲ$+l%bd#@ZLhd1IpNDL@ETϩn7pBTe ʄdTQRc|h#؄4'p~4.0,HR) 'v9'ƮߣA D.Pèl^(RkIF>-dK -VJR0/8zS'V'D!JU-tFH)2 eW}JlfĶ9Z3jHVjfyB>&  dC_f:aPŭ +>xlm$&LL)̖.GϔYq08r Ζrv"{UN@B2+0*D&)!N Atv ##]l`$ `T@Ma+M7++ üV~r9r3s&>tT2(&K_bC"NL +@UӒ3IE&bF+ʄ5ĸC?²f<Z;*$jZ*Docl8~K4fPHt6OoWs'>(lV0΀:e[L c0djĘf{)6RIzT # +(2”Rw>$*v,VSêAт\ +fdkO/fA '$RBz-,BN{gPF\ަbo2hBJFQh)B!B:,ΐ "j,s=tf<@ %Cz\f*o8G+DA%oكTsATEL F~uO5R"P, 06%PGNcq sB6dċcrkeXE贏4bd>0#j*+XE]XAiZ0wXF|(I4tCBUJ."2xFO"LSŽ0JJ,!9$DD4 EY &Mj +U>]3N–*cB'Z7vuvZc XQ_%gg#$9$c&@ti&kwEY9flKSU"c~f`8>U5iU-ubo,qb*Ɛ'v떼'45*/2 +lt>@F@$cGyv"%a:0TAfaԍ   T T.l8{];~: +mV&PvunOh]HHL@ɪU|n"7q +s.Bx5#( Lƴ*%k'Lyёhmwp&K>Z*AOBg-oAriMBR򘚾$|Tv':Bl#D4 +]9l#"k"]H-G 739 }>,Kh!dDYC||DOȆb5ڣ-O@ƨTØAH~SmCXLK0D84ʗq:K~F.9#t>i@uiCn4f7OHFN:&#Õ`#ItW"J:eD:I |R.s4c+b X6>yHa#),=$T, +D0 o!οĸ9~k1j*l"6|HO(/$Ʉ e+_Ftbߝ L$ tJd$~ 5$"3Qndf>c=fi! _4MaZMtQW5?Yx& +] ++>;dSl͖65h1FY)GeqPQhcH_PCfL &~if]&?XmzBgŘ0v/n*r6k6),,5P'` P F,H{gpv*)h?n {\-}AD"*EdЈ +WQm$rJ@&? - +0wn՞?w D#ز8y,*o}hBY`Y +2|04O;(`P&BHy0~gR04Jl9\vF#O[~r_!+RO7"ުMaȟ:*-Ύ.,L21ȇr$K3脟ID$~4ʺ¯{R6 b|֣/L2PFȫ>'+41)\{BG +IJ޷|< 2֥ +Q 8j:FMAK(AAMHC|n $Q4hBT{(Et7hs RɊR !(ζ5C|ΐQ, ' *ڟBQkM1+ç^՗:!DČ9rj%(C5)5͡*ʴn0m;$)^p4-: 6Azǜ9ZP} +ARb9nDmxfz +9(傏 +Rp*x9d:%'ⷮ;`γa J:dK^ |=5C^4ʪ%1Q/<؃8_x AͭѺGۄВJ6OD+7|0"kb|Nx +9-e1=nKL1 SΌ-.1c\ ޲Wz:lqR<$ͩ{HI K?fX 0c3g`CcN AѢy\HH"b;E +uGvO +|0F@ yaA i8UYbT4"H[Y"e%Zz7r: #$rP@6 $|A :ALMt +LnF"4^"1z&lݛt 9GX4yJyHbi +i&4_$bqq +ʊV6H39sZWcHrA$:ɹXsPjZ.MC%,a-/ +152$Z"PLÚpt +$CJAfbгU,^u1#]$J0eJ>OELiXR;!اfƓ$zfmoȑ=֋az>1>CW9&1A]:"HK"0hՏ JkT;|ʫ|ZԽCb2e&3P!#uio)=KApje# +5^T.)2ϒbxީ1mL/$|D4H 2 K1s j6 + oU +e d@#%c[@1%9dZ 1U~4DO$'ܡBF5 +\@8JީI;FM:_ҝ; g)U}Ցs2Ț +٪]rPJt?l4&.A!H H$|:A +nZ]Ur:>n]W.Ȇ(7kL +``n˯݃ ty) `Lʹd={ +a8& ,X %1ɴ6.ʅ^ZFg(Lq@v:$ Uj6fXZU S`iC*Pű +{#wY*4Z5UCו@:[Ż߈L =~v 45s8bKAd댦r,VR+cD]6v (7%8ψM&b9Ȳ/qgES"+})vV9;^O +!PGoULR.@W*yY鴴Θѫ |+I!}1t^oȦHYưPYV+X)ٽV*{xQ`)FwdNUQ@ [,C$F04 !:םP +i>;PŐ)۹ +11< +)#mtH#e#%H[ 8 +=AZq舘`-0ޘ`ԓqBjfҍ{xÍK( +X~沙(B`{q:))-nR%Pώ + / +(yhRv~2cf)3Jx܍ڢi  +y T +[ޗa.c@ک,-:3w?뇨z]]D}*-mmhvk  pQшЧZ 9U. I&^(gӏI7ocEЯ[ZR׏zgT?+!Y# +  dH +s6zzl`qs8z p}PfrQ  Ƥ[$SaxQE9sv +Շ [9;1=hِ6tҥ + y I +?  +L*As=0B W3t/՘>#^0 <BlLH=ហJ1xI?/0(Ǔ8"tn(' C 2&ͪ + ~935  #/80h +ie:3;1d +/Ԑ)Г`eYQ7tg)Э !'xخHe + Lq_ 2̐/$(C&,./UjWT,3v!ib&< ʊ?&i[xᄕ՞kk*0u< + +,h: ?5L؇'yu0藉CK ڎ"æڳ0֠HQ2 !z.bP89k՚H8P?ByUʯRW|B —9})1!+F + +PSsptɈRae6,h.a+:yur,Z y 9;x Xy t,x[5ே\Osu\ xPӜ +\@` (yqZ)ik #Nmb*[ [)5HV$OXx F$ؤ,5xc0B!VipzX(ip- +*!EJO:h˨gu88|8vP Pb kxz_͑ G$ CX  + A":h:;MY-K+͒|3j4+= 9Q\3x2^޲ ȯ +<:Qr;lJ7mLI* +,J`Y:µ4eMhaGK;ib PR˹ՌX0ɭ'K' + !Z(C:ˮ*9@ s * AZk+U + T#aA!(/V +{Ga^0{ԧU `ʿ@':,sQؑ$"kɗXSaB9KQRru*gQm#X0yI%zFIf6Eah_ $RY{(R"^Ħ{ FHYrh3鹽(~@{H ,&*"!x+i ")/0xgZU%* W``!ݏ %fїI4$`% + +s`8x.b]Ȍ,+ +{ђ׍;3x+*2@0霎uC6_>ܶA +ꊦbwBUyvAZaƎ%,M& f]۞ćg];48xy,` N3H8#342 +KL>MQw}usP|x*`|́=݊I]ɢ>7q]!>㡲$hxt?S9 +ڨ N~vqڔ~ĺ:pstH(bLL~0b#XJxh*dHoʍ +5 +Bn-`3ut>Wՙ#:ԛ6(ʝ pY@C~Xt =`ì3nY8`}-9&T :C^*E +<; ZLn ;,Jȓd`9ئQHE"(Nyr<@;a8u+{#̡K*೒-XZc 1 ˀy'[&Ncyz(X+>8~S\U*E+ !  %Nm7_u%ҝ +kxz j!ќ)QhQeƤX'y0A5C~]J?niLs\=7b,6JLpʼnX|hT') +}Ơnk \r@ +>쩍c$f$^ވ|jB XZM |XKW +Opz8Px᠑ 6Ɗf@T(@> 0( ?# eG@r0Ew +  +oGXh ~>^$f!WtT*wڠUyWP*ՀW~9>oFB?fsYw0+tNq[18N@iLV(DM~Ǿ{\w7-G{\m>_Oks=W{.}!@(&ʿ,{,lM +?-!IK,6, ++ ë,6DM|Di!ʪʲG:L*ͺRɷ +,p̣J&$&ILr|7tal PBf i`$ +AF{1ɢiFM̢ # ̈́6-)"S0w⪬I6;sl +Ll6Ilb(-0@BHUP.3H2\ʲMOgӤ.rЌ0&**}%{J*$re2jY뻁 ;_ +|`4.P,^q'5+鯅|UG}K$hs׭b*;|qɰ*C|}_=N,tZJ T@Y+paE*hs^W!5#jDަK[TdY+o7H(Uh"Es +i%ni`{RMp2{rIʄ'Eޞ!> >vJʓP"B9FB-b̄6 H6,{Ljx+B"X9쬁CdOXm)èf^{{ۗcdjHU$dKԄ Lsa$"&Boeb"dYIG*J7|| Ag&D +v,Augu_SC̬l مrf8hRdغqW-Ф? CT)zB + 2!tD4|Qt%{2?W/NǠtgw0AyT"X{+֎ ++otɹ 4HYH:=Z$$ -8 Y̲U]뼃Ri1:^=WnHS.WLF$k}.$nЄ(?L(l]ݢҶl$H,_*Z5ɲk\qbPF="@JJGHDʻ+4QIEKe)LUPn:`"8x@Nz>49Dّ?lЬ'-v{93y@P F @B.nƁ?GN2* 'bY +hDd:O|aL`,_rdF0CMkbEPCg'Pa:aA(.>hi Ec<0I"C+0ȏ%6P BȌGv|6.v&_' +X}lㆠN-:iC3 FӇL6ErI37 hdb#g4tf6g&#:\WB"vQJ6ad>&N9 ,ʅ,(fh;F +'4'D2J .bbXC4v&U.\C {i."9z1&X(T3nd*7(U2|)_:G$32-4P#xhg)lihβ2B4%a^2,(FŮ <:%z +Ć(bpfNHk.^[jqw.gXC#IBi)j"U +B蚱YKKsFf)W,E- K\)tW2eL/jFE$A Ünb'86GC7e$Hѣ|X)֢J0]!$IC.KbFCGt%vO$mk#5!:P"Fѧ$'cfe*$M6N$vJ}fF_m#ē+ +L)mb*p%!+UFH"c &c򽄪}HTEĘ^ǴPfQG(Râ( "% ";œU!s07~K>1EQb +&"pHF}LTRAcvX$c&䤨&?#FŠ –`#E +ÞAaaAAabT O` ++`vP;D&Ok +L(`l@mdʄB$SZlajЇG &WI6EBPzT.1r.$(#e$IPQN0P|"$N4v` 4U2;'X +ѠOOI" +o#Z%*$@ +TNJ3k'1. +nH|rb7DZ=lvLʗd0k'P_Ü2PE'Y"OP>+vBJj+6JD lP #UI"BKPZRR~b nLVr_R"ei,Jfk,Xl:YLB$°Bâ2lfpG,`wB %%g'D + syN$DXLP'/ yA<W0Am!A-51J# s6Jw7"`%aBΚL`4@2.AA>'v hbHT"fΥXcm^â%A .` `"@"dF;$+uJsM֛ ^R%#17PN!@\#QHgM^q: ~#4Jd*!: @*,+X٥%bfe\ϕ X)F@٥)#bk s ((N]Czz;P"ʄH!m\ȅŌ`Cw"g9$R,l7BX'$.Y8i>jGo9Of‡`z^ 1 !bw2Ub&%VL)Pw$>UgfObfn6IqİYl5k8l݅q2E}`|sj^ɼ[.ѝCJY$s(dbdl|iH'4EJg +,H;f/BlzC+U8²jsdNJ͠s)TÁX}̽IJt=}vxz۾Ӳ,e+PvqPE'hq%GW˕(^ӌ*SCo+382̤Og$%4l"WJ:gm@B"b.߄z!%&"HfN a(@>,$'d:]ez:/#%HRyRi[*?GDV&bR%~ cG]S,cMC#n:oH4KrpB!SS5z$b5|@<u]┸, ~?doZ89r}D2AfKkF^S* )oi`Z@Q^B)t'q+|ZDrKYWT1z@m"N@`O2M[h3W{E郻+n)8&H(;*j@))R +#j>M)',|,;@,[b iA)Sj^ +#@ +ZKR,DF e%` +L9Z% 9 +!JKૈZN: ۢjh}:ђ{@H-@@~Hj%n +34\IV̠~&*J%|)J.zZ0g +R8!좂}ǹKF|Yo4r*.H +{Ǭ .Oʘ[[JfѶmBj} +&@ba 3֌(KskyGu,tAG1qg|>@AGh~¨.jQhb Sh` g>čsvno`FKn;oXj'=?T7 4D+J/tC*cbˀʓ l;J0win7~fxA8@"*1Όk1wR)4n:[Gݛ,&XZnȊhǔLH\%Dģ8i䣘D Q-BV-u u!wĬkQ 1kJ1l|f؛I"@T]4Djh\#N?ΙReUOV!0`@̀$(\I*}.5oI3$]Jz+ + BFTaP&5AsHp5)}ʓY(øA18d"^1Z{Tzv J "=Bc =t` ^S3c + +CSO#^VJc8 d d:+"tB|EXb=0wP]D ͏XT{bV1=+쮖*vy9(DU`oʆ*C3&ȲE2xɈG$cS@+Sb.`=< +Q,ӤGa\P"$9Dʢ4Bc|d8JP_&0iBzz!}$wϓ /阭fMQdiA(a hR)r.d zZ4+{|k #D@nXҊT'6uJ&K!elRO+EBTI[֠ɦjАb2@(xK-֮svL_ + +VP5] %&?Omg)63X޼-Xc <6F(n"JY!ØbڻJJYu"PE !xZ0l +1:/(pEI(# f +V&Eb˨<s $=" 5. km"@x nLVsb\&ݮLټ?E&$}VrF<C5jOā-B W1Ȋ6I ,J6E8(rۇPxZp +4'||q4n#= )8VLAJ'eYZ]41̾cܥZ:lsC"ц uF--d+ѹXmTvTP +?!4I_^2$HUFFR4ƸJ0(Z䳘[wJ2N{ + ]EXؒm)")qk|(9la-O (8Ϥ# ia0E'i$ :"4@i=ғIXhz-.[0>JVa +. + ) =UBĭ9\ \:x'C +"B S@8 + ҞXy;lӪ38 ڇӟ) K E㥱]` *X0Dh +(eÈ + +yE0ьS܇I ADW ߔXB=Q'k<‡XTd ], }sK {芘gX􆭷xHxt8t CnJ `yy+ Xlmâ#I`}#yk':P & ABHКy }éwyx  p(!-_С5p3:M#p;Mɍ2L=sSP hK\߽AB.$f+RM;-!3pxxzxv~0r} S.,C ə5'| 'J"J +@ +ܴ9P +9$-J )k"RHR?+$)(~=M?衟 +(ϣ Ɋ[T2LӸp`XD|ˆ_b ۞C:2͵QJ0pTՎVc*< Ǎ1dI kdP @La֐< %c+H|P2eТ.<-ʊXa.:u5+zzXpॠ" .j٦ ؜p??I:#+iI +mqq0 d4=: ZW%q"xC; + ++𩦻: + bʳ4)+ ) {P6aϞbw*n ܇ #1lV@aIR@z2$a^8JLYlOi%-WE 7b,#x|3#(x@Z-(D@zhߥJ8~z+N-y +>2%ilzͺuĹX ++B08_!H^3c9R 2cm" +U2]M8Fx b KJy#ziI< #X e nyB;h28͊%s@7Utz8w]ߗXC*1&k="L)IIdc C <: LX + xvx觙]`ș`;<Xlvpqtp +jRFk`m@9ǖ“:ȽYZAO9;% 8(`8 &"ڤ>22Xl?gHISk9~ +nBKP *nž72vr3U }HhԡSCՐ #`d z87?ޔeGJ)h0-d?F̥X'*cw𜏡ɾۿW aP .i < +؉#A;S1tI/aa_ x +_'Q9J{D IUs +V H|Vԙ6d3ꕧ%LOխE1-`(.0 ZrW_IZ3 + ** +xҿ[?)eӣLp +rpA _F(֛":z4.8דl> dTHܡHȴ`Lp|P|"0l5(=ZQ#jcc;=>'Pua9u+ +7`3&Ap/ >}O0 +0F$?wd2('?8 +2ȀOwSnJ_o ?v@`0( +)dZVQ+EkE_'s}_P&K=I'װ=@4F#B1gޏ^K`@Q*:GK?^{KQGs6(/Z9#z a@J?.R]ݻTܬu)KeV[oPȋꖨL" 0jhb%)#8ͧ !Nh9{gyt$ @0:HFPb#+㈠;@;%蓊Ȁ+j$H1'(50$B0ֿzZ"ıd0I$R!)-S@'\4jC+LA)ּCHtЍU+CLrElڮ;G'ھWVT B|3'ԀHH24q~+`,nЮvRZ*H$r3|J:40諫29!Q +'#|M.uDl +N}g^!wB$Bqjd QvbzXS9!- Ɨ1[nފӠ +p|;Gά="VLJ:GH nR&O<-*$.CnOʐ~ڿkv}e"*ۆ]nП@ 'A:j&~I +\JrD}:b/O;uYjjr7TT]S -4/`p"|pB9?xTtU߲N" +iE +7&WJ0%Ik!vK; 6:Ӕ . g`sq GKѱJ2vDv)uBXv]10DHn*Rd +&"GX}4AQ^@K(ehU^iʸ{GqCCt]MJ->H+B*,eH +((|((@A=Gc|<5#f8ETISƅ?· + f,?7#eHkJ jC\ ]( zO;*uHdH)TI٤(`P +9Yn?GÕhoO dZ~,@y&2?0` [$lt”HD'СDDKD{͡;MN@H ҙ<06LT)^ά<4ռ_dT@"+ݺX;XdDPRG<`W(,:tiBGHJa*[+*)>2`QʈI@uX}JbmuIV95I$3@AҺ*4'"CۦbOcIPn>ɔC-E\_: +KGڋiF(U S41a.MA+NBHN3+T9>KR֮aI7aZFiHBzK+u%XOY h!Us ,}}]/(#u8Iq ՂW +>^zCSa"m(H/fr +,HZ;V#h)Q k=t+: +D''IcR(c6/粒* U1TGX]@F tt& +p#ISǠtfe'8 + 1%~$1'k,1k*!1RlI%mr"= ;g8*#5S= %1cSY%!o =!)VWO_CpA%*=C\P].,KnJu{H).nI#PpN ^@/K$’?G@`k +06F^aA@nF$ +&D0P\Ĉz'ʺ:l")i0d=C0H <)lӘ퓺v*V=VGPdh>%\@zoܹ4]}uH,ya /tšH%2j"[EH+hbiYЫ^R̐%2mz6!(%pVDo&F+*PvƮFȖIO+5+BOIXGĚCZS&BzE-ź( iM%B^’$DħBza"Iȳ +NBap"f}м BdPb|:B'X{dPlBJPQ6Ep[/X!#;C&H㐥Š%8E"V~Z%f%JUmǸ-40sE "LhbdǖD7Rl\!n3Bk!B(J"{V*$KI2DID$.t8X A8<s@B|!eO!amD´77eX +>3$"1< (ɧVh5b*#+( Bw|P&(hѾA,ȉ/6l)!0R,cD8(B+'erhD$@KJb$d/e'HF$(k\Hp"/4M H84˲6E,d:ND,$tbj,Df¸5(oŒb(|>%%Y"%ʹ0=FRI)&J2^,l {S"% +! RA3i nL"t^n!^B< e0z5p!ce+¨2e!!`sjŽ$2h"KEUb'̬-/0 \cJp"bU̦"/ +*.8Z)A3JL`xdX@ +aG&  ZJ(d7fĴg7b̐cbc!!ưAacl'"8V f:nc.G;hW bfĢwW_'LR"!cLg#lL uCr<<] ^joz_~rh)ԯnKV+,0*$ȪrxL,|,@[&,V]ʑK^b-n8%E @qD4m0h¸ު.DV":軛bE) OY\:${DO$v~YdXD¹1O$8sQ!R\WDX@ +E09:_ Tef}e"0(^,VMbc>>mREiF#k0?H ( B~kΓfՖDcRM2L^^B(0TFČ9,λ!ps+BQc.ѠTgDJ mf<~*KXjLvn8+Z;WgYִ/L0"Z8*B +H\DjHe|"ё$b[ +&$Y잖j)erVc.D0x50:G:GY[Z#FTn..\)a${Hi$vND*0ʈg0@W'!)JpD (  ns ByJCzX<ļ#;Ny +$ѐ4G =Z=ub99%@mFOd[>( 08Ub$PG^cGK}چ^HQ)D3^LAQ8ǘt=@C82lJE`IΓe4>hLNJ>`D[;})b$2uڞ'd>]Qa4.]Y+Qc8pNX>_00pHqAS/0Gt|xQ +mt/-\M%E2,i$ +TjҪ5^N`| 8Ba:Rt +^L+GC05u9;"{_@  + 0 +~? @7}_$ +ɀ/W}0H +!>ox6b0{̟h"Th +|8nSN}U C }oGAwXhx>6>!~v}`*b@`p4և_Odzv.M : Ѐ GyT`@Y-6Ьx{=="߸Y:?$nK46~'2ygRѰhnG{'`|rcv~g䎀@;L>:"1GxH%@3FI*)|Rn‹ +yy{) ʡ #hj=. Gy;`*_%-Ȉ!)ϲ!$x}@:qI9`X0`:L$:z8p +2:Z(r橞tƿ+)'R1Ί"`֮) `Ȳ;r4r"Q#L6z~ |"z^|2DNh-I߂ 7 %zzD ĈkZDB/)#;}$i'e9'z@X +7m/y琴1 P'J'O?I +Gޣ,U\Oi1Bcp2N8&ʐېu˿$j4ר^VYUjKF ze4xNQ5(PFk URɍ vEo G#e~,m =K>]_"1*܄ -xήȝ0*UK<-v*b8^IB4"[4/t;uꢉwj>wa2EBeT(ăWpJBG-q=,T.Ch,-$~ ?e$B` +q!p+ry>dȭ%p$;N"73F\YR{dP[@Y!g.<Xd3„O};C1q|my"kF.בg4`Ie5Db^9 ߃=FrUO +MH!;@ +U"CwBd"G^CLy#|ݤ2JNQ=Z/D }Hsy +D4+aQRb`e.Ĉsgd lxQzޜFꢇ1qJQYP vuJUj>i9e1gBQć=TDcՊ2RpzQ5瀓lFee}Iul$(F9a)Bخq +,g +Lq笁C S`v.P*󆖸4,HMH]5%Pi }0f9hƞB% LJ~(*ٕ:y2@}h)k= !g& +}[OXIa5A\B>Ej]&%mv+,XCԴ$<7|\:¼]ʙ!r/)Eke19Y>Fy>FTid^q•\%{3/A +1,<(x9G#*YX0Lil :I +8Ǝ*>oyJp8X(өD `y,({2MçȆ@A<0LʅqE 0$Y)9ɸ; Ehm) +" b8ء7~=бp6zExUDpGxH;@998PX + + ў*0cS`,!-yQx~h+Pܱãh S") +"6k!!`ϭ4M 2{)h ך5(53TrK8yw +pH0 u + +J3@!#9 +Fh +5d0 +5 #  +.Z\:),J$Jr)#k袗=4Hq0!=0Iܡj_H6!'^Xɕ P k +v /p4D.{ +1j> +*B'KG9-8qzEKA4x&Ȇ Y  " +iP ?0[@((tHx ac2l 3@ E\4D7_CˑƌZ + X6 x{ +P˙g*!aېI: X|h +1> ++:l/qw+80Љ2eB HCxأx~+a( ?̀@'Bȍ;z| +lBE }[0H [?yZ H"phQ!*F♑Kƨ((d@(u?! + +Ox  'I Fj ڎRiCkm|2;Ң;ы0؇"m=%FW>u`u,)8@a pti<*j&yT) U]C$[}JAvp la{ .(3)pG2* kqʭrVѯL,sbZyZ#Ak)0 +Pk64Qtxvpڽ0HΊH񍠁z=a4%BmJ1 % 9li&kI i 3 +֡mɓP[JjKAŕc\+}YS[ !ԗA$PBYh%Y)qP +!خ`аBОܥD3"Fpʶ)Yі +Ѫq&ˬI"@ :À,n=ei)^tTG +D;tP ++2`RBa|0x@iԈy +U1utMEN Z[X < 9~DympSChUVaJ`Qc[޿ +!ы:a]j B$+dKZ^qU-叒 +-!hR;Cό- +%ج=#d[Z90 +!\,LQ*z97  +<[?% b&QxQ1>J_XkP!z5U P #WP +7z:>7ȓ ơ"' +b qb9`P@1 +Mh1w&[ +OB+Q +z阎dH|4"^*mw8}~zƫ- ELxHWn68L <9p&8[]`ws+ºz1@(x|ahG΍12-lGC՛22U]ܔIu/.[mݩqG!6R" +ғƋ +xd)WqgIǠF6D X^:XCnjحfaL&ޕ_DFTR؞UD$ ܐŀh'9m4΄J;!uYؠqx1? H@," !h&K $ >9:\TJu݉,w`TL:y(Ƚ̋9q.#t彼>ËOK0 l1DXs9zРS򈨐>+dtI +S?.(Zh2Ch9|݀P>m)P +^s +wI e +yVK;[ޒ`U(;)Ɣϋ֌7UՉ:)G*)\ )؋d +aayFϰض 1HaLtb$v BcN"c[d=5T1=Ilh +ͳJq,( +!!mL놘ˏ9.s8^Aȉe_? aw'QxerkBEȉa =J΢u ]{瑡E&YN*6C[paTԉ8Dn_ +{S:W'{i3bSԗXG{/Hq'{(,y9>~xd9 +irX ++>x47|W+4{rEoBk^,W:` +rD&oVk ,*0|pK{"ZJ,@ ϰ'H-R~.*ڬKbhq岠nҿl$i*Îfé|Cӝ:x!P.2n~@  +ʰ40$/ +,8*:ҒQ|KȰoԈ { !kz8# |0Gk*!9! H$ZA0F tb WMnJ DvjzN5Md8@:X}?<D4Km6WRvҋK/ϥ@w*44jԇ' r yaPx$ + F0.ո~K u>(!om*܋=8|7l P Eⶮ* g>U4.VZ0L|F| 4D-{@Kl +Mi6;F!(,*^B\hRIWʀ@FB"ϞJ{GfBŀ*OW@W8r2TsJMO`:ֿKÂ^qY(/x|(9+co[2LnlR&*͙-qns!󢯗FH}$cS2,m&zLÜpqM%|)}ϬWy RH`9@rA/s`0Q,D^k!D!F`S h BK"85\֙!PQ:8-ǤT Jj;B^˫8BWuM $ rY>J~S] !2 +k7ߚd!d;FL9)WС=&\V6i%B +$rFXʹ2zZG5b +,j<~:Nq*JfKL53^a$0P)M3\RA*Q\VC1"| +#41>rH TnAu 0zX EV;*x|:)1d,yfU;x˥R ;tGH(~=_)* PLYCd.##$3\\()K1@h P ,X!DTWY)#TXZLˢ%i,і֨Μ@(;fX䭔,=83" %lɉGXCkmdg9P"g%?bw@|䏁h -5ZbM]Xmv K6` ʜ=Bh%'4=U{i1n<"h?SL"Yc\vBf\&\hn.C"SKwEdڲʬ}wW'׸|72 ke^JPzAk6Һ_ +JA#{L02"vb',H$%vQ +d!|SwIf.RŦ#ͬVlVtbs^M9L,D3亮DvDOp9pRmpf +LV8 +RbG$0!xfY0,tfpNp@#EeTO>,-~P}Dk^"GC<n0f~0#:f`}U/0<iK69*TxBRtQ e.LA + %EsLŠ!/r%-~! 3g- +Def'EuF"! SF9L:7|,EH7H##tygVk\ƴ!+TdO C(2x*j6c9jX#JI!f${b%Ġ8 +) +3ɓ2+\VŽe)zĎe†ao "jc(X-6j=Hdq|Q$­伨4{zXl4RAM!d}X1%(p7N0:jD)M".p189'RH^D/#9B3,u$kcfhjK2&2`0(G,iNLnFL *.K&Eꨆ:frlɆv3(`2=iC292E7ӓ%/$Wc0hc'lNҒpL&M Ȑ)ⲂcT5Ì&D蝳YD%tNK)boi@C24BN>H`%gl%!xL€` HE2p8C08ĝ"?„$"J,O@d*(3E./b883^ĪS !|#䔔p/#EJ'b#*@b>0JfnX@ +t*R-pah"a覢r0_Ԗ0agB8FRrFJ^d(zlhjl-eAA`J.6h2Pf^HkBmÌDd2E8p?HB6Wz;$$)-@rBW co' +RtB@TLd28Wj5xҷb.HBccJ豈,d_j8jgkg$zkm%!DN9OOiS$h8@8/Œ!'&Dd$=$QX%o\4=%(JlXĪ$V+Pg_Bzf9("HgY}HXgKJGˆ%xS6z)$i4I.pCcY]0JD0j#3@BN^4fĸ"hTLYuz6:F%(#jxƜx#5,e2'ϳ=S)!  Ȕ.$d>@/CE QDx.r-#.y. z׋}e1h^h`S1b=`83ed^{ 4h +@&k 6A$(/+ ""/N/3 @TXEboKk"1$pC[,7 +_`4zɒՁ Biz-,!@8*Uꅩ|%=Dp)ފFN-i +'J4N)bkShnR$;5]Č`/C{DX?Eȕ&1ꌊ#bC[FlF#89L2#!b yzu-$x┌BB9j=7jqbX +VDJ2)ω O0'dT:D&#b7Ŗ R|+&)Am3'%$4fjqUU*3J'C'/|zZqe*pbLv>$n2hi[t2<Ŷ!cԧ5&#sSFF"" +WB`P 8 +@4~I 9eIMG`y`;Sgvx}}_'IrP/\pTqp.38lP` +;+Gn< PKcP4b +Jy^x%ä𩴊kGyqbt%@{#}WQ.ePfN&B` ʦv, +<*@w@㲩 +,cP &B*n301,"i2dtO;ȯUWm +mo :Rɀ^g{j::^bhDkE& +j*ܸE֏tkn/A*kTH@E];b[o%(3JXKKjjT|T:gDxAJy9go5ٳ-5FJW41<xj +K)M +miCĒTcLRXp ,oĆ#pנtOǥ#HҊ*C@|uTt#,ogՓ +_N\#r+&BdP,D,%` )CdtU%nqSx +I^"cQ-CYDɵD(Lɕ!%d4SU$qot܊%ec!hUJL*H*ÆJQ_Fͽ'bk]+Hfɕ(+|C9B^0EW/I$"Tv#?s& +pdίNs1ف8GvB*B,>QQ.+ݷkm-F%Nu8LVI?6EcHJY紈h0@ 4C$dyzl,Yui[E07 qR*arO"d/Ⱦ;6E:`u`W* +7ڪ``q*f$6 +*XY( p*;A %9ʼu7ÌB,[(e<wQ&*nؾbE1m"cp'؋ 6uԠ *>l`sUB1~Cu33D RƀH 宏JEN +Oq ,LLڪ<\R{ÆZƔ>,(j1G-^L3Lg`l QzCJ:uJ*\K9_rr(StKY+F†?JVJь@O\ *iDJ[o1!a">e-x`)A &%@ϖD( x Ç yir(Ό؃2b BVBz*5 0 ( +4{i +JB`~%HӐE:#1}.8 + sI+dB.B0&є9 RФY 7Y{r 鉉 QAO h/*Za%BC +8ɲ*v]xȶ PzFJaM( +zzI 6!p* +S +S S&rCl7{zɷ-jnG;|4>+z  9@/c1X"40ɥ HA#C{%X̕23q6ΗUB맹I PQ2贱Y +Ir,؊8:4 1Ƴ ؟vԤKiO +;[hG~͗ā 5p'Eb!*QIi@X!{y`Z(Ws̡@,146Km "8RM:a&S&YA#NZgN`&B&o&n ŀ < 靦vrGO)yˬՋb +(ˍꬹ@$49!8&ʃ@5 AF [x ٷ!KS4x5Xzɘ:"|-7H .p>2 4A=pR+. != +YǍ$Uh@8+xz{H01Th yQP.d-SazHD 59d(3'PqzQLBJAG ~z%1J=92(|  e#I xx%P +D4PU[E*àC^B +h}t"1I!qh(8 %5/Wt +DP  {W9L(‡YIz2`{ؑU@|AKSyqQá:Y*yNjH)Zd9t A*pE YJJQp{\J" خ2&X з賵ˁ4~~5oh{  +EAk^kő +Myб +R |!B#LIkixT]7I$觇и3A&;: +@zʟrJ(Ci!ËYΕ..9pyzX@z2ȆA?lѓK4F/Zƽ9/P2l] YtH!Фu*;E )Uuhױg + HyyÎ\N e[٭,/ h| ȰEU47@kq8[!` _ɸp.Q'+ \X  zQ`(ť‡z{ѝEH:Ƙ{mA|FSj|hplXz&E x@ H9\%sO5M:SN:=K=+.!@.NX M'V@ U iN({s 1vi^:&S,u\1ցl(9KGZ74:1Cꔀ;撊*9 +a!;N!T + ;i!Dg ¶Ti/# +X U`-ᘦ"y0Fa2ȝ!Z9xyyaI8 |Gcb`ƙ= a]BW=(֜ g٬y%Hm-zizz,86(l: +ɉ$JM=DmvHl8zGF zpeZ9 +tC]A@|>_@P  `|_o@@0|OĪh ~Od0 +eKO@,TW?@D?oUT@^W`h+Q|jkhv+H^IWpTkڷR`:%NnyMo5e{C`4X 59zd `]}>[8ѐ` <M9N{*<PZd/CT P9A ++( L6c*kchkE\f}/!g ܸ|#"`* +.!X +qTȪd0 +";RֲnuG1o.K뼫0ĮJ,;'N֩@,E}4ҀЌ6hu"@0ԑMl$B|Eǵ~HUڧC9"*+DXO+hz5┲6ab42.!O,/=$a&5&*`WGyTrB) ֙Qkru@ Q!/ꈵ&Žˊ&n@{4K"'6J:L2򋦋OC2k_KaY D֎7~ 藤 W'@WUZ.}QX|( +Rf͢eu:ֆɻ|0d۪}[繻P6F'i8+2{h1գ W|l +<⪛WJz/r:Ʉ`;1[8LV΅ʮ5&Q`._NQ|,l&x 3<\ C:Ci!m;,b~h4ؽTc-gHퟒZhhB,$ũm[mdKt+`>R)BGidH?9d$*)` 8_[\Py3!я8-cSy$ö@h)xL<Bɐ\" gDKQZu~J*e=XۚL2Z~Y7SO +,|Q]QzZ)olX&ܙX)Vr0V&mriWܞ\ 590x8ܱ)0uHQֵQce]#KbrౡpYffv+gI@I>2<:k)û1PffBqgC-X{uxeRde]i@W"ȓ#>#w"?^u3lѤ?G +M+N) +r2OL;V0x+$'^.OAHN(A(f[UuTeI}<ܑq1$L2G"S^>e9E +QD^)Ē FqN2LHמ~BށH)[ebeq-PǐX^b+/ne,>yK4$B".b:f"t<%l1Ft|yv:sB|EZ: +ĄD0긆r8~d*s`?hY(()BnRb2eGD[)H|vk4")L-\g6gcz,K<ʢxKR",-f>RvG + &qV-<,vUT8(B4&m|[.<"f nk,!8P@,@N~qfLFgZ[̯E3\We8F?t6Є",,ĞvUrj3#hߠ(0Fjj 9$;D$D'hVV.nj[ +jpEBTFYdH~Q"C&΃jSZ?"XD +4b`b>*ړH^rY!B\y \;P!/WNO#g[DM2Z=c3' hKZEbEr`?r&Ғ*T%Qy "R9Ʈ+d!@c e4D&A172q232ZA!3@'33)44@e44n3 n@56b@\A6{7Dd3 +ӂ6K8ry"s5@K"x)nNJ&ZGK.GG + @D^-FqZ޴ :A!E/h@$Y飴8n0 # G<d]a`4A%XWE ,dp/%ci^(X[`O"rjZbEXQ*¼ˉ# +sϏHւp#Z.#2s'2YeRK>"$8pح +#n d@Y\abKģM2+| h-#cŨ1j(.XX¡/ V:?K^ѥ gbab ?#$T-[%C.Dp:R3BP(eBƹ#f@—Tgd:Pȕ|8ZH X2t$ T +!bE HڮnB.(qĂ݋j#etH1C@?KΖ"Sj +/;C^yE^XB$RM`JIE?e$7<%(B?+b+dZub;RG+b*5;栃^Ub,0gq%tw%g1Bd(|kYeUGA@xd?n(D%-BatV@. +@bO| 6Hn㼹 hMgI~Tj(_&BzcP%T2vE$_$%Ў2durU=:ฆ +2+*F#TP$>-$ IK^f0.1l!Ggo',<MƆwJ*q8Ȕ"$( +4P"\ +27w 76y~W(-@5{nH}4MD8*.26X:?5@QwHcc! +k- +4vᣪ4!3?=ؚؖ8.r>A 1hdTꎆBEK:ĎIH󸟮=Y|/?gi[-e*#G`6 +5.LR0.ŋ +c8u+U + +iZe bo9zeJ$f6fL_6%sQhOdI,"uHdWD:6UiDw8XɦoeWH0$XB%>-*l5 +!Ce\56]b^PGa^$ElTh!D [b-eQIcR&HTr|0/kv%Dnd\vh/b+B6-4(K0,X@VI! +o&(2\c8H2 +R#O=.B$W$'"ݣXQl.'fbS!v|Q hy@pjU<% jp)e ת2DDiM L +xפ[.,dn&5ԩ*\Hr/S^%Yc>$UpOO#2LEynF`#F"BMdpmG]6Km5 &QG@tw&@t`jlJ`$b*GGu:`3l5(C d mPp|1b2F(wH%גMVQX(QM>ߦ@|VG=%y8٠(nsrn +u%2(N{'aBl)0 ~?O +~$ph0 +|=/w9dH|was&q/} њ` az`<}Rm8V}_Ҁ0 RXc˝zM `i~T}>/ /G,L ԁ%U(p @Sd"/~ GWȈ(])I}q>c{PH( e]7#X F +^(9J 㣭+L} NR#{JIhƄ}Zʰ(J|z#*f|))~}Nh:{v'V&PrA66R4԰M|3`{JX`,+8}GgG@|͇N¨A6͈2Y6UfY&,"%nڶ[" +D[Ez"ܩ8m]&e֩ +wqxZ"zC|A~W;*Bna6؂Say$&5ei9b;lU P +G_J.2heL#=EǺqrO,P@KiFGn5hɨ$%(C@8&H4DjxOAC|<օ |ԯ"IԖQL&%:H"Wij2;x0@qa?p葹$a (#6+ PNU0P hEI~ֈhĐ!S>m\OA;'eb>r2^C!_3䕺>J2*|Ԑ#,GZ2($˩2jC.(S3z56W=Ǫ?X:Oq>(a2d^26B^_5 +MpJY(+O EG^' NX=GiNg׹b^+QzN,!,XfWS8c +h"|0{xDh@l5*9ASaL%RT!'d;n0EF +R0I5UP1L &Dlj! x&.x#HzWVCI -T`Ebo + 8pgHH +Ӌ@/ś GDv7`r +Gf?gc:dhO"UG|{+JceO,Ta܆?!SE +?i(?0)$Y0cYЍ5CV .E&'z6؃ӫ"P";ʌ !Gϊ )ԓț88<[Ӑ0'`z"B ͢$sz9ZYʟ<0Z_hbqܩ[xH̩CP8Љ%&3Gh㓁x׈!R#ߑ(|䡚), ٰZ܀ ph֭۬ȨW *Ȼ,܍py 72i@4sDtTudvtwǁ9clzDL(sL)4~+P)X XPy105 ;UTh/` +z-{lh 9Mc# fֶɉxIjiHG*N4iaG|q(ؽJ -1G";,~B $k"\&66þe2y (͊pKۑ3rab6n*Qڕ >K;UMFR-{mY bLL)?Kb]" 7BH>&&j)賒|bLpéC/@;NiI2)^Е(x R ͐h4hw:\+ɪۜ觪:bu؞М +ꥢ@"l "-x 6P9ԉsD( &kɊ~ Pz "8YP +`G KJ|RϸR:h/ '۬]pА2$x2:P,7xQ(+:U \: 5 +q+];N {Z:̂͠K5., +L-<[XJЊ:;FLj +i + +$ PY-9Ҧ:7 ++lE]eڌ~D_*Ok̦l/i0| Jx {:ތEGŌՍdyGzա i{HDsn3GcalAO~ +ؓa[EdXw x +OX")E IAUӴ]9Zxhiߟd#! !0I0UJ"qd)x +/G%(LМ5ʛ`qߺ0& A +QG +y Ѫ>L-R Y>[<} Ck%)1ծ)0TAϸӚj9P Ď2<Q90rҸ|)!M\7({QN̋ď_d.,  L&5 ``46P9+ !TYpf0Q0BY5 XZCb z2(ZʐҰ[k|ʥ/Zص7bi7X./* '`Is@yh32R7jJYKKUJoP*ZQ8%:8Û"80 5a; P 8&jb ( : +۪ ?~R5 Z\:c Т#v@G$+G}`ݟ[خB؟@ي8iL ԥރRή =n"X.| x +pB + ZY򛸄6CXJ,D؏S@޾ iYXƜ֝ǔ{ yHa-ٴ4JŘc3QsHY6v$x|t m 8(54(k@"0IEZ_ E[SU!I'eĺd-ޣ<@ԕB(A> c=Ӱ+jPIÝ`ݐԤ +XAa Y< + +9Kڌ% +N5k (f&D0j(lʕ )+N c]\^ P) +V ~(:eȋv BTLY6(ؑ$P |a@9' ++$!=M] LO +q +=r ɩ,7$:˭:SֽY8I)\@Sƕ9?mfPqj8fuK؏EDȿ} +pψu6 +5'LzPPK@y-- ֞i'YPARVb' +`x/NjŸ*v X$UUF:ԊCQ; DKIBc +|CД)X!I*L6"؛#$#tf@ұȴ)8M7x Ս{gWF&b: +![gH}ZF&0b-U +cui59 +h8]ƻ 7:6f`hFȇ x渳4"6 +DFp]P(d:LKGHPT=`vT_Jwe*Y , +)S {_(ddR7 6" +r|.l">o;gbS<*ơV @`@ @-?0~_Oa 0o}bHT`I(E3n̡k@D.-iep0 +$T +{Ȁ `%q z H?h/b$ ,(;ab, +`m3@"/YV (RpQS0Z|Ƶ>FE3Ynmx~_Ī'1M܊k)'jx')3L)9z~ +zؽ4(Zx*Ġ4&/ ȫ䇥J-ȟ*z|A)/@$SV*$r2OR2MbT!P-{h!@ Ks[N*2p< `<|(jd|jóbOIې-r(|h + BdHԇbƸJ $2h$Dʐ"{,8'M(*q(`<"S$JƩ*N#g(l=i,HB$*J gkcZTճR||L/S☮-5=E.A))iM1ċޏjřokep@X o b1fm4=dYR bZ}gV):QZHKiBUq +#O%e% SVǽU.P$(FUbr'l5Y2^1ˋ>ȭUp'\q,4* +*~@-`JO7APe0` H$ǟYH]`U{|ȈGc 6pz"TO2 +OW1hgx?2stK f)dvx${!6pm$=)ާ7HE܍i`N)пhIe0 +6@sžJY'.? +3IB +JRIGq1% +;<{Y!C$ {Nd2W3ph585j`Z:!u#G옄d`5"ܠ(edox $ +YFn!1(h= :*>&$IEJEfuC/I F8(`%Zu*`~HĈiI+*Jc_ 1ǔ +P_eU]"w +9yF jh0i<#}DxH<9gb֥s7yR9-l)($ӳWxy_NX[QkFy9 ߤ!*hDzI-o( +ZU#%.3j?a%$!U.["B$.‹]a0ef0>esTlf)hehm\I+lh^벼C2 "OV PXKD5m""UfBU€b'Zamr̄kTC 4.4¤ݦF6mlp +mlUW+v'Xhv%B2Lt:.BuKx@n M +ފ((&DCbn6dg7tfR脨Q@T*⧘X6oTM܁LTRi4(n6%$ !L6n3@DfMMn׍-:,4,M.r/Ft( +Fāa)(礧Jvltg&AA;(JD)f&M06,`Uvh2Flz%8>D'.&)eJHAv[h(.edf %"6W0Ni(bm:A=O|Nyc-6 V/3"Uo-goXB:Bޝ>*i",<^~$b-B/ +!cFM)Z!d3F8en H($TRHT +%1.#hYT!% K<S=#HVJ4-L=#F*0ys +{Ȥ* ]I"?&!MpWHh8%@J!I%$;bЩ= =F*Ď`? +LbǷM;[U%"5 +C0;,JDRQ-E],)e*{4%+;hxg+05R`!pfVA$/H֢Q'X) %]T\LZ#[ DGR1Lic7M$B*fdOFYlD-+:?Bhy, + 3鍌EjDdLjBx&g]fnU +Tb.n)&WPQa, x8qX+@̶,U)N"4"$`Žr;'N CW&Lj!##|j,k{9'bG*S + + + + + + + + +

Chameleon és un gestor d'arrencada basat en una combinació de components desenvolupats a partir de la implementació de la Fake EFI de David Elliott afegida al mètode boot-132 d'Apple

+


+

Chameleon v2 ha estat ampliat amb noves funcions. Per exemple:

+


+

- Interfície gràfica totalment personalizable per donar-li una mica de color al gestor d'arrencada Darwin.

+

- Carrega de RAMdisk per arrencar directament el DVD retail, sense programes addicionals.

+

- Hibernació. Gaudeix de la represa de Mac OS X amb una imatge de mostra.

+

- Override de SMBIOS per modificar els valors SMBIOS per defecte.

+

- Override de DSDT per utilitzar un DSDT editat, que pot resoldre molts problemes.

+

- Injecció de propietats de dispositiu mitjançant EFI Strings.

+

- Sistema híbrid d'arrencada boot0/boot1h per a discos amb taula de particions MBR i GPT.

+

- Detecció automàtica de freqüència FSB fins i tot per les CPUs AMD mes recents.

+

- Suport per RAID software d'Apple.

+

- Enabler per a gràfiques Nvidia i ATI.

+

- Suport de càrrega per mòduls

+

- Detecció automàtic de memòria adaptat de memtest86: http://www.memtest.org

+

- Generació automàtica de P-States i C-States per a la gestió d'energia nativa.

+

- Generació d'informe d'accions en txt.

+


+

El codi està alliberat sota la versió 2 de la Llicència Pública GNU.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Més informació i Preguntes i respostes habituals: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/ca.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/ca.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/ca.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,350 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Aquest programari ha de ser installat en el volum d'arrencada."; +"ERROR_INSTALL" = "Aquest volum no compleix els requisits per a la installaci."; + +"Newer_Package_Installed_message" = "Una versi ms recent de Chameleon es troba ja installada"; +"Intel_Mac_message" = "Aquest programari no pot ser installat en aquest ordinador."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Tipus d'installaci"; +"InstallType_description" = "Tria realitzar una nova installaci o actualitzar l'existent."; + +"New_title" = "Nova installaci"; +"New_description" = "Fer Backup de la carpeta /Extra, si es troba en la partici de destinaci. Es crear una nova si es marca qualsevol altra opci en l'installador, a ms del bootloader."; + +"Upgrade_title" = "Actualitzaci"; +"Upgrade_description" = "Combina la carpeta /Extra, si existeix prviament alguna, amb qualsevol de les opcions triades des de l'installador, si es marca alguna a ms del Bootloader. Es far un Backup de la carpeta /Extra original."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon requereix tres arxius bsics. (essencialment) +boot0 (en el MBR de la unitat) encarregat de carregar boot1. +boot1 (En el boot-sector de la partici) per trobar el boot2. +boot2 (En el directori arrel de la partici) Per carregar el Kernel, etc"; + +"Standard_title" = "Standard"; +"Standard_description" = "Installar els arxius de Chameleon en larrel de la partici seleccionada utilitzant boot0 o boot0md depenent del teu sistema sense destruir la installaci de Windows, si existeix."; + +"EFI_title" = "EFI"; +"EFI_description" = "Installar els arxius de Chameleons a la partici de sistema EFI (normalment oculta) utilitzant boot0 o boot0md en funci del teu sistema, i sense destruir la partici de windows, si existeix."; + +"noboot_title" = "No installar el Bootloader"; +"noboot_description" = "til si tan sols vols installar els extres."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Mduls."; +"Module_description" = "Els mduls de sistema incorporats a Chameleon permeten a l'usuari o al programador ampliar les funcions principals de chameleon sense reemplaar l'arxiu d'arrencada."; + + +"klibc_title" = "klibc"; +"klibc_description" = "Aquest mdul cont una biblioteca C standard per linkar els mduls en cas que les que es proveeixen amb chameleon siguin insuficients. +Actualment tan sols la biblioteca uClibc++ fa s d'aquesta funci.. +Font: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resoluci"; +"AutoReso_description" = "Aquest mdul llegeix la informaci edid del monitor principal connectat a l'ordinador. +Actualment aquest mdul no ha estat integrat en la versi trunk ja que amb prou feines s'utilitza. +A ms, el mdul aplica patches per els modes vesa disponibles en les grfiques de intel anteriors als models HD per ajustar la resoluci adequada durant l'arrencada."; + + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Aquest mdul proveeix una biblioteca c++ runtime minimalista per ser utilitzada amb altres mduls. No proveeix funcionalitat per si mateixa , sin que s'utilitza per fer possible que altres mduls faci us del llenguatge c++. +Font: http://cxx.uclibc.org/ +Dependncies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Aquest mdul permet definir el mapa de teclat, en funci de l'idioma."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilitats"; +"Utility_description" = "Arxius opcionals per facilitar la installaci"; + +"PrefPanel_title" = "Panell de preferncies"; +"PrefPanel_description" = "Installa el panell de preferncies de Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copia un arxiu smbios.plist d'exemple en /Extra/Configuration."; + +"Documentation_title" = "Documentaci"; +"Documentation_description" = "Documentaci per a la installaci manual de Chameleon, i s general"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "opcions d'arrencada"; +"Options_description" = "Crea l'arxiu /Extra/org.chameleon.Boot.plist seleccionant qualsevol opci d'arrencada i kernel flags."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Ocultar els textos de Chameleon en la interfcie grfica. s el text que apareix en la cantonada superior esquerra mostrant la versi, etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Desactiva la interfcie grfica de chameleon."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Usar el logo habitual sobre fons gris d'Apple 'dark grey' com a imatge d'arrencada en lloc de l'arxiu boot.png del tema"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Aquesta opci porta directament a la selecci d'unitats d'arrencada, en lloc de mostrar la barra decreixent de temps d'espera."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Activa el mode quiet boot (Arrencada sense mostrar la interfcie o el cursor de chameleon)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Mostrar informaci sobre la resoluci i les particions en la part esquerra de la imatge del bootloader. Aquesta informaci pot ser til, per pot ser que no quedi b amb tots els themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pausar el procs d'arrencada desprs de la crrega de Chameleon, i esperar fins que es pressioni una tecla abans de carregar el kernel. til quan es combina amb el mode verbose, per resoldre problemes."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Carrega el kernel a 32bit en lloc del kernel 64bit per defecte."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Habilita l'opci per corregir qualsevol problema de EHCI ownership (relatius a USB 2.0) a causa de BIOS dolentes ."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Habilita l'opci perqu els dispositius Ethernet siguin reconeguts correctament. Necessari per a diverses aplicacions, com ara lapp store."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Habilita el HPET en chipsets Intel, per BIOS que no incloguin aquesta opci."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Aquesta opci permet ignorar imatges de reps defectuoses."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Desactiva l'opci "restart fix", activada per defecte."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Activa l'opci per resetejar els controladors UHCI (USB) abans de l'arrencada d'OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Deshabilita l'opci predeterminada de reconeixement de RAM."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Noms per Lion. Activa la crrega del pre-linked kernel. Ignorar /E/E i /S/L/E. Utilitza aquesta opci tan sols en cas de que contingui tot el que necessites."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Intentar carregar la imatge de reps de l'ltima hibernaci."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Nou mtode de generaci de C-States _CST utilitzant els registres SystemIO en lloc de FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Descartar les taules SSDT incloses en la placa mare"; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Activar el powerstate especfic del processador, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Activar el powerstate especfic del processador, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Activar el powerstate especfic del processador, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Activar la generaci automtica d'estats de reps del processador (C-states)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Activar la generaci automtica d'estats de crrega del processador (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Fixar resoluci en 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Fixar resoluci en 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Fixar resoluci en 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Fixar resoluci en 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Fixar resoluci en 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Fixar resoluci en 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Fixar resoluci en 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Fixar resoluci en 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Fixar resoluci en 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Fixar resoluci en 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Fixar resoluci en 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Activa l'opci per autodetectar targetes grfiques NVIDIA i injectar linformaci correcta."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Activa les opcions UseAtiROM."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Activa les opcions UseNvidiaROM."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Activa les opcions VBIOS."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Activa l'arrencada en manera verbose, que permet llegir els missatges que tant chameleon com el kernel d'OS X mostren durant el procs d'arrencada. Funci essencial per resoldre problemes."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Una opci usada per arrencar en la manera CLI (lnia de comandos) BSD/Unix d'OS X."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Aquesta no s una opci que es faci servir tots els dies, per pot ser til perqu OS X carregui tots els arxius des de les seves carpetes de sistema, en lloc de recolzar-se en els seus cachs."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Per evitar que el sistema es quedi parat mostrant 'PCI configuration begin' en alguns sistemes. 0x2000 s el flag kIOPCIConfiguratorPFM64, com es pot veure en el codi font de IOPCIFamily."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Per evitar que el sistema es quedi parat mostrant 'PCI configuration begin' en alguns sistemes. 0x3000 s el flag kIOPCIConfiguratorPFM64, com es pot veure en el codi font de IOPCIFamily."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Noms per Lion. Desactiva la caracterstica 'low power wake' que en ocasions fa que el monitor es quedi en negre desprs de despertar del reps."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Fer servir el mapa de teclat per a un teclat Mac Alemany"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Fer servir el mapa de teclat per a un teclat Mac espanyol"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Fer servir el mapa de teclat per a un teclat Mac francs"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Fer servir el mapa de teclat per a un teclat Mac itali"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Fer servir el mapa de teclat per a un teclat Mac suec"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Fer servir el mapa de teclat per a un teclat Mac portugus"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Fer servir el mapa de teclat per a un teclat PC alemany"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Fer servir el mapa de teclat per a un teclat PC espanyol"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Fer servir el mapa de teclat per a un teclat PC francs"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Fer servir el mapa de teclat per a un teclat PC itali"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Fer servir el mapa de teclat per a un teclat PC suec"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Fer servir el mapa de teclat per a un teclat PC portugus"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Una versi reduda i simplificada del nou theme per defecte, utilitzat com a theme embegut."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Theme original predeterminat, utilitzat en la versi v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Theme original predeterminat, utilitzat en la versi v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Un theme deliciosament simple creat per NoSmokingBandit a lAbril de 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Opcions de Control"; +"Control_description" = "Ajustos de control sobre el funcionament de Chameleon."; + +// General +"General_title" = "General Options"; +"General_description" = "Tria a partir d'una selecci d'opcions. +"; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Tria els kernel flags per a l'arrencada."; + +// PowerManagement +"PowerManagement_title" = "Gesti d'energia"; +"PowerManagement_description" = "Opcions relatives a la gesti d'energia i el speedstep."; + +// Resolution +"Resolution_title" = "Resoluci"; +"Resolution_description" = "Estableix la resoluci del teu monitor"; + +// Video +"Video_title" = "Video"; +"Video_description" = "Una selecci d'opcions relatives al video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Selecciona un mapa de teclat, en funci de l'idioma."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "Una selecci de Themes de mostra +Pots trobar ms themes en: http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Cap"; +"ChooseNone-Resolution_description" = "No triar cap resoluci."; + +"ChooseNone-keylayout_title" = "Cap"; +"ChooseNone-keylayout_description" = "No triar mapa de teclat."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/ca.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ca.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ca.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 No instal\'b7lar en un ordinador Apple Macintosh\ + +\fs22 \cf0 \ +\ +Programadors :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Agra\'efments :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Instal\'b7lador :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, Tradu\'eft per : Ed_Saxman\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/ca.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ca.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ca.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Els Scripts s'han completat i un arxiu\ + amb el nom \cf2 @LOG_FILENAME@\cf3 ha estat\ +escrit en l'arrel de la partici\'f3 seleccionada.\ +\ +\cf0 Si us plan, \cf4 llegeix-ho\cf0 per saber si la instalaci\'f3 ha\ +tingut \'e8xit i mantenir un registre de les accions dutes a terme.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ca.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/ca.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ca.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/pt-BR.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/pt-BR.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/pt-BR.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

O Chameleon é um boot loader que combina vários componentes.
Ele é baseado na implementação de fake EFI feita por David Elliott, adicionada ao projeto boot-132 da Apple.
O Chameleon é extendido com as seguintes características chave:

+


+

Novos recursos no Chameleon 2.0

+


+

- Interface gráfica (GUI) totalmente personalizável para trazer algumas cores ao Bootloader Darwin.

+

- Inicializa DVDs retail lendo uma imagem ramdisk diretamente, sem ajuda de nenhum programa adicional.

+

- Hibernação. Aproveite continuar o seu Mac OS X com uma amostra de imagem da tela.

+

- Substituição de SMBIOS para modificar os valores de fábrica.

+

- Substituição de DSDT para usar uma tabela modificada que pode resolver diversos problemas.

+

- Injeção de propriedades de dispositivo através do string device-properties.

+

- boot0 / boot1h híbridos para discos particionados em MBR e GPT.

+

- Detecção automática de FSB mesmo para processadores AMD recentes.

+

- Suporte a Software RAID da Apple.

+

- Ativação Placas Gráficas Nvidia & ATI/AMD.

+

- Suporte de Modulos

+

- Deteção Memoria adaptada de memtest86: http://www.memtest.org

+

- P-State automático & Geração C-State para gestão de energia nativa.

+

- Protocolo Mensagens.

+


+

Este código é distribuido sobre os termos da versão 2 da Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Para informações detalhadas visite: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/pt-BR.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/pt-BR.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/pt-BR.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,349 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Este software deve ser instalado no volume de inicializao."; +"ERROR_INSTALL" = "Este volume no preenche os requisitos para esta atualizao."; + +"Newer_Package_Installed_message" = "Uma verso mais recente do Chameleon j est instalada."; +"Intel_Mac_message" = "Este software no pode ser instalado neste computador."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Mtodo Instalao"; +"InstallType_description" = "Selecione para executar nova instalao ou atualizar existente."; + +"New_title" = "Nova Instalao"; +"New_description" = "Cpia de pasta /Extra, se encontrada na partio selecionada. Ser criada uma nova se selecionadas opes no instalador alm de Bootloader."; + +"Upgrade_title" = "Atualizao"; +"Upgrade_description" = "Junta na pasta /Extra, se encontrada na partio selecionada, com as opes selecionadas no instalador alm de Bootloader."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "O Chameleon requer trs arquivos essenciais (em termos simples): +boot0 (no MBR do drive) responsvel por carregar o boot1. +boot1 (no setor de boot da partio) para encontrar o boot2. +boot2 (no diretrio raiz da partio) para carregar o kernel etc."; + +"Standard_title" = "Padro"; +"Standard_description" = "Instalar os arquivos do Chameleon na raiz da partio selecionada usando boot0 ou boot0md dependendo do seu sistema, sem danificar nenhuma instalao do Windows, se existir."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instalar os arquivos do Chameleon na partio EFI (normalmente oculta) usando boot0 ou boot0md dependendo do seu sistema, sem danificar nenhuma instalao do Windows, se existir."; + +"noboot_title" = "No instalar o boot loader"; +"noboot_description" = "til se voc quer instalar apenas os extras."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Mdulos do Chameleon"; +"Module_description" = "O sistema de mdulos incorporados ao Chameleon permite que um utilizador ou desenvolvedor estenda a funcionalidade bsica sem precisar substituir o arquivo boot principal."; + +"klibc_title" = "klibc"; +"klibc_description" = "Este mdulo fornece uma biblioteca C padro para link, caso a do Chameleon seja insuficiente. + usado actualmente apenas pela biblioteca uClibc++ +Fonte: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resoluo"; +"AutoReso_description" = "Este mdulo l a informao EDID do monitor conectado ao display principal. +Atualmente no est integrado ao trunk e tem uso mnimo no estado em que se encontra. +Adicionalmente o mdulo ajusta os modos VESA disponveis nas placas de vdeo pr Intel HD para proporcionar resoluo adequada no boot."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Este mdulo fornece uma biblioteca runtime C++ minimalista para uso em outros mdulos. +Ele no fornece funcionalidade por si s, mas usado para permitir o uso da linguagem C++ em outros mdulos. +Observe que rtti e exceptions foram ambos desativados. +Fonte: http://cxx.uclibc.org/ +Dependncias: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Este mdulo permite definir o mapeamento das teclas do teclado."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilitrios"; +"Utility_description" = "Arquivos opcionais para ajudar na configurao"; + +"PrefPanel_title" = "Painel de preferncias"; +"PrefPanel_description" = "Instala o painel de preferncias do Chameleon."; + +"SMBIOSDefault_title" = "SMBIOS.plist"; +"SMBIOSDefault_description" = "Copia um exemplo de smbios.plist para /Extra/Configuration."; + +"Documentation_title" = "Documentao"; +"Documentation_description" = "Documentao para instalao manual e uso do Chameleon."; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Opes de boot"; +"Options_description" = "Cria um arquivo /Extra/org.chameleon.Boot.plist e seleciona suas preferncias de configurao do Chameleon."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Oculta o banner do Chameleon na interface grfica."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Desabilita a interface grfica, ativada por padro."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Usa o logotipo legado da Apple (cinza e branco) na tela de boot, ao invs do boot.png do tema."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Exibe a tela de seleo de partio sem mostrar a contagem regressiva."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Ativa o boot silencioso (sem mensagens ou opes)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Ativa a exibio de detalhes sobre parties e resoluo da tela."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pausa o processo de boot aps os ajustes do Chameleon e aguarda que uma tecla seja pressionada antes de iniciar o kernel. til para soluo de problemas quando usado em conjunto com o boot verbose."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Inicia o sistema no modo 32 bit, ao invs do modo padro 64 bit."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Ativa a opo que corrige falhas de EHCI ownership devido a problemas no BIOS."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Ativa a opo que inclui 'built-in' (integrado) nos dispositivos ethernet."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Ativa o HPET em chipsets Intel, para BIOS que no incluem a opo."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Essa opo permite contornar imagens de repouso com problema."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Desabilita a correo do problema ao reiniciar, ativada por padro."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Ativa a opo que reinicia os controladores UHCI antes de iniciar o OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Desativa a identificao automtica de memria RAM."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Yes vai carregar o kernel pre-linked e ignorar /Extra/Extensions e o Extensions.mkext de /System/Library/Extensions. O padro No, mas se voc usa o Lion numa partio RAID, Yes."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Tenta carregar a imagem de repouso gravada na ltima hibernao."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Novo - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Novo mtodo de gerao de C-States usando registros do SystemIO ao invs de FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Descarta as tabelas SSDT da placa me."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Ativa power state especfico de processador, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Ativa power state especfico de processador, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Ativa power state especfico de processador, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Ativa a gerao automtica de estados de idle sleep do processador (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Ativa a gerao automtica de estados de power performance do processador (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Seleciona Modo Grfico 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Seleciona Modo Grfico 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Seleciona Modo Grfico 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Seleciona Modo Grfico 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Seleciona Modo Grfico 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Seleciona Modo Grfico 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Seleciona Modo Grfico 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Seleciona Modo Grfico 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Seleciona Modo Grfico 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Seleciona Modo Grfico 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Seleciona Modo Grfico 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Ativa a opo que auto detecta placas de vdeo e injeta as informaes corretas."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Ativa a opo UseAtiROM."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Ativa a opo UseNvidiaROM."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Ativa a opo VBIOS."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Modo Verbose"; +"Verbose_description" = "Ativa Modo Verbose, permite visualizar mensagens do Chameleon e do Kernel do OS X durante o boot. Essencial para detetar problemas."; + +"Singleusermode_title" = "Modo Single User"; +"Singleusermode_description" = "Usado no boot para alcanar a linha de comandos do OS X's BSD/Unix para resoluo de problemas."; + +"Ignorecaches_title" = "Ignorar Caches"; +"Ignorecaches_description" = "Usado para que o OS X carregue os ficheiros das suas pastas de sistema, em vez de usar as caches prviamente construidas."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Adiciona o parmetro npci=0x2000 em Kernel Flags."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Adiciona o parmetro npci=0x3000 em Kernel Flags."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "S Lion. Desabilita 'low power wake' caracteristica que por vezes apresenta o cran negro aps o computador acordar."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "Teclado Mac Alemo"; +"mac-de_description" = "Usa o layout para teclado Mac Alemo."; + +"mac-es_title" = "Teclado Mac Espanhol"; +"mac-es_description" = "Usa o layout para teclado Mac Espanhol."; + +"mac-fr_title" = "Teclado Mac Francs"; +"mac-fr_description" = "Usa o layout para teclado Mac Francs."; + +"mac-it_title" = "Teclado Mac Italiano"; +"mac-it_description" = "Usa o layout para teclado Mac Italiano."; + +"mac-se_title" = "Teclado Mac Sueco"; +"mac-se_description" = "Usa o layout para teclado Mac Sueco."; + +"mac-pt_title" = "Teclado Mac Portugus"; +"mac-pt_description" = "Usa o layout para teclado Mac Portugus."; + +"pc-de_title" = "Teclado PC Alemo"; +"pc-de_description" = "Usa o layout para teclado PC Alemo."; + +"pc-es_title" = "Teclado PC Espanhol"; +"pc-es_description" = "Usa o layout para teclado PC Espanhol."; + +"pc-fr_title" = "Teclado PC Francs"; +"pc-fr_description" = "Usa o layout para teclado PC Francs."; + +"pc-it_title" = "Teclado PC Italiano"; +"pc-it_description" = "Usa o layout para teclado PC Italiano."; + +"pc-se_title" = "Teclado PC Sueco"; +"pc-se_description" = "Usa o layout para teclado PC Sueco."; + +"pc-pt_title" = "Teclado PC Portugus"; +"pc-pt_description" = "Usa o layout para teclado PC Portugus"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Uma verso menor do novo tema padro, usada nas verses do Chameleon com tema embutido."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Tema padro anterior do Chameleon."; + +"Default_title" = "Standard"; +"Default_description" = "Novo tema padro do Chameleon."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "O tema Bullet por NoSmokingBandit"; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Opes Controle"; +"Control_description" = "Preferncias de controle do Chameleon."; + +// General +"General_title" = "Opes Generalistas"; +"General_description" = "Escolha de seleo de opes bsicas."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Escolha de seleo de kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Gesto Energia"; +"PowerManagement_description" = "Seleo de opes relativas a gesto de energia e speedstep."; + +// Resolution +"Resolution_title" = "Resoluo"; +"Resolution_description" = "Configura a resoluo do cran"; + +// Video +"Video_title" = "Video"; +"Video_description" = "Preferncias de Video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Temas"; +"Themes_description" = "Alguns exemplos de tema. +Mais temas podem ser encontrados em http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "Nenhum"; +"ChooseNone-Resolution_description" = "No escolhe uma resoluo."; + +"ChooseNone-keylayout_title" = "Nenhum"; +"ChooseNone-keylayout_description" = "No escolhe uma keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/pt-BR.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/pt-BR.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pt-BR.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 N\'e3o instale num computador Apple Macintosh\ + +\fs22 \cf0 \ +\ +Desenvolvedores :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Agradecimentos :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Cr\'e9ditos pelos pacotes :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: oldnapalm\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/pt-BR.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/pt-BR.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pt-BR.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Os scripts est\'e3o finalizados e foi gerado um\ + ficheiro \cf2 @LOG_FILENAME@\cf3 que se\ +encontra na raiz da parti\'e7\'e3o selecionada.\ +\ +\cf0 Por Favor \cf4 leia-o\cf0 para verificar se a instala\'e7\'e3o foi realizada\ +com sucesso e guarde como relat\'f3rio do que foi realizado.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/pt-BR.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/pt-BR.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/pt-BR.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/sr.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/sr.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/sr.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon je kombinacija različitih komponenti bootloadera. On je zasnovan na David Elliottovoj lažnoj EFI implementaciji dodanoj u Apple boot-132 projekat.

+


+

Nove funkcije u Chameleon 2.0

+


+

- Potpuno prilagođen grafički korisinički interfejs donosi vizuelna poboljšanja u Darwin Bootloaderu.

+

- Start sa retail DVD-om direktno učitava ramdisk slike bez pomoći dodatnih programa.

+

- Hibernacija. Uživajte u nastavaku rada vašeg Mac OS X-a sa pregledom slike.

+

- SMBIOS zamena tvorničkih za modifikovanu SMBIOS vrednost.

+

- DSDT zamena za korišćenje modifikovanog, ispravljenog DSDT-a koji može rešiti nekoliko problema.

+

- Implementacija svojstva uređaja putem svojstva niza.

+

- hibridni boot0 / boot1h za MBR i GPT particijske diskove.

+

- automatsko FSB kodno otkrivanje čak i za poslednje AMD procesore. 

+

- Apple softver RAID podrška.

+

- Nvidia & ATI/AMD Grafički Aktivator.

+

- Modul podrška

+

- Detekcija memorije prilagođena iz memtest86: http://www.memtest.org

+

- Automatsko generisanje P-State i C-State za izvorno upravljanje energijom.

+

- Prijava porukama.

+


+

Kod je objavljen pod verzijom 2 GNU javna licenca.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Za detaljne informacije posetite: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/sr.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/sr.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/sr.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,400 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Ovaj softver mora biti instaliran na volumen sa kojeg se pokree."; +"ERROR_INSTALL" = "Ovaj volumen ne ispunjava uvjete za nadogradnju."; + +"Newer_Package_Installed_message" = "Nova verzija Chameleona ve je instalirana"; +"Intel_Mac_message" = "Ovaj softver ne mo~e biti instaliran na ovom ra +unaru"; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Vrsta instalacije"; +"InstallType_description" = "Izaberite za instaliranje nove instalacije ili za nadogradnju postojee instalacije."; + +"New_title" = "Nova instalacija"; +"New_description" = "Rezerva za postojei /Extra folder, ako je pronaen na ciljanoj particiji. Novi e biti stvoren ako izaberete bilo koju opciju u instaleru, osim Bootloadera."; + +"Upgrade_title" = "Nadogradnja"; +"Upgrade_description" = "Spaja postojei /Extra folder, ako je pronaen na ciljanoj particiji, sa svim opcijama izabranim iz instalera, osim Bootloadera."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Chameleon zahteva tri bitna fajla. (pojednostavljeno re +eno) +boot0 (MBR na disk pogonu) odgovoran za u +itavanje boot1. +boot1 (Na particiju za boot-sektor) za pronala~enje boot2. +boot2 (Na particiju za root direktorij) za u +itavanje Kernela itd."; + +"Standard_title" = "Standard"; +"Standard_description" = "instalira Chameleon fajlove u po +etnu fasciklu diska (root) izabrane particije koristei bilo boot0 ili boot0md u zavisnosti od vaaeg sistema ne uniatavajui bilo kakvu Winodws instalaciju ukoliko je imate instaliranu."; + +"EFI_title" = "EFI"; +"EFI_description" = "Instalira Chameleon fajlove za normalno skrivenu particiju EFI koristei bilo boot0 ili boot0md u zavisnosti od vaaeg sistema ne uniatavajui bilo kakvu Winodws instalaciju ukoliko je imate instaliranu."; + +"noboot_title" = "Ne instaliraj Bootloader"; +"noboot_description" = "Korisno ukoliko ~elite instalirati samo extra."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Chameleon Moduli"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "Ovaj modul omoguava standard c biblioteku za module za povezivanje ako chameleon biblioteka nije dovoljna. +Ovo se trenutno koristi samo sa uClibc++ bibliotekom. +Izvor: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Rezolucija"; +"AutoReso_description" = "Ovaj modul +ita edid informacije sa monitora priklju +enog na glavni ekran. +Modul trenutno nije integrisan u trunk i nije od velike primene kao ato stoji. +Osim toga, modul e zakrpati VESA modove koji su prisutni u pred Intelovim HD grafi +kim karticama kako bi osigurale odgovarajuu rezoluciju ekrana prilikom podizanja."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Ovaj modul omoguava minimalisti +ku c++ runtime biblioteku za koriaenje u drugim modulima. +To ne pru~a funkcionalnost sama po sebi, umesto toga, slu~i kako bi se omoguilo koriaenje c++ jezika u ostalim modulima. +Imajte na umu da su obe RTTI iznimke onemoguene. +Izvor: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Raspored tastera"; +"Keylayout_description" = "Ovaj modul omoguava korisniku da definiae mapiranje tastera na tastaturi."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Korisno"; +"Utility_description" = "Menij fajlovi za pomo pri instalaciji"; + +"PrefPanel_title" = "Preferens Plo +a"; +"PrefPanel_description" = "Instalira Preferens plo +u za Chameleon."; + +"SMBIOSDefault_title" = "SMBIOS.plist"; +"SMBIOSDefault_description" = "Kopira primer smbios.plist u /Extra/Configuration."; + +"Documentation_title" = "Documentacija"; +"Documentation_description" = "Dokumentacija za Chameleon uputu, instaliranje i koriatenje"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Boot Opcije"; +"Options_description" = "Kreira /Extra/org.chameleon.Boot.plist i omogu +uje izbor ~eljene opcije za kontrolu Chameleon postavki."; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Skriva Cameleon boot banner u grafi +kom korisni +kom inferfejsu (GUI)."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "Onemoguava uklju +eni zadati korisni +ki grafi +ki interfejs."; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Koristite legacy (sivi i beli) apple logo prilikom podizanja radije nego boot.png sliku iz teme"; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "Prikaz ekrana za izbor particije bez prikazivanja timeout ekrana."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Omoguava mod mirnog pokretanja (bez poruka ili redova)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Onemoguava prikaz detalja o particiji i rezoluciji."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauzira boot proces nakon ato je Cameleon zavraio postavljanje, onda +eka na pritisak tastera pre nego se pokrene mach kernel. Korisno u kombinaciji sa verbose podizanjem za reaavanje problema."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Pokree jezgru (kernel) u 32bitnom modu radije nego u zadatom 64bitnom modu."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Omoguava opciju za popravku bilo kojih EHCI vlasni +kih prava zbog loaeg biosa."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Omoguava mogunost dodavanja "ugraeno" na vaae Ethernet ureaje."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = "Omoguuje HPET na Intel +ipsetima, za biose koje ne uklju +uju ovu opciju."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = "Ova opcija Omoguuje vam da zaobiete loae uspavane slike (sleep images)."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Isklju +uje automatsko omoguavanje restart fix opcije"; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Omoguava opciju za reset UHCI kontrolera pre po +etka podizanja. "; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Isklju +uje omogueno automatsko RAM prepoznavanje."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Samo za Lion. Omoguuje u +itavanje prethodno povezanog kernela. Ovo e ignorirati /E/E i /S/L/E. Ovo koristiti samo ako znate da sadr~i sve ato vam je potrebno."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Pokuaava da u +ita uspavanu sliku snimljenu iz prethodne hibernacije"; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "New - Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "Nova C-state _CST generacija metodom SystemIO registracije umjesto FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Odbacuje SSDT tabele ugraene na mati +noj plo +i."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Uklju +uje posebno Processorsko stanje napajanja, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Uklju +uje automatsko generisanje procesora u stanju mirovanja (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Omoguava automatsko generirisanje snage procesora stanja performansi (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Podesite Grafi +ku Rezoluciju na 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Podesite Grafi +ku Rezoluciju na 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Podesite Grafi +ku Rezoluciju na 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Podesite Grafi +ku Rezoluciju na 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Podesite Grafi +ku Rezoluciju na 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Podesite Grafi +ku Rezoluciju na 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Podesite Grafi +ku Rezoluciju na 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Podesite Grafi +ku Rezoluciju na 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Omoguava opciju auto prepoznavanja NVIDIA baziranih grafi +kih video kartica i upisuje pravilne informacije o istoj."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Uklju +uje UseAtiROM opciju."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Uklju +uje UseNvidiaROM opciju."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Uklju +uje VBIOS opciju"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Uklju +uje verbose prijavu i omoguava vam da vidite poruke iz oba Chameleon i kernel OS X prilikom pokretanja. Osnova za reaavanje problema."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Opcija za rjeaavanje problema koja se koristi za podizanje OS X BSD / Unix komandnog reda."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Opcija koja nije potrebna za svakodnevno podizanje, ali mo~e biti korisna ukoliko ~elite da OS X u +ita sve fajlove iz sistemskog direktorija, radije nego se oslanjajui na pre-izgraenu predmemoriju."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Postavlja zastave npci = 0x2000 za Kernel Zastave"; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Postavlja zastave npci = 0x3000 za Kernel Zastave"; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Samo Lion. Isklju +uje 'low power wake' opciju koja ponekad ostavi crni ekran posle buenja iz spavanja."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Koriatenje tastature za Njema +ku Mac tastaturu"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Koriatenje tastature za `panjolsku Mac tastaturu"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Koriatenje tastature za Francusku Mac tastaturu"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Koriatenje tastature za Italijansku Mac tastaturu"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Koriatenje tastature za Svedsku Mac tastaturu"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Koriatenje tastature za Francusku PC tastaturu"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Manja, jednostavnija verzija nove podrazumevane teme koja se koristi prilikom izgradnje Chameleon-a koji zahteva ugraenu temu. "; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleonova prethodno zadata tema."; + +"Default_title" = "Standard"; +"Default_description" = "Chameleonova trenutno zadata tema."; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Predivna jednostavna tema od NoSmokingBandit iz Aprila 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Opcije za kontrolu rada Chameleona."; + +// General +"General_title" = "General Options"; +"General_description" = "Izaberite od selekcije iz baze opcija."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Izaberite od selekcije iz kernel zastava."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "Izbor opcija koje se bave upravljanjem potroanjom energije i SpeedStep-om."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "Izbor opcija koje se bave videom."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "Skup predlo~enih tema +Viae tema mo~ete pronai na http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Izbor bez rezolucije."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Izbor bez keylayouta."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/sr.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/sr.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/sr.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Instalacija nije prilago\uc0\u273 ena za Apple Macintosh ra\u269 unare\ + +\fs22 \cf0 \ +\ +Programeri :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Hvala :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Paket :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: mistudio\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/sr.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/sr.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/sr.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Skripte su zavr\'9aene i mapa pod\ + nazivom \cf2 @LOG_FILENAME@\cf3 je snimljena\ + u koren particije diska koje ste odabrali.\ +\ +\cf0 Molimo \cf4 pro\uc0\u269 itajte\cf0 kako biste saznali da li je instalacija bila\ + uspe\'9ana i \uc0\u269 uvajte log radi evidencije o tome \'9ata je u\u269 injeno\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/sr.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/sr.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/sr.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/ru.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/ru.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/ru.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon представляет собой комбинацию различных компонентов и основывается на эмуляции EFI реализованной Дэвидом Элиотом (David Elliott) интегрированной в оригинальный проект boot-132 от Apple.
Chameleon включает в себя следующие улучшения:

+


+

Новые возможности Chameleon 2.0

+


+

- Полностью изменяемый интерфейс пользователя для улучшения внешнего вида загрузчика Darwin.

+

- Загрузка оригинального установочного диска Mac OS X без помощи посторонних программ.

+

- Поддержка гибернации.

+

- Переопределение фабричных параметров SMBIOS.

+

- Возможность использования модифицированного DSDT для решения некоторых специфических проблем.

+

- Инжекция Device Property Strings.

+

- Гибридный boot0 / boot1h для разметок MBR и GPT.

+

- Автоматическое определение FSB даже для процессоров AMD.

+

- Поддержка программных RAID массивов Apple.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Более подробная информация по загрузчику: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/ru.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/ru.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/ru.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,348 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "This software must be installed on the startup volume."; +"ERROR_INSTALL" = "This volume does not meet the requirements for this update."; + +"Newer_Package_Installed_message" = "A newer version of Chameleon is already installed"; +"Intel_Mac_message" = "This software cannot be installed on this computer."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Install Type"; +"InstallType_description" = "Choose to perform a new installation or upgrade an existing installation."; + +"New_title" = "New Installation"; +"New_description" = "Backup an existing /Extra folder, if found on the target partition. A new one will be created if any options are chosen from the installer, other than the Bootloader."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Merge an existing /Extra folder, if found on the target, with any options chosen from the installer, other than the Bootloader. The original /Extra folder will be backed up."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon Bootloader"; +"Chameleon_description" = "Chameleon requires three essential files. (in simple terms) +boot0 (On the drive's MBR) responsible for loading boot1. +boot1 (On the partition's boot-sector) to finding boot2. +boot2 (On the partition's root directory) for loading kernel etc."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "1KG=0O CAB0=>2:0 Chameleon"; + +"EFI_title" = "EFI"; +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + +"noboot_title" = "Don't install the Bootloader"; +"noboot_description" = "Useful if you only want to install the extra's."; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Modules"; +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file."; + +"klibc_title" = "klibc"; +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. +This is currently only used by the uClibc++ library. +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Resolution"; +"AutoReso_description" = "This module reads the edid information from the monitor attached to the main display. +The module is currently not integrated into trunk and has minimal uses as it stands. +Additionally, the module will patch the vesa modes available in pre intel hd graphics cards to provide proper resolution while booting."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. +*Please note that rtti and exceptions has both been disabled. +Source: http://cxx.uclibc.org/ +Dependencies: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "This module permits the user to define the keyboard key mappings. This module and associated keymaps are installed by default."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Utilities"; +"Utility_description" = "Optional files to help setup"; + +"PrefPanel_title" = "Preference Panel"; +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + +"SMBIOS_title" = "SMBIOS.plist"; +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + +"Documentation_title" = "Documentation"; +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "0AB@>:8"; +"Options_description" = "!B0=40@B=K5 =0AB@>9:8"; + +"BootBanner_title" = "BootBanner=No"; +"BootBanner_description" = "Hides Chameleon's boot banner in GUI. This is the text that is drawn at the top left corner of the screen displaying the release version etc."; + +"GUI_title" = "GUI=No"; +"GUI_description" = "B:;NG05B 3@0D8G5A:89 8=B5@D59A ?>;L7>20B5;O, 4>102;5=85 GUI=n 2 org.chameleon.Boot.plist"; + +"LegacyLogo_title" = "LegacyLogo=Yes"; +"LegacyLogo_description" = "Use the legacy 'dark grey' apple logo on the light grey screen for the boot process rather than the boot.png in the theme."; + +"InstantMenu_title" = "InstantMenu=Yes"; +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + +"QuietBoot_title" = "QuietBoot=Yes"; +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + +"ShowInfo_title" = "ShowInfo=Yes"; +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + +"Wait_title" = "Wait=Yes"; +"Wait_description" = "Pauses the boot process after Chameleon has finished it's setup then waits for a key press before it starts the mach kernel. Useful when combined with verbose boot for troubleshooting."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + +"EHCIacquire_title" = "EHCIacquire=Yes"; +"EHCIacquire_description" = "Enables the option to fix any EHCI ownership issues due to bad bioses."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Yes"; +"EthernetBuiltIn_description" = "Enables the option of adding 'built-in' to your ethernet devices."; + +"ForceHPET_title" = "ForceHPET=Yes"; +"ForceHPET_description" = ">102;5=85 ForceHPET=y 2 org.chameleon.Boot.plist, 2:;NG5=85 HPET =0 G8?A5B0E intel, :>B>@K5 =5 8<5NB =0AB@>5: HPET 2 18>A."; + +"ForceWake_title" = "ForceWake=Yes"; +"ForceWake_description" = ">102;5=85 ForceWake=y 2 org.chameleon.Boot.plist, This option enables you to bypass bad sleep images."; + +"RestartFix_title" = "RestartFix=No"; +"RestartFix_description" = "Disables the automatically enabled restart fix."; + +"UHCIreset_title" = "UHCIreset=Yes"; +"UHCIreset_description" = "Enables the option to reset UHCI controllers before starting OS X."; + +"UseMemDetect_title" = "UseMemDetect=No"; +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + +"Wake_title" = "Wake=Yes"; +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + +"DropSSDT_title" = "DropSSDT=Yes"; +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + +"EnableC2State_title" = "EnableC2State=Yes"; +"EnableC2State_description" = "Enable specific Processor power state, C2."; + +"EnableC3State_title" = "EnableC3State=Yes"; +"EnableC3State_description" = "Enable specific Processor power state, C3."; + +"EnableC4State_title" = "EnableC4State=Yes"; +"EnableC4State_description" = "Enable specific Processor power state, C4."; + +"GenerateCStates_title" = "Generate C-States=Yes"; +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + +"GeneratePStates_title" = "Generate P-States=Yes"; +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Yes"; +"GraphicsEnabler_description" = "Enables the option to autodetect NVIDIA based GPUs and inject the correct info."; + +"UseAtiROM_title" = "UseAtiROM=Yes"; +"UseAtiROM_description" = "Enables UseAtiROM options."; + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + +"VBIOS_title" = "VBIOS=Yes"; +"VBIOS_description" = "Enables VBIOS option"; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + +"Default_title" = "Standard"; +"Default_description" = "Chameleon default theme introduced for v2.0 RC5"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "A lovely simple theme by NoSmokingBandit from April 2009."; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Control Options"; +"Control_description" = "Settings to control how Chameleon works."; + +// General +"General_title" = "General Options"; +"General_description" = "Choose from a selection of base options."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Choose from a selection of kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Power Management"; +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + +// Resolution +"Resolution_title" = "Resolution"; +"Resolution_description" = "Set one resolution to use."; + +// Video +"Video_title" = "Video"; +"Video_description" = "A selection of options that deal with video."; + +// Keymaps +"Keymaps_title" = "KeyLayout"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Themes"; +"Themes_description" = "A collection of sample themes +More themes can be found at http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + \ No newline at end of file Index: branches/JrCs/package/Resources.old/ru.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ru.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ru.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Do not install to an Apple Macintosh computer\ + +\fs22 \cf0 \ +\ +Developers :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Thanks to :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: ???\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/ru.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/ru.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ru.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +The scripts have completed and a file\ + named \cf2 @LOG_FILENAME@\cf3 has been\ +written to the root of your chosen partition.\ +\ +\cf0 Please \cf4 read it\cf0 to find out if the installation was\ +successful and keep it for a record of what was done.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/ru.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/ru.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/ru.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/de.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/de.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/de.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon ist eine Kombination verschiedener Bootloader Komponenten.
Als Basis diente David Elliott's fake EFI Implementierung die zu Apple's boot-132 Projekt hinzugefügt wurde.
Chameleon wurde mit folgenden Hauptmerkmalen erweitert:

+


+

Neue Funktionen in Chameleon 2.0 :

+


+

- Vollständig anpassbare GUI um etwas Farbe in den Darwin Bootloader zu bringen.

+

- Starten von retail DVDs durch direktes Laden eines RAM-Disk Images, ohne zusätzliche Programme zu benötigen .

+

- Ruhezustand. Genießt Mac OS X mit einem Vorschau-Bild aufzuwecken.

+

- SMBIOS Override um vorgegebene SMBIOS Werte anzupassen.

+

- DSDT Override um eine angepasste DSDT, die verschiedene Probleme beheben kann, zu laden.

+

- Device Property Injection über device-properties string.

+

- hybrider boot0 / boot1h für MBR und GPT partitionierte Festplatten.

+

- Code zur automatischen FSB Erkennung, selbst für AMD CPUs.

+

- Apple Software RAID Unterstützung.

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Speicher Erkennung angepasst von memtest86: http://www.memtest.org

+

- Automatische P-State & C-State generation für native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

Für weitere Informationen besuche: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Index: branches/JrCs/package/Resources.old/de.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/de.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/de.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,349 @@ +// ============================================================================ +// Error strings +// ---------------------------------------------------------------------------- +"ERROR_BOOTVOL" = "Diese Software muss auf dem Startlaufwerk installiert werden."; +"ERROR_INSTALL" = "Dieses Laufwerk ist nicht fr dieses Update geeignet."; + +"Newer_Package_Installed_message" = "Es ist bereits eine neuere Version dieses Pakets installiert."; +"Intel_Mac_message" = "Diese Software kann auf diesem Computer nicht installiert werden."; + + +// ============================================================================ +// Install Type +// ---------------------------------------------------------------------------- +"InstallType_title" = "Installationstyp"; +"InstallType_description" = "Auswahl: Neu Installieren oder Upgrade einer bestehenden Installation."; + +"New_title" = "Neu Installieren"; +"New_description" = "Sichern eines bestehenden Ordners /Extra, falls auf der Zielpartition vorhanden. Ein neuer Ordner wird erstellt, wenn eine Option und nicht nur die Installation des Bootloaders selbst gewhlt wird."; + +"Upgrade_title" = "Upgrade"; +"Upgrade_description" = "Ergnzt einen bestehenden Ordner /Extra auf der Zielpartition, mit den im Installationsprogramm gewhlten Optionen."; + + +// ============================================================================ +// Bootloader +// ---------------------------------------------------------------------------- +"Chameleon_title" = "Chameleon"; +"Chameleon_description" = "Chameleon bentigt drei wesentliche Dateien. (einfach gesprochen) +boot0 (im MBR der Festplatte) verantwortlich fr das Laden von boot1. +boot1 (im Bootsektor der Zielpartition) findet boot2. +boot2 (root-Verzeichnis der Partition) ldt den Kernel etc."; + +"Standard_title" = "Chameleon Standard"; +"Standard_description" = "Installiert die drei wesentlichen Dateien und schreibt dabei boot0 in die ersten 440 Byte des MBR, so dass kein existierender Windows-Code berschrieben wird. boot0 sucht dann nach boot1h auf der ersten aktiven Partition. +* Diese Option setzt die Zielpartition auf aktiv."; + +"EFI_title" = "EFI"; +"EFI_description" = "Installiert die Dateien auf der normalerweise unsichtbaren EFI Partition und benutzt entweder boot0 oder boot0md (abhngig vom System), ohne eventuell existierende Windows Partitionen zu zerstren."; + +"noboot_title" = "Keines"; +"noboot_description" = "Chameleon nicht installieren (hilfreich wenn nur Extra-Komponenten installiert werden sollen)"; + + +// ============================================================================ +// Modules +// ---------------------------------------------------------------------------- +"Module_title" = "Chameleon Module"; +"Module_description" = "Das in Chameleon integrierte Modulsystem ermglicht es dem Benutzer/Entwickler, die Hauptfunktionen von Chameleon zu erweitern ohne die eigentliche boot Datei zu verndern."; + +"klibc_title" = "klibc"; +"klibc_description" = "Dieses Modul stellt eine Standard C-Bibliothek fr Module bereit, falls die von Chameleon bereitgestellte Bibliothek nicht ausreicht. +Im Moment wird dies nur von der uClibc++ Bibliothek genutzt. +Quelldatei: http://www.kernel.org/pub/linux/libs/klibc/"; + +"AutoReso_title" = "Auflsung"; +"AutoReso_description" = "Dieses Modul liest die EDID-Informationen des Monitors am primren Grafikausgang. +Dieses Modul ist momentan nicht im 'main trunk' integriert und hat in derzeitiger Ausfhrung nur begrenzten Nutzen. +Zustzlich passt dieses Modul die in Intel HD Grafikkarten bereitgestellten Vesa Modi an, um eine vernnftige Auflsung whrend des Bootvorgangs zu ermglichen."; + +"uClibc_title" = "uClibc++"; +"uClibc_description" = "Dieses Modul stellt eine vereinfachte c++ Bibliothek fr Module bereit. +Eine Funktionalitt ist nicht von alleine gegeben, es ermglicht lediglich, c++ Programmiersprache in anderen Modulen zu verwenden. +Bitte daran denken das sowohl 'rtti' als auch 'Ausnahmen' deaktiviert wurden. +Quelldatei: http://cxx.uclibc.org/ +Abhngigkeiten: klibc"; + +"Keylayout_title" = "Keylayout"; +"Keylayout_description" = "Dieses Modul ermglicht, eine eigene Tastaturbelegung zu definieren."; + + +// ============================================================================ +// Utility +// These are currently unused!!! +// ---------------------------------------------------------------------------- +"Utility_title" = "Ntzliches"; +"Utility_description" = "Optionale Bestandteile"; + +"PrefPanel_title" = "Prferenzen"; +"PrefPanel_description" = "Installiert ein Chameleon Panel in den Systemeinstellungen."; + +"SMBIOSDefault_title" = "SMBIOS.plist"; +"SMBIOSDefault_description" = "Kopiert eine beispielhafte smbios.plist nach /Extra/Configuration."; + +"Documentation_title" = "Dokumentation"; +"Documentation_description" = "Dokumentation fr die manuelle Installation and Benutzung von Chameleon"; + + +// ============================================================================ +// Boot Options - The follow options are split to match the layout OptionalSettings text files. +// but they can be changed to suit however anyone wants to do it. +// ---------------------------------------------------------------------------- + +"Options_title" = "Optionen"; +"Options_description" = "Erstellt eine com.apple.Boot.plist in /Extra und setzt die nachfolgend gewhlten Schlssel zur Steuerung von Chameleon."; + +"BootBanner_title" = "BootBanner=Nein"; +"BootBanner_description" = "Kein Chameleon-Banner im Startbild."; + +"GUI_title" = "GUI=Nein"; +"GUI_description" = "Deaktiviert die graphische Oberflche beim Booten."; + +"LegacyLogo_title" = "LegacyLogo=Ja"; +"LegacyLogo_description" = "Nutzt das Apple Startbild beim Booten (nicht das boot.png des Themas)."; + +"InstantMenu_title" = "InstantMenu=Ja"; +"InstantMenu_description" = "Zeigt die Partitionsauswahl ohne Wartezeit."; + +"QuietBoot_title" = "QuietBoot=Ja"; +"QuietBoot_description" = "Bootet ohne Verlaufsmeldungen."; + +"ShowInfo_title" = "ShowInfo=Ja"; +"ShowInfo_description" = "Aktiviert die Anzeige der Partition und Details der Bildschirmauflsung."; + +"Wait_title" = "Warten=Ja"; +"Wait_description" = "Stoppt den Bootprozess nach der Chameleon-Routine und ldt den mach_kernel erst nach Drcken einer beliebigen Taste. Hilfreich bei der Fehlersuche in Kombination mit dem Booten im Text-Modus."; + +// ---------------------------------------------------------------------------- + +"arch_title" = "arch=i386"; +"arch_description" = "Bootet den Kernel im 32bit Modus (Standard ist 64bit)."; + +"EHCIacquire_title" = "EHCIacquire=Ja"; +"EHCIacquire_description" = "Versucht Zugriffsprobleme des EHCI-Controllers bei fehlerhaftem BIOS zu lsen."; + +"EthernetBuiltIn_title" = "EthernetBuiltIn=Ja"; +"EthernetBuiltIn_description" = "Lsst die Netzwerkkarte als 'built-in' erscheinen."; + +"ForceHPET_title" = "ForceHPET=Ja"; +"ForceHPET_description" = "Versucht HPET bei Intel-Chipstzen zu aktivieren, falls das BIOS diese Einstellung nicht bietet."; + +"ForceWake_title" = "ForceWake=Ja"; +"ForceWake_description" = "Versucht das Aufwachen bei fehlerhaftem Image des letzten Ruhezustandes zu erzwingen."; + +"RestartFix_title" = "RestartFix=Nein"; +"RestartFix_description" = "bergeht die Anwendung des Restart-Fix."; + +"UHCIreset_title" = "UHCIreset=Ja"; +"UHCIreset_description" = "Fhrt ein 'Reset' des UHCI-Controllers vor dem Start von OS X aus."; + +"UseMemDetect_title" = "Benutze MemDetect=Nein"; +"UseMemDetect_description" = "bergeht die automatische Erkennung des Arbeitsspeichers."; + +"UseKernelCache_title" = "UseKernelCache=Yes"; +"UseKernelCache_description" = "Nur fr Lion. Aktiviert das Laden des pre-linked kernel. Treiber in /E/E und /S/L/E werden ignoriert. Nur benutzen, wenn damit alles Notwendige geladen werden kann."; + +"Wake_title" = "Aufwachen=Ja"; +"Wake_description" = "Versucht das Image des letzten Ruhezustands (Hibernation) zu laden."; + +// ---------------------------------------------------------------------------- + +"CSTUsingSystemIO_title" = "Die neue - Generate C-States=Ja"; +"CSTUsingSystemIO_description" = "Die neue C-State _CST Erzeugungsmethode erfordert das Benutzen von SystemIO Registern an Stelle von FixedHW."; + +"DropSSDT_title" = "DropSSDT=Ja"; +"DropSSDT_description" = "berspringt das Einlesen der SSDT-Tabellen des BIOS."; + +"EnableC2State_title" = "EnableC2State=Ja"; +"EnableC2State_description" = "C2 ermglichen."; + +"EnableC3State_title" = "EnableC3State=Ja"; +"EnableC3State_description" = "C3 ermglichen."; + +"EnableC4State_title" = "EnableC4State=Ja"; +"EnableC4State_description" = "C4 ermglichen."; + +"GenerateCStates_title" = "Generate C-States=Ja"; +"GenerateCStates_description" = "Generiert automatisch die C-States des Prozessors."; + +"GeneratePStates_title" = "Generate P-States=Ja"; +"GeneratePStates_description" = "Generiert automatisch die P-States des Prozessors."; + +// ---------------------------------------------------------------------------- + +"1024x600x32_title" = "1024x600x32"; +"1024x600x32_description" = "Setzt die Bildschirmauflsung auf 1024x600x32"; + +"1024x768x32_title" = "1024x768x32"; +"1024x768x32_description" = "Setzt die Bildschirmauflsung auf 1024x768x32"; + +"1280x768x32_title" = "1280x768x32"; +"1280x768x32_description" = "Setzt die Bildschirmauflsung auf 1280x768x32"; + +"1280x800x32_title" = "1280x800x32"; +"1280x800x32_description" = "Setzt die Bildschirmauflsung auf 1280x800x32"; + +"1280x1024x32_title" = "1280x1024x32"; +"1280x1024x32_description" = "Setzt die Bildschirmauflsung auf 1280x1024x32"; + +"1280x960x32_title" = "1280x960x32"; +"1280x960x32_description" = "Setzt die Bildschirmauflsung auf 1280x960x32"; + +"1440x900x32_title" = "1440x900x32"; +"1440x900x32_description" = "Setzt die Bildschirmauflsung auf 1440x900x32"; + +"1600x900x32_title" = "1600x900x32"; +"1600x900x32_description" = "Setzt die Bildschirmauflsung auf 1600x900x32"; + +"1680x1050x32_title" = "1680x1050x32"; +"1680x1050x32_description" = "Setzt die Bildschirmauflsung auf 1680x1050x32"; + +"1920x1080x32_title" = "1920x1080x32"; +"1920x1080x32_description" = "Setzt die Bildschirmauflsung auf 1920x1080x32"; + +"1920x1200x32_title" = "1920x1200x32"; +"1920x1200x32_description" = "Setzt die Bildschirmauflsung auf 1920x1200x32"; + +// ---------------------------------------------------------------------------- + +"GraphicsEnabler_title" = "GraphicsEnabler=Ja"; +"GraphicsEnabler_description" = "Nutzt die automatische Erkennung von NVIDIA-Grafikchipstzen. Zustzliche Injektoren sind obsolet."; + +"UseAtiROM_title" = "Benutze AtiROM=Ja"; +"UseAtiROM_description" = "Nutzt ein AtiROM."; + +"UseNvidiaROM_title" = "Benutze NvidiaROM=Ja"; +"UseNvidiaROM_description" = "Nutzt ein NvidiaROM."; + +"VBIOS_title" = "VBIOS=Ja"; +"VBIOS_description" = "Nutzt VBIOS."; + +// ---------------------------------------------------------------------------- +// Boot options - KERNEL FLAGS +// ---------------------------------------------------------------------------- + +"Verbose_title" = "Verbose Mode"; +"Verbose_description" = "Meldungen von Chameleon und OS X Kernel werden whrend des Bootens angezeigt. Wichtig zur Fehlerdiagnose."; + +"Singleusermode_title" = "Single User Mode"; +"Singleusermode_description" = "Zur Fehlerbehebung in die BSD/Unix Kommandozeile von OS X booten."; + +"Ignorecaches_title" = "Ignore Caches"; +"Ignorecaches_description" = "Nicht fr den tglichen Gebrauch, aber hilfreich, um OS X alle Systemdateien unter Umgehung der Caches laden zu lassen."; + +"Npci_title" = "npci=0x2000"; +"Npci_description" = "Behebt manchmal den Fehler 'PCI Configuration Failed' "; + +"Npci3_title" = "npci=0x3000"; +"Npci3_description" = "Behebt manchmal den Fehler 'PCI Configuration Failed' "; + +"Darkwake_title" = "darkwake=0"; +"Darkwake_description" = "Nur fr Lion. Verhindert das 'low power wake', wodurch manchmal der Monitor nach dem Aufwachen aus dem Ruhezustand schwarz bleibt."; + + +// ---------------------------------------------------------------------------- +// Boot options - KEYMAPS +// ---------------------------------------------------------------------------- + +"mac-de_title" = "German Mac Keyboard"; +"mac-de_description" = "Tastaturbelegung: Deutsch Mac"; + +"mac-es_title" = "Spanish Mac Keyboard"; +"mac-es_description" = "Tastaturbelegung: Spanisch Mac"; + +"mac-fr_title" = "French Mac Keyboard"; +"mac-fr_description" = "Tastaturbelegung: Franzsisch Mac"; + +"mac-it_title" = "Italian Mac Keyboard"; +"mac-it_description" = "Tastaturbelegung: Italienisch Mac"; + +"mac-se_title" = "Swedish Mac Keyboard"; +"mac-se_description" = "Tastaturbelegung: Schwedisch Mac"; + +"mac-pt_title" = "Portuguese Mac Keyboard"; +"mac-pt_description" = "Tastaturbelegung: Portugiesisch Mac"; + +"pc-de_title" = "German PC Keyboard"; +"pc-de_description" = "Tastaturbelegung: Deutsch PC"; + +"pc-es_title" = "Spanish PC Keyboard"; +"pc-es_description" = "Tastaturbelegung: Spanisch PC"; + +"pc-fr_title" = "French PC Keyboard"; +"pc-fr_description" = "Tastaturbelegung: Franzsisch PC"; + +"pc-it_title" = "Italian PC Keyboard"; +"pc-it_description" = "Tastaturbelegung: Italienisch PC"; + +"pc-se_title" = "Swedish PC Keyboard"; +"pc-se_description" = "Tastaturbelegung: Schwedisch PC"; + +"pc-pt_title" = "Portuguese PC Keyboard"; +"pc-pt_description" = "Tastaturbelegung: Portugiesisch PC"; + +// ---------------------------------------------------------------------------- +// Boot options - THEMES +// ---------------------------------------------------------------------------- + +"Embed_title" = "Embed"; +"Embed_description" = "Vereinfachte Version des neuen Standard-Themas, nutzbar wenn fr Chameleon ein eingebettetes Thema bentigt wird."; + +"Legacy_title" = "Legacy"; +"Legacy_description" = "Das bisherige Standard-Thema"; + +"Default_title" = "Standard"; +"Default_description" = "Das neue Standard-Thema"; + +"Bullet_title" = "Bullet"; +"Bullet_description" = "Das Bullet-Thema von NoSmokingBandit"; + + +// ============================================================================ +// The filenames from OptionalSettings text files' become sub menu headings. +// These sub menu headings need titles and descriptions. +// ---------------------------------------------------------------------------- +// Control + +"Control_title" = "Kontrolloptionen"; +"Control_description" = "Einstellungen zur Kontrolle von Chameleon."; + +// General +"General_title" = "Basisoptionen"; +"General_description" = "Auswahl an Basisoptionen."; + +// KernelFlags +"KernelFlags_title" = "Kernel Flags"; +"KernelFlags_description" = "Auswahl an kernel flags."; + +// PowerManagement +"PowerManagement_title" = "Energieverwaltung"; +"PowerManagement_description" = "Optionen zur Energieverwaltung und CPU-Taktung."; + +// Resolution +"Resolution_title" = "Bildschirmauflsung"; +"Resolution_description" = "Setzt die Bildschirmauflsung fr den Bootprozess."; + +// Video +"Video_title" = "Video"; +"Video_description" = "Optionen zur Grafik."; + +// Keymaps +"Keymaps_title" = "Tastaturbelegung"; +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + +// Themes +"Themes_title" = "Erscheinungsbild"; +"Themes_description" = "Eine Sammlung verschiedener Themen. +Weitere Themen gibt es hier: http://forum.voodooprojects.org/index.php/board,7.0.html"; + + +// ============================================================================ +// Exclusive boot options string - These are added automatically by buildpkg +// Name to be used should be ChooseNone-xxxxxx +// Where xxxxx = the name of the BootOptions file (minus the .txt) +// ---------------------------------------------------------------------------- +"ChooseNone-Resolution_title" = "None"; +"ChooseNone-Resolution_description" = "Keine Bildschirmauflsung whlen."; + +"ChooseNone-keylayout_title" = "None"; +"ChooseNone-keylayout_description" = "Keine Tastaturbelegung whlen."; Index: branches/JrCs/package/Resources.old/de.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/de.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/de.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,41 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Achtung ! Nicht auf einem Apple Macintosh Computer Installieren\ + +\fs22 \cf0 \ +\ +Entwickler :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +Dank :\ + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: iXabbu, olegischinski & NextMac\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/de.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/de.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/de.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +Die Scripts wurden ausgef\'fchrt und eine Datei\ + genannt \cf2 @LOG_FILENAME@\cf3 wurde ins\ +Rootverzeichnis deiner ausgesuchten Partition geschrieben. \ +\ +\cf0 Bitte \cf4 lese\cf5 die Datei\cf0 \cf3 um herauszufinden ob \ +die Installation erfolgreich war. Behalte die Datei\ +um nachzuschauen was getan wurde.\cf5 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/de.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/de.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/de.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/Resources.old/bg.lproj/Description.html =================================================================== --- branches/JrCs/package/Resources.old/bg.lproj/Description.html (revision 0) +++ branches/JrCs/package/Resources.old/bg.lproj/Description.html (revision 1843) @@ -0,0 +1,42 @@ + + + + + + + + + +

Chameleon е комбинация от разбични boot loader компоненти.
Базиран е на fake EFI изпълнението на Дейвид Ейлиът добавено към проекта boot-132 на Apple.
Chameleon е разширен със следните ключови функции:

+


+

Нови функции в Chameleon 2.0

+


+

- Напълно управляем графичен интерфейс за добавяне на живи цветове към Darwin Bootloader.

+

- Boot-ва retail DVD-та чрез директно зареждане на ramdisk image без помоща на допълнителни програми.

+

- Хибернация.

+

- SMBIOS заместване, за да бъдат модифицирани оригиналните SMBIOS стойности.

+

- DSDT заместване, за да бъде използвано модифицирано DSDT, което решава множество проблеми.

+

- Вграждане на особеностите на различни хардуерни устройства посредством device-properties стрингове.

+

- Хибридни boot0 / boot1h за MBR и GPT разделени дискове..

+

- Автоматично разпознаване на FSB за новите AMD процесори.

+

- Поддръжка на Apple Software RAID..

+

- Nvidia & ATI/AMD Graphics Card Enabler.

+

- Module support

+

- Memory detection adapted from memtest86: http://www.memtest.org

+

- Automatic P-State & C-State generation for native power management.

+

- Message logging.

+


+

The code is released under version 2 of the Gnu Public License.

+

http://forge.voodooprojects.org/p/chameleon

+


+

За повече информация посетете: http://forum.voodooprojects.org/index.php/topic,754.0.html

+ + Property changes on: branches/JrCs/package/Resources.old/bg.lproj/Description.html ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/Resources.old/bg.lproj/Localizable.strings =================================================================== --- branches/JrCs/package/Resources.old/bg.lproj/Localizable.strings (revision 0) +++ branches/JrCs/package/Resources.old/bg.lproj/Localizable.strings (revision 1843) @@ -0,0 +1,697 @@ +// ============================================================================ + +// Error strings + +// ---------------------------------------------------------------------------- + +"ERROR_BOOTVOL" = "">78 A>DBC5@ B@O120 40 1J45 8=AB0;8@0= =0 AB0@B>28O 4O;."; + +"ERROR_INSTALL" = "">78 4O; =5 >B3>20@O =0 878A:20=8OB0 70 B>20 >1=>2O20=5."; + + + +"Newer_Package_Installed_message" = "> =>20 25@A8O =0 Chameleon 25G5 5 8=AB0;8@0=0."; + +"Intel_Mac_message" = "!>DBC5@JB =5 <>65 40 1J45 8=AB0;8@0= =0 B>78 :><?NBJ@."; + + + + + +// ============================================================================ + +// Install Type + +// ---------------------------------------------------------------------------- + +"InstallType_title" = "Install Type"; + +"InstallType_description" = "Choose to perform a new installation or upgrade an existing installation."; + + + +"New_title" = "New Installation"; + +"New_description" = "Backup an existing /Extra folder, if found on the target partition. A new one will be created if any options are chosen from the installer, other than the Bootloader."; + + + +"Upgrade_title" = "Upgrade"; + +"Upgrade_description" = "Merge an existing /Extra folder, if found on the target, with any options chosen from the installer, other than the Bootloader."; + + + + + +// ============================================================================ + +// Bootloader + +// ---------------------------------------------------------------------------- + +"Chameleon_title" = "Chameleon Bootloader"; + +"Chameleon_description" = "Chameleon requires three essential files. (in simple terms) + +boot0 (On the drive's MBR) responsible for loading boot1. + +boot1 (On the partition's boot-sector) to finding boot2. + +boot2 (On the partition's root directory) for loading kernel etc."; + + + +"Standard_title" = "Standard"; + +"Standard_description" = "!B0=40@B=> 8=AB0;8@0=5 =0 Chameleon"; + + + +"EFI_title" = "EFI"; + +"EFI_description" = "Install Chameleon's files to the normally hidden EFI system partition using either boot0 or boot0md depending on your system and without destroying any existing Windows installation if you have one."; + + + +"noboot_title" = "Don't install the Bootloader"; + +"noboot_description" = "Useful if you only want to install the extra's."; + + + + + +// ============================================================================ + +// Modules + +// ---------------------------------------------------------------------------- + +"Module_title" = "Modules"; + +"Module_description" = "The modules system incorporated in chameleon allows for a user or developer to extend the core functionality of chameleon without replacing the main boot file. "; + + + +"klibc_title" = "klibc"; + +"klibc_description" = "This module provides a standard c library for modules to link to if the library provided by chameleon is insufficient. + +This is currently only used by the uClibc++ library. + +Source: http://www.kernel.org/pub/linux/libs/klibc/"; + + + +"AutoReso_title" = "Resolution"; + +"AutoReso_description" = "This module reads the edid information from the monitor attached to the main display. + +The module is currently not integrated into trunk and has minimal uses as it stands. + +Additionally, the module will patch the vesa modes available in pre intel hd graphics cards to provide proper resolution while booting."; + + + +"uClibc_title" = "uClibc++"; + +"uClibc_description" = "This module provides a minimalistic c++ runtime library for use in other modules. + +This does not provide functionality by itself, instead it is used to allow for the c++ language to be used in other modules. + +Please note that rtti and exceptions has both been disabled. + +Source: http://cxx.uclibc.org/ + +Dependencies: klibc"; + + + +"Keylayout_title" = "Keylayout"; + +"Keylayout_description" = "This module permits the user to define the keyboard key mappings."; + + + + + +// ============================================================================ + +// Utility + +// These are currently unused!!! + +// ---------------------------------------------------------------------------- + +"Utility_title" = "Utilities"; + +"Utility_description" = "Optional files to help setup"; + + + +"PrefPanel_title" = "Preference Panel"; + +"PrefPanel_description" = "Installs Preference Panel for Chameleon."; + + + +"SMBIOS_title" = "SMBIOS.plist"; + +"SMBIOS_description" = "Copies an example smbios.plist in /Extra/Configuration."; + + + +"Documentation_title" = "Documentation"; + +"Documentation_description" = "Documentation for Chameleon manual install and use"; + + + + + +// ============================================================================ + +// Boot Options - The follow options are split to match the layout OptionalSettings text files. + +// but they can be changed to suit however anyone wants to do it. + +// ---------------------------------------------------------------------------- + + + +"Options_title" = "?F88"; + +"Options_description" = "?F88 ?> ?>4@0718@0=5"; + + + +"BootBanner_title" = "BootBanner=No"; + +"BootBanner_description" = "Hides Chameleon's boot banner in GUI. This is the text that is drawn at the top left corner of the screen displaying the release version etc."; + + + +"GUI_title" = "GUI=No"; + +"GUI_description" = "@5<0E20 3@0D8G=8O 8=B5@D59A :0B> 4>102O GUI=n 2 com.apple.Boot.plist"; + + + +"LegacyLogo_title" = "LegacyLogo=Yes"; + +"LegacyLogo_description" = "Use the legacy 'dark grey' apple logo on the light grey screen for the boot process rather than the boot.png in the theme."; + + + +"InstantMenu_title" = "InstantMenu=Yes"; + +"InstantMenu_description" = "By default, when Chameleon loads you'll see the icon for the current default partition, along with a timeout progress bar which left alone will count down before Chameleon automatically boots that partition. This options skips that and takes you directly to the device selection screen."; + + + +"QuietBoot_title" = "QuietBoot=Yes"; + +"QuietBoot_description" = "Enable quiet boot mode (no messages or prompt)."; + + + +"ShowInfo_title" = "ShowInfo=Yes"; + +"ShowInfo_description" = "Enables display of partition and resolution details shown on the left side of the GUI under the boot banner. This is useful information for troubleshooting, though can clash with certain themes."; + + + +"Wait_title" = "Wait=Yes"; + +"Wait_description" = "Pauses the boot process after Chameleon has finished it's setup then waits for a key press before it starts the mach kernel. Useful when combined with verbose boot for troubleshooting."; + + + +// ---------------------------------------------------------------------------- + + + +"arch_title" = "arch=i386"; + +"arch_description" = "Boots the kernel in 32bit mode rather than the default 64bit mode."; + + + +"EHCIacquire_title" = "EHCIacquire"; + +"EHCIacquire_description" = ">102O EHCIacquire=y 2 com.apple.Boot.plist. ?F8OB0 ?>?@02O 2AO:0:28 EHCI (USB 1.0) ?@>1;5<8 ?>@048 =5:>@5:B=> =0?8A0=8 BIOS-8."; + + + +"EthernetBuiltIn_title" = "EthernetBuiltIn"; + +"EthernetBuiltIn_description" = ">102O EthernetBuiltIn=y 2 com.apple.Boot.plist. "078 >?F8O I5 =0?@028 '23@045=8' 20H8B5 Ethernet CAB@>9AB20."; + + + +"ForceHPET_title" = "ForceHPET"; + +"ForceHPET_description" = ">102O ForceHPET=y 2 com.apple.Boot.plist. CA:0 2 459AB285 HPET ?@8 Intel G8?A5B8 70 BIOS-8, :>8B> =5 @07?>;030B A HPET."; + + + +"ForceWake_title" = "ForceWake"; + +"ForceWake_description" = ">102O ForceWake=y 2 com.apple.Boot.plist. ?F8OB0 ?>72>;O20 40 ?@5A:>G8B5 (40 =5 70@5640B5) ?>2@545=8 '87>1@065=8O' =0 >?5@0F8>==0B0 A8AB5<0."; + + + +"RestartFix_title" = "RestartFix=No"; + +"RestartFix_description" = "Disables the automatically enabled restart fix."; + + + +"UHCIreset_title" = "UHCIreset"; + +"UHCIreset_description" = ">102O UHCIreset=y 2 com.apple.Boot.plist. =8F80;878@0 UHCI (USB 2.0) :>=B@>;5@8B5 ?@548 AB0@B8@0=5 =0 OS X."; + + + +"UseMemDetect_title" = "UseMemDetect=No"; + +"UseMemDetect_description" = "Disables the automatically enabled RAM recognition."; + + + +"UseKernelCache_title" = "UseKernelCache=Yes"; + +"UseKernelCache_description" = "For Lion only. Enables loading of the pre-linked kernel. This will ignore /E/E and /S/L/E. ONLY use this is you have know it contains everything you need."; + + + +"Wake_title" = "Wake=Yes"; + +"Wake_description" = "Attempts to load the sleep image saved from last hibernation."; + + + +// ---------------------------------------------------------------------------- + + + +"CSTUsingSystemIO_title" = "Generate C-States=Yes"; + +"CSTUsingSystemIO_description" = "New C-State _CST generation method using SystemIO registers instead of FixedHW."; + + + +"DropSSDT_title" = "DropSSDT=Yes"; + +"DropSSDT_description" = "Discard the motherboard's built-in SSDT tables."; + + + +"EnableC2State_title" = "EnableC2State=Yes"; + +"EnableC2State_description" = "Enable specific Processor power state, C2."; + + + +"EnableC3State_title" = "EnableC3State=Yes"; + +"EnableC3State_description" = "Enable specific Processor power state, C3."; + + + +"EnableC4State_title" = "EnableC4State=Yes"; + +"EnableC4State_description" = "Enable specific Processor power state, C4."; + + + +"GenerateCStates_title" = "Generate C-States=Yes"; + +"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States)."; + + + +"GeneratePStates_title" = "Generate P-States=Yes"; + +"GeneratePStates_description" = "Enable auto generation of processor power performance states (P-States)."; + + + +// ---------------------------------------------------------------------------- + + + +"1024x600x32_title" = "1024x600x32"; + +"1024x600x32_description" = "Set Graphics Mode to 1024x600x32"; + + + +"1024x768x32_title" = "1024x768x32"; + +"1024x768x32_description" = "Set Graphics Mode to 1024x768x32"; + + + +"1280x768x32_title" = "1280x768x32"; + +"1280x768x32_description" = "Set Graphics Mode to 1280x768x32"; + + + +"1280x800x32_title" = "1280x800x32"; + +"1280x800x32_description" = "Set Graphics Mode to 1280x800x32"; + + + +"1280x1024x32_title" = "1280x1024x32"; + +"1280x1024x32_description" = "Set Graphics Mode to 1280x1024x32"; + + + +"1280x960x32_title" = "1280x960x32"; + +"1280x960x32_description" = "Set Graphics Mode to 1280x960x32"; + + + +"1440x900x32_title" = "1440x900x32"; + +"1440x900x32_description" = "Set Graphics Mode to 1440x900x32"; + + + +"1600x900x32_title" = "1600x900x32"; + +"1600x900x32_description" = "Set Graphics Mode to 1600x900x32"; + + + +"1680x1050x32_title" = "1680x1050x32"; + +"1680x1050x32_description" = "Set Graphics Mode to 1680x1050x32"; + + + +"1920x1080x32_title" = "1920x1080x32"; + +"1920x1080x32_description" = "Set Graphics Mode to 1920x1080x32"; + + + +"1920x1200x32_title" = "1920x1200x32"; + +"1920x1200x32_description" = "Set Graphics Mode to 1920x1200x32"; + + + +// ---------------------------------------------------------------------------- + + + +"GraphicsEnabler_title" = "GraphicsEnabler"; + +"GraphicsEnabler_description" = ">102O GraphicsEnabler=y 2 org.chameleon.Boot.plist. 2B><0B8G=> @07?>7=020=5 =0 2845> :0@B8 A nVidia G8?A5B 8 4>102O=5 =0 AJ>B25B=0B0 70 BOE 8=D>@<0F8O."; + + + +"UseAtiROM_title" = "UseAtiROM=Yes"; + +"UseAtiROM_description" = "Enables UseAtiROM options."; + + + +"UseNvidiaROM_title" = "UseNvidiaROM=Yes"; + +"UseNvidiaROM_description" = "Enables UseNvidiaROM options."; + + + +"VBIOS_title" = "VBIOS=Yes"; + +"VBIOS_description" = "Enables VBIOS option"; + + + +// ---------------------------------------------------------------------------- + +// Boot options - KERNEL FLAGS + +// ---------------------------------------------------------------------------- + + + +"Verbose_title" = "Verbose Mode"; + +"Verbose_description" = "Turns on verbose logging and allows you to see messages from both Chameleon and the OS X kernel at boot time. Essential for troubleshooting."; + + + +"Singleusermode_title" = "Single User Mode"; + +"Singleusermode_description" = "A troubleshooting option used for booting into OS X's BSD/Unix command line."; + + + +"Ignorecaches_title" = "Ignore Caches"; + +"Ignorecaches_description" = "Not an option that's needed for everyday booting, but it can be useful if you want OS X to load all files from it's system folders, rather than relying on it's pre-built caches."; + + + +"Npci_title" = "npci=0x2000"; + +"Npci_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x2000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + + + +"Npci3_title" = "npci=0x3000"; + +"Npci3_description" = "For overcoming a hang at 'PCI configuration begin' on some systems. 0x3000 is the kIOPCIConfiguratorPFM64 flag, as seen in the IOPCIFamily source code."; + + + +"Darkwake_title" = "darkwake=0"; + +"Darkwake_description" = "Lion only. Disables the 'low power wake' feature which can sometimes leave the screen black after wake from sleep."; + + + + + +// ---------------------------------------------------------------------------- + +// Boot options - KEYMAPS + +// ---------------------------------------------------------------------------- + + + +"mac-de_title" = "German Mac Keyboard"; + +"mac-de_description" = "Use the keyboard layout for a German Mac keyboard"; + + + +"mac-es_title" = "Spanish Mac Keyboard"; + +"mac-es_description" = "Use the keyboard layout for a Spanish Mac keyboard"; + + + +"mac-fr_title" = "French Mac Keyboard"; + +"mac-fr_description" = "Use the keyboard layout for a French Mac keyboard"; + + + +"mac-it_title" = "Italian Mac Keyboard"; + +"mac-it_description" = "Use the keyboard layout for an Italian Mac keyboard"; + + + +"mac-se_title" = "Swedish Mac Keyboard"; + +"mac-se_description" = "Use the keyboard layout for a Swedish Mac keyboard"; + + + +"mac-pt_title" = "Portuguese Mac Keyboard"; + +"mac-pt_description" = "Use the keyboard layout for a Portuguese Mac keyboard"; + + + +"pc-de_title" = "German PC Keyboard"; + +"pc-de_description" = "Use the keyboard layout for a German PC keyboard"; + + + +"pc-es_title" = "Spanish PC Keyboard"; + +"pc-es_description" = "Use the keyboard layout for a Spanish PC keyboard"; + + + +"pc-fr_title" = "French PC Keyboard"; + +"pc-fr_description" = "Use the keyboard layout for a French PC keyboard"; + + + +"pc-it_title" = "Italian PC Keyboard"; + +"pc-it_description" = "Use the keyboard layout for a Italian PC keyboard"; + + + +"pc-se_title" = "Swedish PC Keyboard"; + +"pc-se_description" = "Use the keyboard layout for a Swedish PC keyboard"; + + + +"pc-pt_title" = "Portuguese PC Keyboard"; + +"pc-pt_description" = "Use the keyboard layout for a Portuguese PC keyboard"; + + + +// ---------------------------------------------------------------------------- + +// Boot options - THEMES + +// ---------------------------------------------------------------------------- + + + +"Embed_title" = "Embed"; + +"Embed_description" = "A smaller simple version of the new default theme used when building a version of Chameleon which requires an embedded theme."; + + + +"Legacy_title" = "Legacy"; + +"Legacy_description" = "Chameleon's original default theme introduced for v2.0 RC1"; + + + +"Default_title" = "!B0=40@B=0"; + +"Default_description" = "3@045=0B0 B5<0 2 Chameleon."; + + + +"Bullet_title" = "Bullet"; + +"Bullet_description" = "The Bullet B5<0 >B NoSmokingBandit"; + + + + + +// ============================================================================ + +// The filenames from OptionalSettings text files' become sub menu headings. + +// These sub menu headings need titles and descriptions. + +// ---------------------------------------------------------------------------- + +// Control + + + +"Control_title" = "Control Options"; + +"Control_description" = "Settings to control how Chameleon works."; + + + +// General + +"General_title" = "General Options"; + +"General_description" = "Choose from a selection of base options."; + + + +// KernelFlags + +"KernelFlags_title" = "Kernel Flags"; + +"KernelFlags_description" = "Choose from a selection of kernel flags."; + + + +// PowerManagement + +"PowerManagement_title" = "Power Management"; + +"PowerManagement_description" = "A selection of options that deal with power management and speedstep."; + + + +// Resolution + +"Resolution_title" = "Resolution"; + +"Resolution_description" = "Set one resolution to use."; + + + +// Video + +"Video_title" = "Video"; + +"Video_description" = "A selection of options that deal with video."; + + + +// Keymaps + +"Keymaps_title" = "KeyLayout"; + +"Keymaps_description" = "Select one keylayout to use. This will also install the Keylayout module and keymaps."; + + + +// Themes + +"Themes_title" = ""5<8"; + +"Themes_description" = ">;5:F8O >B B5<8 + +http://forum.voodooprojects.org/index.php/board,7.0.html"; + + + + + +// ============================================================================ + +// Exclusive boot options string - These are added automatically by buildpkg + +// Name to be used should be ChooseNone-xxxxxx + +// Where xxxxx = the name of the BootOptions file (minus the .txt) + +// ---------------------------------------------------------------------------- + +"ChooseNone-Resolution_title" = "None"; + +"ChooseNone-Resolution_description" = "Don't choose a resolution."; + + + +"ChooseNone-keylayout_title" = "None"; + +"ChooseNone-keylayout_description" = "Don't choose a keylayout."; + + \ No newline at end of file Property changes on: branches/JrCs/package/Resources.old/bg.lproj/Localizable.strings ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/Resources.old/bg.lproj/Welcome.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/bg.lproj/Welcome.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/bg.lproj/Welcome.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,44 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf230 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red255\green0\blue9;} +\margl1440\margr1440\vieww10460\viewh7440\viewkind0 +\pard\qc + +\f0\b\fs28 \cf0 \ + +\fs48 Chameleon +\fs50 \ + +\fs26 v%CHAMELEONVERSION% r%CHAMELEONREVISION%\ + +\fs28 \ +\cf2 Do not install to an Apple Macintosh computer\ + +\fs22 \cf0 \ +\ +\pard\ri0\qc +\cf0 \uc0\u1056 \u1072 \u1079 \u1088 \u1072 \u1073 \u1086 \u1090 \u1077 \u1085 \u1086 \u1090 :\ +\pard\qc + +\b0 \cf0 %DEVELOP% +\b \ +\ +\pard\ri0\qc +\cf0 \uc0\u1041 \u1083 \u1072 \u1075 \u1086 \u1076 \u1072 \u1088 \u1085 \u1086 \u1089 \u1090 \u1080 \u1085 \u1072 :\ +\pard\qc + +\b0 %CREDITS% +\b \ + +\b0 \ +\pard\qc + +\b \cf0 Package :\ +\pard\qc + +\b0 \cf0 %PKGDEV%\ +\ +\pard\qc + +\fs18 \cf0 Package built by: %WHOBUILD%, language translated by: ???\ +Copyright \'a9 %CPRYEAR%} Index: branches/JrCs/package/Resources.old/bg.lproj/Conclusion.rtfd/TXT.rtf =================================================================== --- branches/JrCs/package/Resources.old/bg.lproj/Conclusion.rtfd/TXT.rtf (revision 0) +++ branches/JrCs/package/Resources.old/bg.lproj/Conclusion.rtfd/TXT.rtf (revision 1843) @@ -0,0 +1,29 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360 +{\fonttbl\f0\fnil\fcharset0 LucidaGrande;} +{\colortbl;\red255\green255\blue255;\red0\green0\blue255;\red14\green0\blue45;\red255\green0\blue0; +\red255\green0\blue9;\red153\green153\blue153;} +\margl1440\margr1440\vieww11660\viewh12980\viewkind0 +\pard\ri-20\qc + +\f0\b\fs28 \cf0 \ +\ +The scripts have completed and a file\ + named \cf2 @LOG_FILENAME@\cf3 has been\ +written to the root of your chosen partition.\ +\ +\cf0 Please \cf4 read it\cf0 to find out if the installation was\ +successful and keep it for a record of what was done.\ +\cf4 \ +\ +\ + +\fs26 \cf0 Chameleon v%CHAMELEONVERSION% r%CHAMELEONREVISION% +\fs24 \cf5 \ + +\b0\fs30 \cf0 \ + +\fs20 Copyright \'a9 %CPRYEAR%\ +\ +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc + +\b \cf6 Package built by: %WHOBUILD%} Index: branches/JrCs/package/Resources.old/bg.lproj/License.rtf =================================================================== --- branches/JrCs/package/Resources.old/bg.lproj/License.rtf (revision 0) +++ branches/JrCs/package/Resources.old/bg.lproj/License.rtf (revision 1843) @@ -0,0 +1,350 @@ +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fmodern\fcharset0 Courier-Bold;\f1\fmodern\fcharset0 Courier;} +{\colortbl;\red255\green255\blue255;} +\paperw12240\paperh15840\vieww22060\viewh18360\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs40 \cf0 APPLE PUBLIC SOURCE LICENSE \ + +\fs26 Version 2.0 - August 6, 2003\ +\ + +\f1\b0 Please read this License carefully before downloading this software. By downloading or using this software, you are agreeing to be bound by the terms of this License. If you do not or cannot agree to the terms of this License, please do not download or use the software.\ +\ +1. General; Definitions. This License applies to any program or other work which Apple Computer, Inc. ("Apple") makes publicly available and which contains a notice placed by Apple identifying such program or work as "Original Code" and stating that it is subject to the terms of this Apple Public Source License version 2.0 ("License"). As used in this License:\ +\ +1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to Apple and (ii) that cover subject matter contained in the Original Code, but only to the extent necessary to use, reproduce and/or distribute the Original Code without infringement; and (b) in the case where You are the grantor of rights, (i) claims of patents that are now or hereafter acquired, owned by or assigned to You and (ii) that cover subject matter in Your Modifications, taken alone or in combination with Original Code.\ +\ +1.2 "Contributor" means any person or entity that creates or contributes to the creation of Modifications.\ +\ +1.3 "Covered Code" means the Original Code, Modifications, the combination of Original Code and any Modifications, and/or any respective portions thereof.\ +\ +1.4 "Externally Deploy" means: (a) to sublicense, distribute or otherwise make Covered Code available, directly or indirectly, to anyone other than You; and/or (b) to use Covered Code, alone or as part of a Larger Work, in any way to provide a service, including but not limited to delivery of content, through electronic communication with a client other than You.\ +\ +1.5 "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\ +\ +1.6 "Modifications" mean any addition to, deletion from, and/or change\ +to, the substance and/or structure of the Original Code, any previous\ +Modifications, the combination of Original Code and any previous\ +Modifications, and/or any respective portions thereof. When code is\ +released as a series of files, a Modification is: (a) any addition to\ +or deletion from the contents of a file containing Covered Code;\ +and/or (b) any new file or other representation of computer program\ +statements that contains any part of Covered Code.\ +\ +1.7 "Original Code" means (a) the Source Code of a program or other\ +work as originally made available by Apple under this License,\ +including the Source Code of any updates or upgrades to such programs\ +or works made available by Apple under this License, and that has been\ +expressly identified by Apple as such in the header file(s) of such\ +work; and (b) the object code compiled from such Source Code and\ +originally made available by Apple under this License.\ +\ +1.8 "Source Code" means the human readable form of a program or other\ +work that is suitable for making modifications to it, including all\ +modules it contains, plus any associated interface definition files,\ +scripts used to control compilation and installation of an executable\ +(object code).\ +\ +1.9 "You" or "Your" means an individual or a legal entity exercising\ +rights under this License. For legal entities, "You" or "Your"\ +includes any entity which controls, is controlled by, or is under\ +common control with, You, where "control" means (a) the power, direct\ +or indirect, to cause the direction or management of such entity,\ +whether by contract or otherwise, or (b) ownership of fifty percent\ +(50%) or more of the outstanding shares or beneficial ownership of\ +such entity.\ +\ +2. Permitted Uses; Conditions & Restrictions. Subject to the terms\ +and conditions of this License, Apple hereby grants You, effective on\ +the date You accept this License and download the Original Code, a\ +world-wide, royalty-free, non-exclusive license, to the extent of\ +Apple's Applicable Patent Rights and copyrights covering the Original\ +Code, to do the following:\ +\ +2.1 Unmodified Code. You may use, reproduce, display, perform,\ +internally distribute within Your organization, and Externally Deploy\ +verbatim, unmodified copies of the Original Code, for commercial or\ +non-commercial purposes, provided that in each instance:\ +\ +(a) You must retain and reproduce in all copies of Original Code the\ +copyright and other proprietary notices and disclaimers of Apple as\ +they appear in the Original Code, and keep intact all notices in the\ +Original Code that refer to this License; and\ +\ +(b) You must include a copy of this License with every copy of Source\ +Code of Covered Code and documentation You distribute or Externally\ +Deploy, and You may not offer or impose any terms on such Source Code\ +that alter or restrict this License or the recipients' rights\ +hereunder, except as permitted under Section 6.\ +\ +2.2 Modified Code. You may modify Covered Code and use, reproduce,\ +display, perform, internally distribute within Your organization, and\ +Externally Deploy Your Modifications and Covered Code, for commercial\ +or non-commercial purposes, provided that in each instance You also\ +meet all of these conditions:\ +\ +(a) You must satisfy all the conditions of Section 2.1 with respect to\ +the Source Code of the Covered Code;\ +\ +(b) You must duplicate, to the extent it does not already exist, the\ +notice in Exhibit A in each file of the Source Code of all Your\ +Modifications, and cause the modified files to carry prominent notices\ +stating that You changed the files and the date of any change; and\ +\ +(c) If You Externally Deploy Your Modifications, You must make\ +Source Code of all Your Externally Deployed Modifications either\ +available to those to whom You have Externally Deployed Your\ +Modifications, or publicly available. Source Code of Your Externally\ +Deployed Modifications must be released under the terms set forth in\ +this License, including the license grants set forth in Section 3\ +below, for as long as you Externally Deploy the Covered Code or twelve\ +(12) months from the date of initial External Deployment, whichever is\ +longer. You should preferably distribute the Source Code of Your\ +Externally Deployed Modifications electronically (e.g. download from a\ +web site).\ +\ +2.3 Distribution of Executable Versions. In addition, if You\ +Externally Deploy Covered Code (Original Code and/or Modifications) in\ +object code, executable form only, You must include a prominent\ +notice, in the code itself as well as in related documentation,\ +stating that Source Code of the Covered Code is available under the\ +terms of this License with information on how and where to obtain such\ +Source Code.\ +\ +2.4 Third Party Rights. You expressly acknowledge and agree that\ +although Apple and each Contributor grants the licenses to their\ +respective portions of the Covered Code set forth herein, no\ +assurances are provided by Apple or any Contributor that the Covered\ +Code does not infringe the patent or other intellectual property\ +rights of any other entity. Apple and each Contributor disclaim any\ +liability to You for claims brought by any other entity based on\ +infringement of intellectual property rights or otherwise. As a\ +condition to exercising the rights and licenses granted hereunder, You\ +hereby assume sole responsibility to secure any other intellectual\ +property rights needed, if any. For example, if a third party patent\ +license is required to allow You to distribute the Covered Code, it is\ +Your responsibility to acquire that license before distributing the\ +Covered Code.\ +\ +3. Your Grants. In consideration of, and as a condition to, the\ +licenses granted to You under this License, You hereby grant to any\ +person or entity receiving or distributing Covered Code under this\ +License a non-exclusive, royalty-free, perpetual, irrevocable license,\ +under Your Applicable Patent Rights and other intellectual property\ +rights (other than patent) owned or controlled by You, to use,\ +reproduce, display, perform, modify, sublicense, distribute and\ +Externally Deploy Your Modifications of the same scope and extent as\ +Apple's licenses under Sections 2.1 and 2.2 above.\ +\ +4. Larger Works. You may create a Larger Work by combining Covered\ +Code with other code not governed by the terms of this License and\ +distribute the Larger Work as a single product. In each such instance,\ +You must make sure the requirements of this License are fulfilled for\ +the Covered Code or any portion thereof.\ +\ +5. Limitations on Patent License. Except as expressly stated in\ +Section 2, no other patent rights, express or implied, are granted by\ +Apple herein. Modifications and/or Larger Works may require additional\ +patent licenses from Apple which Apple may grant in its sole\ +discretion.\ +\ +6. Additional Terms. You may choose to offer, and to charge a fee for,\ +warranty, support, indemnity or liability obligations and/or other\ +rights consistent with the scope of the license granted herein\ +("Additional Terms") to one or more recipients of Covered Code.\ +However, You may do so only on Your own behalf and as Your sole\ +responsibility, and not on behalf of Apple or any Contributor. You\ +must obtain the recipient's agreement that any such Additional Terms\ +are offered by You alone, and You hereby agree to indemnify, defend\ +and hold Apple and every Contributor harmless for any liability\ +incurred by or claims asserted against Apple or such Contributor by\ +reason of any such Additional Terms.\ +\ +7. Versions of the License. Apple may publish revised and/or new\ +versions of this License from time to time. Each version will be given\ +a distinguishing version number. Once Original Code has been published\ +under a particular version of this License, You may continue to use it\ +under the terms of that version. You may also choose to use such\ +Original Code under the terms of any subsequent version of this\ +License published by Apple. No one other than Apple has the right to\ +modify the terms applicable to Covered Code created under this\ +License.\ +\ +8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in\ +part pre-release, untested, or not fully tested works. The Covered\ +Code may contain errors that could cause failures or loss of data, and\ +may be incomplete or contain inaccuracies. You expressly acknowledge\ +and agree that use of the Covered Code, or any portion thereof, is at\ +Your sole and entire risk. THE COVERED CODE IS PROVIDED "AS IS" AND\ +WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND\ +APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE\ +PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM\ +ALL WARRANTIES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT\ +NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF\ +MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR\ +PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THIRD\ +PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST\ +INTERFERENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE\ +FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,\ +THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERRUPTED OR\ +ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO\ +ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE\ +AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.\ +You acknowledge that the Covered Code is not intended for use in the\ +operation of nuclear facilities, aircraft navigation, communication\ +systems, or air traffic control machines in which case the failure of\ +the Covered Code could lead to death, personal injury, or severe\ +physical or environmental damage.\ +\ +9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO\ +EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,\ +SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING\ +TO THIS LICENSE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR\ +ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,\ +TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF\ +APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\ +DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY\ +REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF\ +INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY\ +TO YOU. In no event shall Apple's total liability to You for all\ +damages (other than as may be required by applicable law) under this\ +License exceed the amount of fifty dollars ($50.00).\ +\ +10. Trademarks. This License does not grant any rights to use the\ +trademarks or trade names "Apple", "Apple Computer", "Mac", "Mac OS",\ +"QuickTime", "QuickTime Streaming Server" or any other trademarks,\ +service marks, logos or trade names belonging to Apple (collectively\ +"Apple Marks") or to any trademark, service mark, logo or trade name\ +belonging to any Contributor. You agree not to use any Apple Marks in\ +or as part of the name of products derived from the Original Code or\ +to endorse or promote products derived from the Original Code other\ +than as expressly permitted by and in strict compliance at all times\ +with Apple's third party trademark usage guidelines which are posted\ +at http://www.apple.com/legal/guidelinesfor3rdparties.html.\ +\ +11. Ownership. Subject to the licenses granted under this License,\ +each Contributor retains all rights, title and interest in and to any\ +Modifications made by such Contributor. Apple retains all rights,\ +title and interest in and to the Original Code and any Modifications\ +made by or on behalf of Apple ("Apple Modifications"), and such Apple\ +Modifications will not be automatically subject to this License. Apple\ +may, at its sole discretion, choose to license such Apple\ +Modifications under this License, or on different terms from those\ +contained in this License or may choose not to license them at all.\ +\ +12. Termination.\ +\ +12.1 Termination. This License and the rights granted hereunder will\ +terminate:\ +\ +(a) automatically without notice from Apple if You fail to comply with\ +any term(s) of this License and fail to cure such breach within 30\ +days of becoming aware of such breach;\ +\ +(b) immediately in the event of the circumstances described in Section\ +13.5(b); or\ +\ +(c) automatically without notice from Apple if You, at any time during\ +the term of this License, commence an action for patent infringement\ +against Apple; provided that Apple did not first commence\ +an action for patent infringement against You in that instance.\ +\ +12.2 Effect of Termination. Upon termination, You agree to immediately\ +stop any further use, reproduction, modification, sublicensing and\ +distribution of the Covered Code. All sublicenses to the Covered Code\ +which have been properly granted prior to termination shall survive\ +any termination of this License. Provisions which, by their nature,\ +should remain in effect beyond the termination of this License shall\ +survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,\ +12.2 and 13. No party will be liable to any other for compensation,\ +indemnity or damages of any sort solely as a result of terminating\ +this License in accordance with its terms, and termination of this\ +License will be without prejudice to any other right or remedy of\ +any party.\ +\ +13. Miscellaneous.\ +\ +13.1 Government End Users. The Covered Code is a "commercial item" as\ +defined in FAR 2.101. Government software and technical data rights in\ +the Covered Code include only those rights customarily provided to the\ +public as defined in this License. This customary commercial license\ +in technical data and software is provided in accordance with FAR\ +12.211 (Technical Data) and 12.212 (Computer Software) and, for\ +Department of Defense purchases, DFAR 252.227-7015 (Technical Data --\ +Commercial Items) and 227.7202-3 (Rights in Commercial Computer\ +Software or Computer Software Documentation). Accordingly, all U.S.\ +Government End Users acquire Covered Code with only those rights set\ +forth herein.\ +\ +13.2 Relationship of Parties. This License will not be construed as\ +creating an agency, partnership, joint venture or any other form of\ +legal association between or among You, Apple or any Contributor, and\ +You will not represent to the contrary, whether expressly, by\ +implication, appearance or otherwise.\ +\ +13.3 Independent Development. Nothing in this License will impair\ +Apple's right to acquire, license, develop, have others develop for\ +it, market and/or distribute technology or products that perform the\ +same or similar functions as, or otherwise compete with,\ +Modifications, Larger Works, technology or products that You may\ +develop, produce, market or distribute.\ +\ +13.4 Waiver; Construction. Failure by Apple or any Contributor to\ +enforce any provision of this License will not be deemed a waiver of\ +future enforcement of that or any other provision. Any law or\ +regulation which provides that the language of a contract shall be\ +construed against the drafter will not apply to this License.\ +\ +13.5 Severability. (a) If for any reason a court of competent\ +jurisdiction finds any provision of this License, or portion thereof,\ +to be unenforceable, that provision of the License will be enforced to\ +the maximum extent permissible so as to effect the economic benefits\ +and intent of the parties, and the remainder of this License will\ +continue in full force and effect. (b) Notwithstanding the foregoing,\ +if applicable law prohibits or restricts You from fully and/or\ +specifically complying with Sections 2 and/or 3 or prevents the\ +enforceability of either of those Sections, this License will\ +immediately terminate and You must immediately discontinue any use of\ +the Covered Code and destroy all copies of it that are in your\ +possession or control.\ +\ +13.6 Dispute Resolution. Any litigation or other dispute resolution\ +between You and Apple relating to this License shall take place in the\ +Northern District of California, and You and Apple hereby consent to\ +the personal jurisdiction of, and venue in, the state and federal\ +courts within that District with respect to this License. The\ +application of the United Nations Convention on Contracts for the\ +International Sale of Goods is expressly excluded.\ +\ +13.7 Entire Agreement; Governing Law. This License constitutes the\ +entire agreement between the parties with respect to the subject\ +matter hereof. This License shall be governed by the laws of the\ +United States and the State of California, except that body of\ +California law concerning conflicts of law.\ +\ +Where You are located in the province of Quebec, Canada, the following\ +clause applies: The parties hereby confirm that they have requested\ +that this License and all related documents be drafted in English. Les\ +parties ont exige que le present contrat et tous les documents\ +connexes soient rediges en anglais.\ +\ +EXHIBIT A.\ +\ +"Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights\ +Reserved.\ +\ +This file contains Original Code and/or Modifications of Original Code\ +as defined in and that are subject to the Apple Public Source License\ +Version 2.0 (the 'License'). You may not use this file except in\ +compliance with the License. Please obtain a copy of the License at\ +http://www.opensource.apple.com/apsl/ and read it before using this\ +file.\ +\ +The Original Code and all software distributed under the License are\ +distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\ +EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\ +INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\ +FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\ +Please see the License for the specific language governing rights and\ +limitations under the License." } \ No newline at end of file Index: branches/JrCs/package/bin/po4a/po4a-normalize =================================================================== --- branches/JrCs/package/bin/po4a/po4a-normalize (revision 0) +++ branches/JrCs/package/bin/po4a/po4a-normalize (revision 1843) @@ -0,0 +1,181 @@ +#! /usr/bin/env perl +eval 'exec perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + +# po4a-normalize -- normalize documentation files +# +# Copyright 2002-2012 by SPI, inc. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of GPL (see COPYING). + +=encoding UTF-8 + +=head1 NAME + +po4a-normalize - normalize a documentation file by parsing it in po4a, and writing it back + +=head1 SYNOPSIS + +B B<-f> I I + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +The B script is a debugging tool used to make sure that +po4a don't change the document when it's not supposed to. Only use it if +you're developing a new module, or if you doubt the sanity of the tools. + +The generated document will be written to F while the +generated PO file will be written to F. No way to change +that ;) + +=head1 OPTIONS + +=over 4 + +=item B<-o>, B<--option> + +Extra option(s) to pass to the format plugin. Specify each option in the +'IB<=>I' format. See the documentation of each plugin for more +information about the valid options and their meanings. + +=item B<-b>, B<--blank> + +Create an blank translated document. +The generated translated document will be generated assuming all messages +are translated by a space or new line. + +This is useful to check what parts of the document cannot be translated. + +=item B<-h>, B<--help> + +Show a short help message. + +=item B<--help-format> + +List the documentation formats understood by po4a. + +=item B<-f>, B<--format> + +Format of the documentation you want to handle. Use the B<--help-format> +option to see the list of available formats. + +=item B<-M>, B<--master-charset> + +Charset of the file containing the document to translate. + +=item B<-V>, B<--version> + +Display the version of the script and exit. + +=back + +=head1 SEE ALSO + +L, +L, +L, +L + +=head1 AUTHORS + + Denis Barbier + Nicolas François + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002-2012 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +use 5.006; +use strict; +use warnings; + +use Locale::Po4a::Chooser; +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + +use Getopt::Long qw(GetOptions); + +use Pod::Usage qw(pod2usage); + +Locale::Po4a::Common::textdomain('po4a'); + +sub show_version { + Locale::Po4a::Common::show_version("po4a-normalize"); + exit 0; +} + +my ($blank,$help_fmt,$help,$type,$debug,$verbose,@options); +my ($mastchar); +Getopt::Long::Configure('no_auto_abbrev','no_ignore_case'); +GetOptions( + 'help|h' => \$help, + 'help-format' => \$help_fmt, + 'format|f=s' => \$type, + + 'blank|b' => \$blank, + + 'master-charset|M=s' => \$mastchar, + + 'option|o=s' => \@options, + + 'verbose|v' => \$verbose, + 'debug|d' => \$debug, + 'version|V' => \&show_version +) or pod2usage(); + +$help && pod2usage (-verbose => 1, -exitval => 0); +$help_fmt && Locale::Po4a::Chooser::list(0); +pod2usage () unless scalar @ARGV == 1; + +my %options = ( + "verbose" => $verbose, + "debug" => $debug); +foreach (@options) { + if (m/^([^=]*)=(.*)$/) { + $options{$1}="$2"; + } else { + $options{$_}=1; + } +} + +my $parser=Locale::Po4a::Chooser::new($type,%options); + +my $filename = shift || pod2usage(1); +$filename eq '-' || -e $filename || die wrap_msg(gettext("File %s does not exist."), $filename); + +$parser->read($filename); +$parser->{TT}{utf_mode} = 1; +$parser->{TT}{file_in_charset} = $mastchar; +$parser->parse(); +if ($blank) { + foreach my $msgid (keys %{$parser->{TT}{po_out}{po}}) { + if ($msgid =~ m/\n$/s) { + $parser->{TT}{po_out}{po}{$msgid}{'msgstr'} = "\n"; + } else { + $parser->{TT}{po_out}{po}{$msgid}{'msgstr'} = " "; + } + } + my $empty_po = $parser->{TT}{po_out}; + $parser = Locale::Po4a::Chooser::new($type,%options); + $parser->{TT}{po_in} = $empty_po; + $parser->read($filename); + $parser->{TT}{utf_mode} = 1; + $parser->{TT}{file_in_charset} = $mastchar; + $parser->parse(); +} +$parser->write('po4a-normalize.output'); +$parser->writepo('po4a-normalize.po'); + +__END__ + Property changes on: branches/JrCs/package/bin/po4a/po4a-normalize ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/bin/po4a/po4a-updatepo =================================================================== --- branches/JrCs/package/bin/po4a/po4a-updatepo (revision 0) +++ branches/JrCs/package/bin/po4a/po4a-updatepo (revision 1843) @@ -0,0 +1,274 @@ +#! /usr/bin/env perl +eval 'exec perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + +# pod-updatepo -- update the PO translation of POD data. +# +# Copyright 2002-2012 by SPI, inc. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of GPL (see COPYING). + +=encoding UTF-8 + +=head1 NAME + +po4a-updatepo - update the translation (in PO format) of documentation + +=head1 SYNOPSIS + +B B<-f> I (B<-m> I)+ (B<-p> I)+ + +(I are the outputs, all others are inputs) + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +The B script is in charge of updating PO files to make +them reflect the changes made to the original documentation file. For that, +it converts the documentation file to a POT file, and call L +on this new POT and on the provided PO files. + +It is possible to give more than one PO file (if you want to update several +languages at once), and several documentation files (if you want to store +the translations of several documents in the same PO file). + +If the master document has non-ASCII characters, it will convert the PO files +to UTF-8 (if they weren't already), in order to allow non-standard characters +in a culture independent way. + +=head1 OPTIONS + +=over 4 + +=item B<-f>, B<--format> + +Format of the documentation you want to handle. Use the B<--help-format> +option to see the list of available formats. + +=item B<-m>, B<--master> + +File(s) containing the master document to translate. + +=item B<-M>, B<--master-charset> + +Charset of the files containing the document to translate. Note that all +files must have the same charset. + +=item B<-p>, B<--po> + +PO file(s) to update. If these files do not exist, they are created by +B. + +=item B<-o>, B<--option> + +Extra option(s) to pass to the format plugin and other po4a internal module. +Specify each option in the 'IB<=>I' format. See the documentation of +each plugin for more information about the valid options and their meanings. + +=item B<--no-previous> + +This option removes B<--previous> from the options passed to B. +This permits to support versions of B earlier than 0.16. + +=item B<--previous> + +This option adds B<--previous> to the options passed to B. +It requires B 0.16 or later, and is activated by default. + +=item B<--msgmerge-opt> I + +Extra options for B. + +=item B<-h>, B<--help> + +Show a short help message. + +=item B<--help-format> + +List the documentation formats understood by po4a. + +=item B<-V>, B<--version> + +Display the version of the script and exit. + +=item B<-v>, B<--verbose> + +Increase the verbosity of the program. + +=item B<-d>, B<--debug> + +Output some debugging information. + +=item B<--msgid-bugs-address> I + +Set the report address for msgid bugs. By default, the created POT files +have no Report-Msgid-Bugs-To fields. + +=item B<--copyright-holder> I + +Set the copyright holder in the POT header. The default value is +"Free Software Foundation, Inc." + +=item B<--package-name> I + +Set the package name for the POT header. The default is "PACKAGE". + +=item B<--package-version> I + +Set the package version for the POT header. The default is "VERSION". + +=back + +=head1 SEE ALSO + +L, +L, +L, +L + +=head1 AUTHORS + + Denis Barbier + Nicolas François + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002-2012 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +use 5.006; +use strict; +use warnings; + +use Getopt::Long qw(GetOptions); +use Locale::Po4a::Po; + +use Locale::Po4a::Chooser; +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + +use Pod::Usage qw(pod2usage); + +use File::Temp; + +Locale::Po4a::Common::textdomain('po4a'); + +sub show_version { + Locale::Po4a::Common::show_version("po4a-updatepo"); + exit 0; +} + + +# init commandline parser +Getopt::Long::config('bundling', 'no_getopt_compat', 'no_auto_abbrev'); + +# Parse our options +my (@masterfiles,@pofiles); +my ($help,$help_fmt,$verbose,$debug,$format,@options); +my ($copyright_holder, $msgid_bugs_address, $package_name, $package_version); +my $mastchar; +my $previous; +my $noprevious; +my $msgmerge_opt = ""; +GetOptions('help|h' => \$help, + 'help-format' => \$help_fmt, + + 'master|m=s' => \@masterfiles, + 'po|p=s' => \@pofiles, + 'format|f=s' => \$format, + + 'master-charset|M=s' => \$mastchar, + + 'option|o=s' => \@options, + + 'no-previous' => \$noprevious, + 'previous' => \$previous, + 'msgmerge-opt=s' => \$msgmerge_opt, + 'copyright-holder=s' => \$copyright_holder, + 'msgid-bugs-address=s'=> \$msgid_bugs_address, + 'package-name=s' => \$package_name, + 'package-version=s' => \$package_version, + + 'verbose|v' => \$verbose, + 'debug|d' => \$debug, + 'version|V' => \&show_version) + or pod2usage(); + +$help && pod2usage (-verbose => 1, -exitval => 0); +$help_fmt && Locale::Po4a::Chooser::list(0); +pod2usage () if scalar @masterfiles < 1 || scalar @pofiles < 1; + +$msgmerge_opt .= " --previous" unless $noprevious; + +my %options = ( + "verbose" => $verbose, + "debug" => $debug, + "copyright-holder" => $copyright_holder, + "msgid-bugs-address" => $msgid_bugs_address, + "package-name" => $package_name, + "package-version" => $package_version); + +foreach (@options) { + if (m/^([^=]*)=(.*)$/) { + $options{$1}="$2"; + } else { + $options{$_}=1; + } +} + +# parser +my ($doc)=Locale::Po4a::Chooser::new($format,%options); + +map { -e $_ || die wrap_msg(gettext("File %s does not exist."), $_) } @masterfiles; +map { die wrap_msg(gettext("po4a-updatepo can't take the input PO from stdin.")) + if $_ eq '-' && !-e '-'} @pofiles; + +my ($pot_filename); +(undef,$pot_filename)=File::Temp->tempfile("po4a-updatepoXXXX", + DIR => "/tmp", + SUFFIX => ".pot", + OPEN => 0, + UNLINK => 0) + or die wrap_msg(gettext("Can't create a temporary POT file: %s"), $!); + + +print STDERR wrap_msg(gettext("Parse input files... ")) if $verbose; + +$doc->{TT}{utf_mode} = 1; + +$doc->process('file_in_name' => \@masterfiles, + 'file_in_charset' => $mastchar, + 'po_out_name' => $pot_filename, + 'debug' => $debug, + 'verbose' => $verbose); + +print STDERR wrap_msg(gettext("done.")) if $verbose; + + +while (my $po_filename=shift @pofiles) { + if (-e $po_filename) { + print STDERR wrap_msg(gettext("Updating %s:"), $po_filename) + if $verbose; + my $cmd = "msgmerge $msgmerge_opt -U $po_filename $pot_filename"; + system ($cmd) == 0 + or die wrap_msg(gettext("Error while running msgmerge: %s"), $!); + system "msgfmt --statistics -v -o /dev/null $po_filename" + if $verbose; + } else { + print STDERR wrap_msg(gettext("Creating %s:"), $po_filename) + if $verbose; + system ("cp",$pot_filename,$po_filename) == 0 + or die wrap_msg(gettext("Error while copying the PO file: %s"), $!); + } +} + +unlink($pot_filename); Property changes on: branches/JrCs/package/bin/po4a/po4a-updatepo ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/bin/po4a/po4a =================================================================== --- branches/JrCs/package/bin/po4a/po4a (revision 0) +++ branches/JrCs/package/bin/po4a/po4a (revision 1843) @@ -0,0 +1,1584 @@ +#! /usr/bin/env perl +eval 'exec perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + +# po4a -- Update both the po files and translated documents in one shoot +# +# Copyright 2002-2012 by SPI, inc. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of GPL (see COPYING). + +=encoding UTF-8 + +=head1 NAME + +po4a - update both the PO files and translated documents in one shot + +=head1 SYNOPSIS + +B [I] I + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +The B program is useful if you want to avoid calling +L, L, and L in +complex Makefiles when you have multiple files to translate, different +format, or need to specify different options for different documents. + +=head1 Table of content + +This document is organized as follow: + +=head2 DESCRIPTION + +=head2 INTRODUCTION + +=head2 CONFIGURATION FILE SYNTAX + +=head3 Specifying the template languages + +=head3 Specifying the paths to translator inputs + +=head3 Autodetection of the paths and languages + +=head3 Specifying the documents to translate + +=head3 Specifying options for the modules + +=head3 Specifying aliases + +=head3 Split mode + +=head2 OPTIONS + +=head2 EXAMPLE + +=head2 SHORTCOMINGS + +=head2 SEE ALSO + +=head2 AUTHORS + +=head2 COPYRIGHT AND LICENSE + +=head3 + +=head1 INTRODUCTION + +The B program is in charge of updating both the PO files (to sync +them to the original documents) and the translated documents (to sync +them to the PO files). The main point is to make the use of po4a easier +without having to remember of the command line options. + +It also allows you to mix documents having different formats into the same +POT file so that you can have only one such file per project. + +This behaviour can be mimicked by the other tools of the po4a suite (for +example with Makefiles), but it is rather difficult to do, and exhausting to +redo the same complicated Makefiles for each project using po4a. + +The dataflow can be summarized as follow. Any changes to the master document +will be reflected in the PO files, and all changes to the PO files (either +manual or caused by previous step) will be reflected in translation +documents. + + master document --> PO files --> translations + +The dataflow cannot be inversed in this tool, and changes in translations +are overwritten by the content of the PO files. As a matter of fact, this +tool cannot be used to convert existing translations to the po4a system. For +that task, please refer to L. + +=head1 CONFIGURATION FILE SYNTAX + +The (mandatory) argument is the path to the configuration file to use. +Its syntax aims at being simple and close to the configuration files used +by the intl-tools projects. + +Comments in this files are noted by the char '#'. It comments everything +until the end of the line. Lines can be continued by escaping the end of line. +All non blank lines must begin with a [] command, followed by its arguments. +(sound difficult said that way, but it is rather easy, I hope ;) + +=head2 Specifying the template languages + +B It is recommended to use B<[po_directory]> rather than B<[po4a_langs]> +and B<[po4a_paths]>. +See section B below. + +This is an optional command that can simplify the whole config file, and will +make it more scalable. You have to specify a list of the languages in which +you want to translate the documents. This is as simple as: + + [po4a_langs] fr de + +This will enable you to expand B<$lang> to all the specified languages in the rest +of the config file. + +=head2 Specifying the paths to translator inputs + +B It is recommended to use B<[po_directory]> rather than B<[po4a_langs]> +and B<[po4a_paths]>. +See section B below. + +First, you have to specify where the translator input files (i.e. the files +used by translators to do their job) are located. It can be done by such a line: + + [po4a_paths] doc/l10n/project.doc.pot \ + fr:doc/l10n/fr.po de:doc/l10n/de.po + +The command is thus B<[po4a_paths]>. The first argument is the path to the POT +file to use. All subsequent arguments are of the self-explanatory form: + + : + +If you've defined the template languages, you can rewrite the line above this +way: + + [po4a_paths] doc/l10n/project.doc.pot $lang:doc/l10n/$lang.po + +You can also use B<$master> to refer to the document basename. In this case, +B will use a split mode: one POT and one PO (for each language) will +be created for each document specified in the B configuration file. +See the B section. + + [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po + +=head2 Autodetection of the paths and languages + +Another command can be used to specify the name of a directory where the +PO and POT files are located. +When it is used, B will detect the POT file as the only F<*.pot> file +from the specified directory. +B will also use the list of F<*.po> files to define the list of +languages (by stripping out the extension). +These languages will be used for the substitution of the B<$lang> variable in +the rest of the configuration file. + +This command should not be used together with the B<[po4a_langs]> or B<[po4a_paths]> +commands. + +When using this command, you have to create an empty POT file on the first +invocation of B to let it know the name of the POT file. + + [po_directory] po4a/po/ + +=head2 Specifying the documents to translate + +You now naturally have to specify which documents are translated, their +format, and where to put the translations. It can be made by such lines: + + [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \ + de:doc/de/mein_kram.sgml + [type: pod] script fr:doc/fr/script.1 de:doc/de/script.1 \ + add_fr:doc/l10n/script.fr.add + +This should be rather self-explanatory also. Note that in the second case, +F is an addendum to add to the French version of this document. +Please refer to L for more information about the addenda. + +More formally, the format is: + + [type: ] (:)* \ + (add_:*)* + +If there is no modifier, I is a path to an addendum. +Modifiers are + +=over 2 + +=item B + +Include I if this file does exist, otherwise do nothing. + +=item B<@> + +I is not a regular addendum but a file containg a list of +addenda, one by line. Each addendum may be preceded by modifiers. + +=item B + +I is discarded, it is not loaded and will not be loaded by +any further addendum specification. + +=back + +If you've defined the template languages, you can rewrite the line above this +way: + + [type: pod] script $lang:doc/$lang/script.1 \ + add_fr:doc/l10n/script.fr.add + +If all the languages had addenda with similar paths, you could also write +something like: + + [type: pod] script $lang:doc/$lang/script.1 \ + add_$lang:doc/l10n/script.$lang.add + +=head2 Specifying options for the modules + +B accepts options that will be passed to the module. These options are +module specific and are specified with the B<-o> switch. + +If you need a specific option for one of the document you want to +translate, you can also specify it in the configuration file. Options are +introduced by the B keyword. The argument of the B keyword must be +quoted with double quotes if it contains a space (e.g. if you specify +multiple options, or an option with an argument). +You can also specify options that will only apply to a specific language +by using the BI keyword. + +Here is an example: + [type:man] data-05/test2_man.1 $lang:tmp/test2_man.$lang.1 \ + opt:"-k 75" opt_it:"-L UTF-8" opt_fr:-v + +Arguments may contain spaces if you use single quotes or escaped double +quotes: + [po4a_alias:man] man opt:"-o \"mdoc=NAME,SEE ALSO\" -k 20" + +If you want to specify the same options for many documents, you may want +to use an alias (see the B section below). + +You can also set options for all the documents specified in the +configuration file: + [options] opt:"..." opt_fr:"..." + +=head2 Specifying aliases + +If you must specify the same options for multiple files, you may be +interested in defining a module alias. This can be done this way: + +[po4a_alias:test] man opt:"-k 21" opt_es:"-o debug=splitargs" + +This defines a module alias named B, based on the B module, with +the B<-k 21> applied to all the languages and with B<-o debug=splitargs> +applied to the Spanish translation. + +This module alias can then be use like a regular module: + +[type:test] data-05/test2_man.1 $lang:tmp/test2_man.$lang.1 \ + opt_it:"-L UTF-8" opt_fr:-v + +Note that you can specify additional options on a per file basis. + +=head2 Split mode + +The split mode is used when B<$master> is used in the B<[po4a_paths]> line. + +When the split mode is used, a temporary big POT and temporary big POs +are used. This permits to share the translations between all the POs. + +If two POs have different translations for the same string, B will mark +this string as fuzzy and will submit both translations in all the POs +which contain this string. Then, when a translator updates the translation +and removes the fuzzy tag in one PO, the translation of this string will +be updated in every POs automatically. + +=head1 OPTIONS + +=over 4 + +=item B<-k>, B<--keep> + +Minimal threshold for translation percentage to keep (i.e. write) the +resulting file (default: 80). I.e. by default, files have to be translated +at at least 80% to get written. + +=item B<-h>, B<--help> + +Show a short help message. + +=item B<-M>, B<--master-charset> + +Charset of the files containing the documents to translate. Note that all +master documents must use the same charset for now. This is a known +limitation, and we are working on solving this. + +=item B<-L>, B<--localized-charset> + +Charset of the files containing the localized documents. Note that all +translated documents will use the same charset for now. This is a known +limitation, and we are working on solving this. + +=item B<-A>, B<--addendum-charset> + +Charset of the addenda. Note that all the addenda should be in the same +charset. + +=item B<-V>, B<--version> + +Display the version of the script and exit. + +=item B<-v>, B<--verbose> + +Increase the verbosity of the program. + +=item B<-q>, B<--quiet> + +Decrease the verbosity of the program. + +=item B<-d>, B<--debug> + +Output some debugging information. + +=item B<-o>, B<--option> + +Extra option(s) to pass to the format plugin. Specify each option in the +'IB<=>I' format. See the documentation of each plugin for more +information about the valid options and their meanings. + +=item B<-f>, B<--force> + +Always generate the POT and PO files, even if B considers it is +not necessary. + +The default behavior (when B<--force> is not specified) is the following: + +=over + +If the POT file already exists, it is regenerated if a master document +or the configuration file is more recent. +The POT file is also written in a temporary document and B verifies +that the changes are really needed. + +Also, a translation is regenerated only if its master document, the PO file, +one of its addenda or the configuration file is more recent. +To avoid trying to regenerate translations which do not pass the threshold +test (see B<--keep>), a file with the F<.po4a-stamp> extension can be created +(see B<--stamp>). + +=back + +If a master document includes files, you should use the B<--force> flag +because the modification time of these included files are not taken into +account. + +The PO files are always re-generated based on the POT with B. + +=item B<--stamp> + +Tells B to create stamp files when a translation is not generated +because it does not reach the threshold. These stamp files are named +according to the expected translated document, with the F<.po4a-stamp> +extension. + +Note: This only activates the creation of the F<.po4a-stamp> files. The stamp +files are always used if they exist, and they are removed with +B<--rm-translations> or when the file is finally translated. + +=item B<--no-translations> + +Do not generate the translated documents, only update the POT and PO files. + +=item B<--rm-translations> + +Remove the translated files (implies B<--no-translations>). + +=item B<--no-backups> + +This flag does nothing since 0.41, and may be removed +in later releases. + +=item B<--rm-backups> + +This flag does nothing since 0.41, and may be removed +in later releases. + +=item B<--translate-only> I + +Translate only the specified file. It may be useful to speed up +processing if a configuration file contains a lot of files. Note that this +option does not update PO and POT files. +This option can be used multiple times. + +=item B<--variable> IB<=>I + +Define a variable that will be expanded in the B configuration file. +Every occurrence of I<$(var)> will be replaced by I. +This option can be used multiple times. + +=item B<--msgid-bugs-address> I + +Set the report address for msgid bugs. By default, the created POT files +have no Report-Msgid-Bugs-To fields. + +=item B<--copyright-holder> I + +Set the copyright holder in the POT header. The default value is +"Free Software Foundation, Inc." + +=item B<--package-name> I + +Set the package name for the POT header. The default is "PACKAGE". + +=item B<--package-version> I + +Set the package version for the POT header. The default is "VERSION". + +=item B<--msgmerge-opt> I + +Extra options for B. + +Note: B<$lang> will be extended to the current language. + +=item B<--no-previous> + +This option removes B<--previous> from the options passed to B. +This permits to support versions of B earlier than 0.16. + +=item B<--previous> + +This option adds B<--previous> to the options passed to B. +It requires B 0.16 or later, and is activated by default. + +=item B<--srcdir> I + +Set the base directory for all input documents specified in the B +configuration file. + +=item B<--destdir> I + +Set the base directory for all the output documents specified in the B +configuration file. + +=back + +=head2 EXAMPLE + +Let's assume you maintain a program named B which has a man page F +which naturally is maintained in English only. Now you as the upstream or +downstream maintainer want to create and maintain the translation. +First you need to create the POT file necessary to send to translators +using L. + +So for our case we would call + + cd man && po4a-gettextize -f man -m foo.1 -p foo.pot + +You would then send this file to the appropriate language lists or offer +it for download somewhere on your website. + +Now let's assume you received three translations before your next release: +F (including an addendum F), F and F. +Since you don't want to change your F(s) whenever a new translation +arrives you can use B with an appropriate configuration file in your F. +Let's call it F. In our example it would look like the following: + + [po_directory] man/po4a/po/ + + [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \ + add_$lang:?man/po4a/add_$lang/$lang.add opt:"-k 80" + +In this example we assume that your generated man pages (and all PO and addenda +files) should be stored in F (respectively in F and +F) below the current directory. In our example +the F directory would include F, F and F, +and the F directory would include F. + +Note the use of the modifier B as only the German translation (F) is +accompanied by an addendum. + +To actually build the translated man pages you would then (once!) add the +following line in the B target of the appropriate F: + + po4a po4a.cfg + +Once this is set up you don't need to touch the F when a new +translation arrives, i.e. if the French team sends you F and F +then you simply drop them respectively in F and +F and the next time the programm is build the +French translation is automatically build as well in F. + +Note that you still need an appropriate target to install localized manual +pages with English ones. + +Finally if you do not store generated files into your version control system, +you will need a line in your B target as well: + -rm -rf man/translated + +=head1 SHORTCOMINGS + +=over 4 + +=item + +Duplicates some code with the BI<*> programs. + +=back + +Patch welcome ;) + +=head1 SEE ALSO + +L, +L, +L, +L, +L, +L, +L + +=head1 AUTHORS + + Denis Barbier + Nicolas François + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002-2012 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +use 5.006; +use strict; +use warnings; + +use Getopt::Long qw(GetOptions); + +use Locale::Po4a::Chooser; +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; +use Locale::Po4a::Po qw(move_po_if_needed); + +use Pod::Usage qw(pod2usage); + +use File::Temp; +use File::Basename; +use File::Copy; +use File::Spec; +use Fcntl; # sysopen flags +use Cwd; # cwd + +Locale::Po4a::Common::textdomain('po4a'); + + +sub show_version { + Locale::Po4a::Common::show_version("po4a"); + exit 0; +} + +# keep the command line arguments +my @ORIGINAL_ARGV = @ARGV; + +# Parse the options provided on the command line, or in argument +sub get_options { + if (defined $_[0]) { + @ARGV = @_; + } else { + @ARGV = @ORIGINAL_ARGV; + } + + # temporary array for GetOptions + my @verbose = (); + my @options = (); + my @variables = (); + my $previous; + my $noprevious; + + my %opts = ( + "help" => 0, + "type" => "", + "debug" => 0, + "verbose" => 0, + "quiet" => 0, + "no-translations" => 0, + "rm-translations" => 0, + "no-backups" => 0, + "rm-backups" => 0, + "threshold" => 80, + "mastchar" => "", + "locchar" => "", + "addchar" => "", + "options" => {"verbose" => 0, "debug" => 0}, + "variables" => {}, + "partial" => [], + "copyright-holder"=> undef, + "msgid-bugs-address"=> undef, + "package-name" => undef, + "package-version" => undef, + "msgmerge-opt" => "", + "srcdir" => undef, + "destdir" => undef, + "calldir" => cwd() + ); + Getopt::Long::config('bundling', 'no_getopt_compat', 'no_auto_abbrev'); + GetOptions( + 'help|h' => \$opts{"help"}, + + 'master-charset|M=s' => \$opts{"mastchar"}, + 'localized-charset|L=s' => \$opts{"locchar"}, + 'addendum-charset|A=s' => \$opts{"addchar"}, + + 'verbose|v' => \@verbose, + 'debug|d' => \$opts{"debug"}, + 'force|f' => \$opts{"force"}, + 'stamp' => \$opts{"stamp"}, + 'quiet|q' => \$opts{"quiet"}, + 'keep|k=s' => \$opts{"threshold"}, + 'no-translations' => \$opts{"no-translations"}, + 'rm-translations' => \$opts{"rm-translations"}, + 'translate-only=s' => \@{$opts{"partial"}}, + 'no-backups' => \$opts{"no-backups"}, + 'rm-backups' => \$opts{"rm-backups"}, + 'version|V' => \&show_version, + 'option|o=s' => \@options, + 'variable=s' => \@variables, + 'copyright-holder=s' => \$opts{"copyright-holder"}, + 'msgid-bugs-address=s' => \$opts{"msgid-bugs-address"}, + 'package-name=s' => \$opts{"package-name"}, + 'package-version=s' => \$opts{"package-version"}, + 'no-previous' => \$noprevious, + 'previous' => \$previous, + 'msgmerge-opt=s' => \$opts{"msgmerge-opt"}, + 'srcdir=s' => \$opts{"srcdir"}, + 'destdir=s' => \$opts{"destdir"} + ) or pod2usage(); + + $opts{"verbose"} = scalar @verbose; + $opts{"verbose"} = 0 if $opts{"quiet"}; + $opts{"verbose"} ||= 1 if $opts{"debug"}; + $opts{"msgmerge-opt"} .= " --previous" unless $noprevious; + + # options to transmit to the modules + $opts{"options"} = { + "verbose" => $opts{"verbose"}, + "debug" => $opts{"debug"} + }; + foreach (@options) { + if (m/^([^=]*)=(.*)$/) { + $opts{"options"}{$1}="$2"; + } else { + $opts{"options"}{$_}=1; + } + } + + foreach (@variables) { + if (m/^([^=]*)=(.*)$/) { + $opts{"variables"}{$1}="$2"; + } + } + + # The rm- options imply the no- + $opts{"no-translations"} = 1 if $opts{"rm-translations"}; + + if (defined $opts{"srcdir"} and not -d $opts{"srcdir"}) { + die wrap_msg(gettext("Invalid %s. Directory %s does not exist."), + "srcdir", $opts{"srcdir"}); + } + if (defined $opts{"destdir"} and not -d $opts{"destdir"}) { + die wrap_msg(gettext("Invalid %s. Directory %s does not exist."), + "destdir", $opts{"destdir"}); + } + + return %opts; +} + +# Parse a config line and extract the parameters that correspond to options. +# These options are appended to the options provided in argument (as a +# reference to an hash). The options are sorted by category in this hash. +# The categories are: global and the various languages. +sub parse_config_options { + my $ref = shift; # a line reference for the die messages + my $line = shift; # the line to parse + my $orig_line = $line; # keep the original line for die messages + my $options = shift; # reference to an hash of options + + while (defined $line and $line !~ m/^\s*$/) { + if ($line =~ m/^\s*opt(?:_(.+?))?:\s*(.+?)\s*$/) { + my $lang = $1; + $line = $2; + my $opt = ""; + if ($line =~ m/^\s*"(.+?(?{$lang}) { + $options->{$lang} = $opt; + } else { + $options->{$lang} .= " $opt"; + } + } else { + last; + } + } + + $line = "" unless defined $line; + return $line; +} + +my %po4a_opts = get_options(@ARGV); +# Argument check +$po4a_opts{"help"} && pod2usage (-verbose => 1, -exitval => 0); + +sub run_cmd { + my $cmd = shift; + print $cmd."\n" if $po4a_opts{"debug"}; + + my $out = qx/$cmd 2>&1/; + print $out if ($po4a_opts{"verbose"}); + unless ($? == 0) { + my $err = ""; + if ($? == -1) { + $err = sprintf(gettext("failed to execute '%s': %s."), + $cmd, $!); + } elsif ($? & 127) { + if ($? & 128) { + $err = sprintf(gettext("'%s' died with signal %d, ". + "with coredump."), + $cmd, $? & 127); + } else { + $err = sprintf(gettext("'%s' died with signal %d, ". + "without coredump."), + $cmd, $? & 127); + } + } else { + $err = sprintf(gettext("'%s' exited with value %d."), + $cmd, $? >> 8); + } + + die wrap_msg(gettext("Error: %s"), $err); + } +} + +my $config_file= shift(@ARGV) || pod2usage(); +# Check file existence +-e $config_file || die wrap_msg(gettext("File %s does not exist."), $config_file); + +# Parse the config file +my (@langs); +my (%aliases); # module aliases ([po4a_alias:...] +my ($pot_filename) = ""; +my (%po_filename); # po_files: '$lang'=>'$path' +my (%document); # '$master'=> {'format'=>'$format'; '$lang'=>'$path'; 'add_$lang'=>('$path','$path') } +my $doc_count = 0; +my %partial = ( 'master' => {}, 'files' => {}, 'lang' => {} ); +open CONFIG,"<","$config_file" or die wrap_msg(gettext("Can't open %s: %s"), $config_file, $!); +my ($line,$nb) = ("",0); +while () { + $nb++; + s/#.*//; + $line.=$_; + $line =~ s/\t/ /g; + $line =~ s/ +/ /g; + while ($line =~ m/\$\((\w+)\)/) { + if (defined $po4a_opts{"variables"}{$1}) { + $line =~ s/\$\((\Q$1\E)\)/$po4a_opts{"variables"}{$1}/g; + } else { + die wrap_ref_mod("$config_file:$nb", "", + gettext("Unknown variable: %s"), $1); + } + } + $line =~ s/^ //; + $line =~ s/ $//; + chomp($line); + next if ($line =~ s/\\$//); + next unless ($line =~ /\S/); + + my $args = $line; + die wrap_ref_mod("$config_file:$nb", "", gettext("Syntax error: %s"), $line) + unless ($args =~ s/^\[([^\]]*)\] *//); + my $cmd = $1; + my $main = ($args=~ s/^(\S+) *// ? $1 : ""); + + if (@langs) { + # Expand the $lang templates + my($args2) = ""; + foreach my $arg (split(/ /,$args)) { + if ( $arg =~ /\$lang\b/ ) { + # Expand for all the langs + foreach my $lang (@langs) { + my($arg2) = $arg; + $arg2 =~ s/\$lang\b/$lang/g; + $args2 .= $arg2." "; + } + } else { + # Leave the argument as is + $args2 .= $arg." "; + } + } + $args = $args2; + } + + print "cmd=[$cmd]; main=$main; args=\"$args\"\n" if $po4a_opts{"debug"}; + + if ($cmd eq "po4a_paths") { + die wrap_ref_mod("$config_file:$nb", "", + gettext("'%s' redeclared"), "po4a_path") + if (length $pot_filename); + $pot_filename = $main; + foreach my $arg (split(/ /,$args)) { + die wrap_ref_mod("$config_file:$nb", "", + gettext("Unparsable argument '%s'."), $arg) + unless ($arg =~ /^([^:]*):(.*)/); + $po_filename{$1}=$2 if $1 ne '$lang'; + } + + } elsif ($cmd eq "po4a_langs") { + die wrap_ref_mod("$config_file:$nb", "", + gettext("'%s' redeclared"), "po4a_langs") + if (@langs); + @langs = split(/ /,$main." ".$args); + + } elsif ($cmd eq "po_directory") { + die wrap_ref_mod("$config_file:$nb", "", + gettext("The list of languages cannot be set twice.")) + if scalar @langs; + die wrap_ref_mod("$config_file:$nb", "", + gettext("The POT file cannot be set twice.")) + if length $pot_filename; + + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + my $po_directory = $main; + die wrap_ref_mod("$config_file:$nb", "", + gettext("'%s' is not a directory"), $po_directory) + unless (-d $po_directory); + opendir PO_DIR, $po_directory + or die wrap_ref_mod("$config_file:$nb", "", + gettext("Cannot list the '%s' directory"), $po_directory); + + foreach my $f (readdir PO_DIR) { + next unless -f "$po_directory/$f"; + if ($f =~ m/^(.*)\.po$/) { + push @langs, $1; + $po_filename{$1} = "$po_directory/$f"; + } + if ($f =~ m/\.pot$/) { + if (length $pot_filename) { + die wrap_ref_mod("$config_file:$nb", "", + gettext("too many POT files: %s %s"), + $pot_filename, "$po_directory/$f"); + } else { + $pot_filename = "$po_directory/$f"; + } + } + } + + if (not @langs) { + warn wrap_ref_mod("$config_file:$nb", "", + gettext("no PO files found in %s"), $po_directory); + } + + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + } elsif ($cmd =~ m/type: *(.*)/) { + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + + if (defined $document{$main}{'format'}) { + warn wrap_ref_mod("$config_file:$nb", "", + gettext("The '%s' master file was specified earlier in the ". + "configuration file. This may cause problems with ". + "options."), $main) + unless ($po4a_opts{"quiet"}); + } elsif (not -e $main) { + die wrap_ref_mod("$config_file:$nb", "", + gettext("The '%s' master file does not exist."), $main); + } + if (scalar @{$po4a_opts{"partial"}}) { + foreach my $file (@{$po4a_opts{"partial"}}) { + if ($args =~ m/(\S+):\Q$file\E\b/) { + $partial{'lang'}{$1} = 1; + $partial{'master'}{$main} = 1; + $partial{'files'}{$file} = 1; + last; + } + } + } + $document{$main}{'format'} = $1; + $document{$main}{'pos'} = $doc_count; + $doc_count++; + + # Options + my %options; + # 1. Use the global options ([opt] ...) + %options = %{$document{''}{'options'}} + if defined $document{''}{'options'}; + + # 2. Merge the alias options + if (defined $aliases{$1}) { + $document{$main}{'format'} = $aliases{$1}{"module"}; + if (defined $aliases{$1}{"options"}) { + %options = %{$aliases{$1}{"options"}}; # XXX not a merge, but overwrite + } + } + + # 3. If this file was already specified, reuse the previous + # options (no merge) + %options = %{$document{$main}{'options'}} + if defined $document{$main}{'options'}; + + # 4. Merge the document specific options + # separate the end of the line, which contains options. + # Something more clever could be done to allow options in the + # middle of a line. + if ($args =~ m/^(.*?) +(opt(_.+)?:(.*))$/) { + $args = $1; + $args = "" unless defined $args; + $args .= " ".parse_config_options("$config_file:$nb", + $2, \%options); + } + %{$document{$main}{'options'}} = %options; + + my %discarded = (); + my @remaining_args = split(/ /,$args); + while (@remaining_args) { + my $arg = shift(@remaining_args); + die wrap_ref_mod("$config_file:$nb", "", + gettext("Unparsable argument '%s' (%s)."), $arg, $line) + unless ($arg =~ /^([^:]*):(.*)/); + my ($lang,$trans)=($1,$2); + die wrap_ref_mod("$config_file:$nb", "", + gettext("The translated and master file are the same.")) + if ($main eq $trans); + + if ($lang =~ /^add_/) { + my $modifiers; + $trans =~ s/^([@!?]+)// and $modifiers = $1; + next if defined($discarded{$trans}); + if (defined $modifiers) { + if ($modifiers =~ m/!/) { + $discarded{$trans} = 1; + next; + } + next if ($modifiers =~ m/\?/ and not -e $trans); + if ($modifiers =~ m/@/) { + open LIST,"<","$trans" or die wrap_msg(gettext("Can't open %s: %s"), $trans, $!); + my @new_list = (); + while() { + chomp; + s/\s+$//; + next if length($_) == 0 or $_ =~ m/^\s*#/; + while (m/\$\((\w+)\)/) { + if (defined $po4a_opts{"variables"}{$1}) { + s/\$\((\Q$1\E)\)/$po4a_opts{"variables"}{$1}/g; + } else { + die wrap_ref_mod("$config_file:$nb", "", + gettext("Unknown variable: %s"), $1); + } + } + push(@new_list, "$lang:$_"); + } + close LIST; + unshift(@remaining_args, @new_list); + } else { + push @{$document{$main}{$lang}},$trans; + } + } else { + push @{$document{$main}{$lang}},$trans; + } + } else { + die wrap_ref_mod("$config_file:$nb", "", + gettext("Translation of %s in %s redefined"), $main, $lang) + if (defined $document{$main}{$lang}); + $document{$main}{$lang} = $trans; + } + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + } elsif ($cmd =~ m/po4a_alias: *(.*)/) { + my $name = $1; + my %alias = (); + $alias{"module"} = $main; + my %options; + $args = parse_config_options("$config_file:$nb", $args, \%options); + %{$alias{"options"}} = %options; + %{$aliases{$name}} = %alias; + } elsif ($cmd eq "options") { + my %options; + my $o = $line; + $o =~ s/.*?\[options\] +//; + if (defined $document{''}{"options"}) { + %options = %{$document{''}{"options"}}; + } + parse_config_options("$config_file:$nb", + $o, + \%options); + %{$document{''}{"options"}} = %options; + } else { + die wrap_ref_mod("$config_file:$nb", "", + gettext("Unparsable command '%s'."), $cmd); + } + + $line = ""; +} +close CONFIG; # don't care about error here +die wrap_msg(gettext("po4a_paths not declared. Dunno where to find the POT and PO files")) + unless (length $pot_filename); + +sub split_opts { + my $options = shift; + my $options_orig = $options; + my @opts = (); + $options =~ s/\\"/"/g; + while (length $options) { + my $o = ""; + while (length $options and $options !~ /^ /s) { + if ( ($options =~ m/^(["'])/) + and ($options !~ m/^(["'])(?:\\.|(?!\1)[^\\])*\1/)) { + die wrap_msg(gettext("Cannot parse option line (missing >%s '$path' +my %split_pot; # pot_files: '$master' => '$path' + +# make a big pot +my $update_pot_file = 0; +if ($pot_filename =~ m/\$master/) { + print wrap_msg(gettext("Split mode, creating a temporary POT")."\n") + if $po4a_opts{"verbose"}; + if (scalar @{$po4a_opts{"partial"}}) { + print wrap_msg(gettext("Disabling --translate-only option, it is not supported in split mode")."\n"); + $po4a_opts{"partial"} = []; + } + foreach my $master (keys %document) { + next if ($master eq ''); + my $m = basename $master; + my $master_pot = $pot_filename; + $master_pot =~ s/\$master/$m/g; + $split_pot{$master} = $master_pot; + } + # The POT needs to be generated anyway. + $update_pot_file = 1; + $po4a_opts{"split"} = 1; +} else { + if (scalar @{$po4a_opts{"partial"}}) { + # Skip documents not specified, strings are read directly from POT file + foreach my $master (keys %document) { + next unless length $master; + delete $document{$master} unless exists $partial{'master'}{$master}; + } + # Do not read PO files if no file is processed for this language + foreach my $lang (keys %po_filename) { + delete $po_filename{$lang} unless exists $partial{'lang'}{$lang}; + } + } + +if (not scalar @{$po4a_opts{"partial"}}) { +chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); +if (-e $pot_filename) { + my $modtime = (stat $pot_filename)[9]; + # The POT needs to be re-generated if a master document is more recent + # than the POT. + foreach my $master (keys %document) { + next if ($master eq ''); + if ((stat $master)[9] >= $modtime) { + $update_pot_file = 1; + last; + } + } + + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + if ((stat $config_file)[9] > $modtime) { + # The configuration file was modified after the POT. + # Maybe a new document, or new options + $update_pot_file = 1; + } + + if ($po4a_opts{"force"}) { + $update_pot_file = 1; + } + + print wrap_msg(gettext("Updating %s:"), $pot_filename) + if ($update_pot_file and $po4a_opts{"verbose"}); +} else { + print wrap_msg(gettext("Creating %s:"), $pot_filename) + if $po4a_opts{"verbose"}; + $update_pot_file = 1; +} +chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); +} +} + +my %Po_opts; +if (defined $po4a_opts{'msgid-bugs-address'}) { + $Po_opts{'msgid-bugs-address'} = $po4a_opts{'msgid-bugs-address'}; +} +if (defined $po4a_opts{'copyright-holder'}) { + $Po_opts{'copyright-holder'} = $po4a_opts{'copyright-holder'}; +} +if (defined $po4a_opts{'package-name'}) { + $Po_opts{'package-name'} = $po4a_opts{'package-name'}; +} +if (defined $po4a_opts{'package-version'}) { + $Po_opts{'package-version'} = $po4a_opts{'package-version'}; +} +if ($update_pot_file) { + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + my $potfile=Locale::Po4a::Po->new(\%Po_opts); + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + foreach my $master (sort { return -1 if ($a eq ""); + return 1 if ($b eq ""); + $document{$a}{'pos'} <=> $document{$b}{'pos'} + } keys %document) { + next if ($master eq ''); + my %file_opts = %po4a_opts; + my $options = $document{$master}{"options"}{"global"}; + if (defined $options) { + %file_opts = get_options(@ORIGINAL_ARGV, + split_opts($options)); + } + my $doc=Locale::Po4a::Chooser::new($document{$master}{'format'}, + %{$file_opts{"options"}}); + + + # We ensure that the generated po will be in utf-8 if the input document + # isn't entirely in ascii + $doc->{TT}{utf_mode} = 1; + + $doc->setpoout($potfile); + my @file_in_name; + push @file_in_name, $master; + $doc->process('file_in_name' => \@file_in_name, + 'file_in_charset' => $file_opts{"mastchar"}, + 'srcdir' => $po4a_opts{"srcdir"}, + 'destdir' => $po4a_opts{"destdir"}, + 'calldir' => $po4a_opts{"calldir"}); + $potfile = $doc->getpoout(); + } + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + if ($po4a_opts{"split"}) { + (undef,$pot_filename)=File::Temp->tempfile("po4aXXXX", + DIR => "/tmp", + SUFFIX => ".pot", + OPEN => 0, + UNLINK => 0) + or die wrap_msg(gettext("Can't create a temporary POT file: %s"), + $!); + $potfile->write($pot_filename); + } else { + if ($po4a_opts{"force"}) { + $potfile->write($pot_filename); + } else { + $potfile->write_if_needed($pot_filename); + } + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + + print wrap_msg(gettext(" (%d entries)"), $potfile->count_entries()) + unless ($po4a_opts{"quiet"}); +} + +if ($po4a_opts{"split"}) { + # Generate a .pot for each document + foreach my $master (keys %document) { + next if ($master eq ''); + my $tmp_file; + # Create a temporary POT, and check if the old one needs to be + # updated (unless --force was specified). + unless ($po4a_opts{"force"}) { + (undef,$tmp_file)=File::Temp->tempfile("po4aXXXX", + DIR => "/tmp", + SUFFIX => ".pot", + OPEN => 0, + UNLINK => 0) + or die wrap_msg(gettext("Can't create a temporary POT file: %s"), + $!); + } + + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + my $dir = dirname($split_pot{$master}); + if (not -d $dir) { + mkdir $dir + or die wrap_msg(gettext("Can't create directory '%s': %s"), + $dir, $!); + } + my $cmd = "msggrep -N '$master' -o ". + ($po4a_opts{"force"}?$split_pot{$master}:$tmp_file). + " $pot_filename"; + run_cmd($cmd); + + unless ($po4a_opts{"force"}) { + move_po_if_needed($tmp_file, $split_pot{$master}, 0); + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + } + # Generate a complete .po + foreach my $lang (sort keys %po_filename) { + my $tmp_bigpo; + (undef,$tmp_bigpo)=File::Temp->tempfile("po4aXXXX", + DIR => "/tmp", + SUFFIX => "-$lang.po", + OPEN => 0, + UNLINK => 0) + or die wrap_msg(gettext("Can't create a temporary PO file: %s"), + $!); + my $cmd_cat = ""; + foreach my $master (keys %document) { + next if ($master eq ''); + my $m = basename $master; + my $master_po = $po_filename{$lang}; + $master_po =~ s/\$master/$m/g; + if (-e "$master_po") { + $cmd_cat .= " $master_po"; + } + $split_po{$lang}{$master} = $master_po; + } + if (length $cmd_cat) { + $cmd_cat = "msgcat -o $tmp_bigpo $cmd_cat"; + run_cmd($cmd_cat); + } + # We do not need to keep the original name with $master + $po_filename{$lang} = $tmp_bigpo; + } +} + +# update all po files +my $lang; +if (not scalar @{$po4a_opts{"partial"}}) { +foreach $lang (sort keys %po_filename) { + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + if (-e $po_filename{$lang}) { + print wrap_msg(gettext("Updating %s:")." ", $po_filename{$lang}) + if ($po4a_opts{"verbose"}); + my $msgmerge_opt = $po4a_opts{"msgmerge-opt"}; + $msgmerge_opt =~ s/\$lang\b/$lang/g if scalar @langs; + my $cmd = "msgmerge -U ".$po_filename{$lang}." $pot_filename ".$msgmerge_opt." --backup=none"; + run_cmd($cmd); + system "msgfmt --statistics -v -o /dev/null ".$po_filename{$lang} + if $po4a_opts{"verbose"}; + } else { + print wrap_msg(gettext("Creating %s:"), $po_filename{$lang}) + if $po4a_opts{"verbose"}; + my $cmd = "msginit -i $pot_filename --locale $lang -o ".$po_filename{$lang}." --no-translator"; + run_cmd($cmd); + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); +} +} + +if ($po4a_opts{"split"}) { + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + # We don't need the tmp big POT anymore + unlink($pot_filename); + + # Split the complete PO in multiple POs + foreach $lang (sort keys %po_filename) { + foreach my $master (keys %document) { + next if ($master eq ''); + my $tmp_file; + # Create a temporary PO, and check if the old one needs to be + # updated (unless --force was specified). + (undef,$tmp_file)=File::Temp->tempfile("po4aXXXX", + DIR => "/tmp", + SUFFIX => ".po", + OPEN => 0, + UNLINK => 0) + or die wrap_msg( + gettext("Can't create a temporary POT file: %s"), $!); + + my $cmd; + # Create an empty PO or copy the original PO header. + # This permits to keep the header. + if (-f $split_po{$lang}{$master}) { + $cmd = "msggrep --force-po -v -K -e '.'". + " -o ".$tmp_file. + " ".$split_po{$lang}{$master}; + } else { + $cmd = "msginit --no-translator -l ".$lang. + " -i ".$split_pot{$master}. + " -o ".$tmp_file; + } + run_cmd($cmd); + + # Update the PO according to the new POT and to the big PO + # (compendium). + $cmd = "msgmerge -U -C ".$po_filename{$lang}. + " --backup=none ".$po4a_opts{"msgmerge-opt"}. + " $tmp_file ".$split_pot{$master}; + run_cmd($cmd); + + my $dir = dirname($split_po{$lang}{$master}); + if (not -d $dir) { + mkdir $dir + or die wrap_msg(gettext("Can't create directory '%s': %s"), + $dir, $!); + } + unless ($po4a_opts{"force"}) { + move_po_if_needed($tmp_file, + $split_po{$lang}{$master}, + 0); + } else { + move $tmp_file, $split_po{$lang}{$master} + or die wrap_msg(dgettext("po4a", + "Can't move %s to %s: %s."), + $tmp_file, + $split_po{$lang}{$master}, + $!); + } + } + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); +} + +if (not $po4a_opts{"no-translations"}) { + # update all translations + + foreach $lang (sort keys %po_filename) { + # Read the $lang PO once, no options for the creation + my $po = Locale::Po4a::Po->new(); + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + $po->read($po_filename{$lang}); + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + + DOC: foreach my $master (sort { return -1 if ($a eq ""); + return 1 if ($b eq ""); + $document{$a}{'pos'} <=> + $document{$b}{'pos'} } keys %document) { + next if ($master eq ''); + next unless defined $document{$master}{$lang}; + if (scalar @{$po4a_opts{"partial"}}) { + next unless defined $partial{'files'}{$document{$master}{$lang}}; + } + + unless ($po4a_opts{"force"}) { + chdir $po4a_opts{"destdir"} + if (defined $po4a_opts{"destdir"}); + my $stampfile = $document{$master}{$lang}; + unless (-e $document{$master}{$lang}) { + $stampfile = $document{$master}{$lang}.".po4a-stamp"; + } + $stampfile = File::Spec->rel2abs($stampfile); + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"destdir"}); + + my @files = ($master, + $po_filename{$lang}, + File::Spec->rel2abs($config_file)); + if (defined $document{$master}{"add_$lang"}) { + push @files, @{$document{$master}{"add_$lang"}}; + } + + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + unless (is_older($stampfile, @files)) { + print wrap_msg(gettext("%s doesn't need to be updated."), + $document{$master}{$lang}) + if ($po4a_opts{"verbose"}); + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + next DOC; + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + } + + my %file_opts = %po4a_opts; + my $options = ""; + if (defined $document{$master}{"options"}{"global"}) { + $options .= $document{$master}{"options"}{"global"}; + } + # append the language options + if (defined $document{$master}{"options"}{$lang}) { + $options .= " ".$document{$master}{"options"}{$lang}; + } + if (defined $options) { + # also use the options provided on the command line + %file_opts = get_options(@ORIGINAL_ARGV, + split_opts($options)); + } + my $doc=Locale::Po4a::Chooser::new($document{$master}{'format'}, + %{$file_opts{"options"}}); + + my @file_in_name; + push @file_in_name, $master; + + # Reuse the already parsed PO, do not use the po_in_name + # option of process. + $doc->{TT}{po_in} = $po; + $doc->{TT}{po_in}->stats_clear(); + + $doc->process('file_in_name' => \@file_in_name, + 'file_out_name' => $document{$master}{$lang}, + 'file_in_charset' => $file_opts{"mastchar"}, + 'file_out_charset' => $file_opts{"locchar"}, + 'addendum_charset' => $file_opts{"addchar"}, + 'srcdir' => $po4a_opts{"srcdir"}, + 'destdir' => $po4a_opts{"destdir"}, + 'calldir' => $po4a_opts{"calldir"}); + + my ($percent,$hit,$queries) = $doc->stats(); + + if ($percent<$file_opts{"threshold"}) { + print wrap_msg(gettext("Discard %s (%s of %s strings; only %s%% translated; need %s%%)."), + $document{$master}{$lang}, $hit, $queries, + $percent, $file_opts{"threshold"}); + chdir $po4a_opts{"destdir"} + if (defined $po4a_opts{"destdir"}); + unlink($document{$master}{$lang}) if (-e $document{$master}{$lang}); + unless ($po4a_opts{"force"}) { + if ($po4a_opts{"stamp"}) { + touch($document{$master}{$lang}.".po4a-stamp"); + print wrap_msg(gettext("Timestamp %s created."), + $document{$master}{$lang}.".po4a-stamp") + if ($po4a_opts{"verbose"}); + } + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"destdir"}); + next DOC; + } + unless ($po4a_opts{"force"}) { + chdir $po4a_opts{"destdir"} + if (defined $po4a_opts{"destdir"}); + if (-e $document{$master}{$lang}.".po4a-stamp") { + unlink $document{$master}{$lang}.".po4a-stamp"; + print wrap_msg(gettext("Timestamp %s removed."), + $document{$master}{$lang}.".po4a-stamp") + if ($po4a_opts{"verbose"}); + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"destdir"}); + } + + if (defined ($document{$master}{"add_$lang"})) { + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + foreach my $add (@{$document{$master}{"add_$lang"}}) { + if ( !$doc->addendum($add) ) { + die wrap_msg(gettext("Addendum %s does NOT apply to %s (translation discarded)."), + $add, $document{$master}{$lang}); + chdir $po4a_opts{"destdir"} + if (defined $po4a_opts{"destdir"}); + unlink($document{$master}{$lang}) if (-e $document{$master}{$lang}); + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"destdir"}); + next DOC; + } + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); + } + if ($file_opts{"verbose"}) { + if ($percent == 100) { + print wrap_msg(gettext("%s is %s%% translated (%s strings)."), + $document{$master}{$lang}, $percent, $queries); + } else { + print wrap_msg(gettext("%s is %s%% translated (%s of %s strings)."), + $document{$master}{$lang}, $percent, $hit, $queries); + } + } + + chdir $po4a_opts{"destdir"} + if (defined $po4a_opts{"destdir"}); + $doc->write($document{$master}{$lang}); + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"destdir"}); + } + } +} + +if ($po4a_opts{"split"}) { + chdir $po4a_opts{"srcdir"} + if (defined $po4a_opts{"srcdir"}); + # We don't need the tmp big POs anymore + foreach $lang (keys %po_filename) { + unlink $po_filename{$lang}; + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"srcdir"}); +} + +if ($po4a_opts{"rm-translations"}) { + # Delete the translated documents + chdir $po4a_opts{"destdir"} + if (defined $po4a_opts{"destdir"}); + foreach $lang (keys %po_filename) { + foreach my $master (keys %document) { + next if ($master eq ''); + unlink $document{$master}{$lang}; + unlink $document{$master}{$lang}.".po4a-stamp"; + } + } + chdir $po4a_opts{"calldir"} + if (defined $po4a_opts{"destdir"}); +} + +sub touch { + my $file = shift; + if (-e $file) { + utime undef, undef, $file; + } else { + sysopen(FH,$file,O_WRONLY|O_CREAT|O_NONBLOCK|O_NOCTTY) + or croak("Can't create $file : $!"); + close FH or croak("Can't close $file : $!"); + } +} + +sub is_older { + my $file = shift; + my @files = @_; + return 1 unless (-e $file); + my $older = 0; + + my $modtime = (stat $file)[9]; + + for my $f (@files) { + if (-e $f and (stat $f)[9] > $modtime) { + $older = 1; + last; + } + } + + return $older; +} + +__END__ Property changes on: branches/JrCs/package/bin/po4a/po4a ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/bin/po4a/MANIFEST =================================================================== --- branches/JrCs/package/bin/po4a/MANIFEST (revision 0) +++ branches/JrCs/package/bin/po4a/MANIFEST (revision 1843) @@ -0,0 +1,333 @@ +MANIFEST This list of files (needed by ModuleBuild) +META.yml Module meta-data (added by ModuleBuild) +COPYING +changelog +Build.PL File processed to create the Build script +Po4aBuilder.pm The rules to build this module (for ModuleBuild) +README +README.maintainers +README.tests +README.translators +TODO +NEWS + +doc/addendum.ca +doc/addendum.es +doc/addendum.fr +doc/addendum.it +doc/addendum.ja +doc/addendum.pl +doc/addendum_man.es +doc/addendum_man.fr +doc/addendum_man.ja +doc/addendum_man.pl +doc/po4a.7.pod +doc/po4a-build.conf.5.pod +doc/po4a-runtime.7.pod +lib/Locale/Po4a/BibTeX.pm +lib/Locale/Po4a/Chooser.pm +lib/Locale/Po4a/Common.pm +lib/Locale/Po4a/Dia.pm +lib/Locale/Po4a/Docbook.pm +lib/Locale/Po4a/Guide.pm +lib/Locale/Po4a/Halibut.pm +lib/Locale/Po4a/Ini.pm +lib/Locale/Po4a/KernelHelp.pm +lib/Locale/Po4a/LaTeX.pm +lib/Locale/Po4a/Man.pm +lib/Locale/Po4a/Po.pm +lib/Locale/Po4a/Pod.pm +lib/Locale/Po4a/Sgml.pm +lib/Locale/Po4a/TeX.pm +lib/Locale/Po4a/Texinfo.pm +lib/Locale/Po4a/Text.pm +lib/Locale/Po4a/TransTractor.pm +lib/Locale/Po4a/Xhtml.pm +lib/Locale/Po4a/Xml.pm +lib/Locale/Po4a/Wml.pm + +po/bin/af.po +po/bin/bn.po +po/bin/ca.po +po/bin/cs.po +po/bin/da.po +po/bin/de.po +po/bin/eo.po +po/bin/es.po +po/bin/et.po +po/bin/eu.po +po/bin/fr.po +po/bin/he.po +po/bin/hr.po +po/bin/id.po +po/bin/ja.po +po/bin/it.po +po/bin/kn.po +po/bin/ko.po +po/bin/ku.po +po/bin/nb.po +po/bin/nl.po +po/bin/oc.po +po/bin/pl.po +po/bin/po4a.pot +po/bin/pt_BR.po +po/bin/pt.po +po/bin/ru.po +po/bin/sl.po +po/bin/sv.po +po/bin/uk.po +po/bin/uz.po +po/bin/vi.po +po/bin/zh_CN.po +po/bin/zh_HK.po +po/bin/POTFILES.in +po/bin/Makevars +po/bin/Makefile +po/bin/LINGUAS +po/pod/ca.po +po/pod/de.po +po/pod/es.po +po/pod/fr.po +po/pod/it.po +po/pod/ja.po +po/pod/pl.po +po/pod/po4a-pod.pot +po/pod/ru.po +po/pod.cfg + +# the binaries +po4a +po4a-gettextize +po4a-normalize +po4a-translate +po4a-updatepo +po4a-build.conf +share/po4a-build + +# support files +share/Makefile +share/Makevars-perl.example +share/Makevars-shell.example +share/po4a-build.make +share/README +share/po4a-build.conf.example +share/doc/po4a-build.xml +share/doc/po4aman-display-po.xml +share/doc/po4apod-display-po.xml + +# the random additional cool scripts +scripts/msguntypot +scripts/po4aman-display-po +scripts/po4apod-display-po + +# The tests +t/compare-po.pl + +t/01-classes.t + +t/02-TransTractors.t +t/data-02/man +t/data-02/man.fr +t/data-02/man.fr-normalized +t/data-02/man.po +t/data-02/man.po-empty +t/data-02/man.po-ok +t/data-02/pod +t/data-02/pod.fr +t/data-02/pod.fr-normalized +t/data-02/pod.po +t/data-02/pod.po-empty +t/data-02/pod.po-ok + +t/03-addendums.t +t/data-03/man +t/data-03/man.addendum1 +t/data-03/man.addendum2 +t/data-03/man.addendum3 +t/data-03/man.addendum4 +t/data-03/man.fr +t/data-03/man.fr.add1 +t/data-03/man.fr.add2 +t/data-03/man.fr.add3 +t/data-03/man.fr.add4 +t/data-03/man.po-ok + +t/04-charsets.t +t/data-04/ascii.po-ok +t/data-04/ascii-iso8859.po-ok +t/data-04/iso8859.po-ok +t/data-04/text-ascii.pod +t/data-04/text-iso8859.pod +t/data-04/text-iso8859_.pod +t/data-04/text-iso8859.pod-ok +t/data-04/trans.po +t/data-04/utf.po +t/data-04/utf.po-ok +t/data-04/utf.pod-ok + +t/10-discard-fuzzy.t +t/data-10/pod +t/data-10/pod.fr +t/data-10/pod.po + +t/11-plural.t +t/data-11/err1 +t/data-11/pod1 +t/data-11/pod1.fr +t/data-11/pod1.po +t/data-11/pod2 +t/data-11/pod2.fr +t/data-11/pod2.po +t/data-11/pod3 +t/data-11/pod3.fr +t/data-11/pod4 +t/data-11/pod4.fr + +t/20-sgml.t +t/data-20/text.xml +t/data-20/xml.po +t/data-20/test2-normalized.sgml +t/data-20/test2.pot +t/data-20/test2.sgml + +t/21-dia.t +t/data-21/extract.dia +t/data-21/extract.po-ok +t/data-21/transl.dia +t/data-21/transl.dia-ok +t/data-21/transl.po + +t/23-man.t +t/data-23/dot1 +t/data-23/dot1.fr +t/data-23/dot1.fr.po +t/data-23/dot1.pot +t/data-23/dot2 +t/data-23/dot2.err +t/data-23/dot3 +t/data-23/dot3.err +t/data-23/dot4 +t/data-23/dot4.err +t/data-23/dot5 +t/data-23/dot5.it +t/data-23/dot5.it.po +t/data-23/dot5.pot +t/data-23/escapes1 +t/data-23/escapes1.it +t/data-23/escapes1.it.po +t/data-23/escapes1.pot +t/data-23/fonts +t/data-23/fonts.en +t/data-23/fonts.en.po +t/data-23/fonts.pot +t/data-23/hyphens.1 +t/data-23/hyphens.translate.fr +t/data-23/hyphens.translate.fr.po +t/data-23/hyphens.translate.pot +t/data-23/hyphens.verbatim.fr +t/data-23/hyphens.verbatim.fr.po +t/data-23/hyphens.verbatim.pot +t/data-23/mdoc.1 +t/data-23/mdoc.fr +t/data-23/mdoc.fr.po +t/data-23/mdoc.pot +t/data-23/mixed1 +t/data-23/mixed1.fr +t/data-23/mixed2 +t/data-23/mixed2.fr +t/data-23/mixed3 +t/data-23/mixed3.fr +t/data-23/mixed4 +t/data-23/mixed4.fr +t/data-23/mixed.cfg +t/data-23/mixed.fr.po +t/data-23/mixed.pot +t/data-23/null +t/data-23/null.fr +t/data-23/null.fr.po +t/data-23/null.pot +t/data-23/quotes +t/data-23/quotes.fr +t/data-23/quotes.fr.po +t/data-23/quotes.pot +t/data-23/spaces +t/data-23/spaces.fr_latin1 +t/data-23/spaces.fr_latin1.po +t/data-23/spaces.fr_utf8 +t/data-23/spaces.fr_utf8.po +t/data-23/spaces.ja +t/data-23/spaces.ja.po +t/data-23/spaces.pot + +t/24-tex.t +t/data-24/simple-translate.out +t/data-24/simple.fr.po +t/data-24/simple-updatepo.out +t/data-24/simple.fr.tex +t/data-24/simple-gettextize.out +t/data-24/simple.pot +t/data-24/simple.tex + +t/25-xhtml.t +t/data-25/includessi.html +t/data-25/includessi_normalized.html +t/data-25/includessi.po +t/data-25/xhtml.html +t/data-25/xhtml_normalized.html +t/data-25/xhtml.po + +t/26-ini.t +t/data-26/test1.po +t/data-26/test1.ini + +t/27-xml.t +t/data-27/cdata.xml +t/data-27/cdata.po +t/data-27/general.xml +t/data-27/general.po +t/data-27/general-normalized.xml +t/data-27/comments.xml +t/data-27/comments.po +t/data-27/comments-normalized.xml +t/data-27/options.xml +t/data-27/options.po +t/data-27/options-normalized.xml + +t/28-msguntypot.t +t/data-28/test1.new.po +t/data-28/test1.new.pot +t/data-28/test1.old.pot +t/data-28/test1.po +t/data-28/test2.new.po +t/data-28/test2.new.pot +t/data-28/test2.old.pot +t/data-28/test2.po +t/data-28/test3.new.po +t/data-28/test3.new.pot +t/data-28/test3.old.pot +t/data-28/test3.po +t/data-28/test4.new.po +t/data-28/test4.new.pot +t/data-28/test4.old.pot +t/data-28/test4.po +t/data-28/test5.new.po +t/data-28/test5.new.pot +t/data-28/test5.old.pot +t/data-28/test5.po +t/data-28/test6.new.po +t/data-28/test6.new.pot +t/data-28/test6.old.pot +t/data-28/test6.po +t/data-28/test7.new.po +t/data-28/test7.new.pot +t/data-28/test7.old.pot +t/data-28/test7.po +t/data-28/test8.new.po +t/data-28/test8.new.pot +t/data-28/test8.old.pot +t/data-28/test8.po + +t/29-wml.t +t/data-29/general-normalized.wml +t/data-29/general.po +t/data-29/general.wml Index: branches/JrCs/package/bin/po4a/README.maintainers =================================================================== --- branches/JrCs/package/bin/po4a/README.maintainers (revision 0) +++ branches/JrCs/package/bin/po4a/README.maintainers (revision 1843) @@ -0,0 +1,140 @@ +This document provides some general rules to deploy a translation process +that will ease the work of maintainers (upstream and distribution +maintainers) and translators (or translation teams). + + +Translators usually fetch a POT (for a new translation) or retrieve the current +PO for their language, then they translate the untranslated strings and +update the translation of the strings marked as fuzzy. + + +Updating files +-------------- + +Translators need to know if a PO has to be updated: + * they can verify the POs in the version control system or in the + distributed archives/packages + * they can be informed by the translation teams, which automatically + check the status of the POs in various packages. +We want to avoid translators to be notified by a user reporting that +some strings are not translated even if the PO contains neither untranslated nor +fuzzy string. + + +Thus it is important to ensure that the POTs are up-to-date with the +original documents and that the POs contain the same strings as the +POTs. + + 1. Upstream maintainers should update the POTs according to the original + documents and update the POs according to these up-to-date POTs when they + distribute an archive. + + 2. If the switch to po4a was done in a distribution, the source package + should also contain up-to-date translation materials. + + 3. If the documentation is patched by the distribution, the maintainer + must not forget to update the POTs and POs. + +It is important to ensure that the translation materials are updated +automatically. + + +Architecture +------------ + +A standardized architecture of the source tree will help the translation +teams when they try to detect the POTs that need to be updated. + +Thus we recommend the following architecture: + + / + /doc/ + /doc/en/ + /doc/en/ + /doc/po4a/ + /doc/po4a/add_/ + /doc/po4a/po4a.cfg + /doc/po4a/po/ + /doc/po4a/po/.pot + /doc/po4a/po/.po + /doc/translated// + +Or, if you want to avoid a big POT and split it according to the packages, +documents, formats, or subjects, you can use the following architecture: + + / + /doc/ + /doc/en/ + /doc/en/ + /doc/po4a/ + /doc/po4a/add_/ + /doc/po4a//po4a.cfg + /doc/po4a//po/ + /doc/po4a//po/.pot + /doc/po4a//po/.po + /doc/translated// + + +It is important to avoid a build failure if a generated +translation cannot be generated (the PO is too outdated, an addendum +cannot be applied, etc.). You should therefore use wildcards or test if the file +was generated in the 'install' or 'dist' rules + + +Examples +======== + +Using po4a upstream +------------------- +When po4a is used upstream, we recommend to run po4a in the 'dist' rule. +This will update the POT and POs, and will generate the translated documents. +These translated documents can be distributed in the source archive if the +maintainer don't want to add a build dependency on po4a. You should then +add an autoconf check on po4a. It will allow you to update the documentation +if po4a is available on your system. If po4a is not available, documents +will be distributed without being synced with the original version, but the +build process won't fail. + +It is important to distribute the POT and POs in the source archive. + +A typical dist rule could then be: + +dist: + po4a .cfg + ... + +If automake is used, the following could also be used. + +dist-hook: + po4a .cfg + ... + + +Using po4a in a distribution +---------------------------- +(Debian packaging is taken as an example, you will have to adapt this to +your distribution) +To ensure that the source of a Debian package contains only up-to-date POT +and POs, you should run po4a in the 'clean' rule +of debian/rules. The translated documents can be generated in the 'build' +(or 'build-indep') rule: + +clean: + # Update the POT and POs + cd <...>/po4a && po4a --no-translations .cfg + # Delete translated documentation + rm -rf <...>/translated + +build: + # Generate the translations + cd <...>/po4a && po4a .cfg + +However, you should try to avoid distribution-specific build systems, to +ensure the portability of your software. + +Or, if using po4a-build: + +dist: + # Update the POT and POs + po4a-build --pot-only -f po4a-build.conf + $(MAKE) -C po pot Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Html.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Html.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Html.pm (revision 1843) @@ -0,0 +1,218 @@ +#!/usr/bin/perl + +# Po4a::Html.pm +# +# extract and translate translatable strings from a HTML document. +# +# This code extracts plain text between HTML tags and some "alt" or +# "title" attributes. +# +# Copyright (c) 2003 by Laurent Hausermann +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Html - convert HTML documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Html is a module to help the translation of documentation in +the HTML format into other [human] languages. + +Please note that this module is not distributed with the main po4a archive +because we don't feel it mature enough for that. If you insist on using it +anyway, check it from the CVS out. + +=cut + +package Locale::Po4a::Html; +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(new initialize); + +use Locale::Po4a::TransTractor; + +use strict; +use warnings; + +use HTML::TokeParser; + +use File::Temp; + +sub initialize {} + +sub read { + my ($self,$filename)=@_; + push @{$self->{DOCPOD}{infile}}, $filename; + $self->Locale::Po4a::TransTractor::read($filename); +} + +sub parse { + my $self=shift; + map {$self->parse_file($_)} @{$self->{DOCPOD}{infile}}; +} + +# +# Parse file and translate it +# +sub parse_file { + my ($self,$filename)=@_; + my $stream = HTML::TokeParser->new($filename) + || die "Couldn't read HTML file $filename : $!"; + + $stream->unbroken_text( [1] ); + + my @type=(); + NEXT : while (my $token = $stream->get_token) { + if($token->[0] eq 'T') { + my $text = $token->[1]; + my ($pre_spaces) = ($text =~ /^(\s*)/); + my ($post_spaces) = ($text =~ /(\s*)$/); + $text = trim($text); + if (notranslation($text) == 1) { + $self->pushline( get_tag( $token ) ); + next NEXT; + } +# FIXME : it should be useful to encode characters +# in UTF8 in the po, but converting them in HTML::Entities +# in the doc_out, translate acts both way +# so we cant do that. +# use HTML::Entities (); +# $encoded = HTML::Entities::encode($a); +# $decoded = HTML::Entities::decode($a); + #print STDERR $token->[0]; + $self->pushline( $pre_spaces . $self->translate($text, + "FIXME:0", + (scalar @type ? $type[scalar @type-1]: "NOTYPE") + ) . $post_spaces, + 'wrap' => 1 + ); + next NEXT; + } elsif ($token->[0] eq 'S') { + push @type,$token->[1]; + my $text = get_tag( $token ); + my $tag = $token->[1]; +# TODO: It would be nice to support an option to specify these +# (e.g. a list of tag.attribute) + my @trans_attr = (( $tag eq 'img' ) || ( $tag eq 'input' ) || + ( $tag eq 'area' ) || ( $tag eq 'applet')) + ? qw/title alt/ : qw/title/; + my %attr = %{$token->[2]}; + for my $a (@trans_attr) { + my $content = $attr{$a}; + if (defined $content) { + $content = trim($content); + my $translated = $self->translate( + $content, + "FIXME:0", + "${tag}_$a" + ); + $attr{$a} = $translated; + } + } + my ($closing) = ( $text =~ /(\s*\/?>)/ ); + # reconstruct the tag from scratch + delete $attr{'/'}; # Parser thinks closing / in XHTML is an attribute + $text = "<$tag"; + $text .= " $_=\"$attr{$_}\"" foreach keys %attr; + $text .= $closing; + $self->pushline( $text ); + } elsif ($token->[0] eq 'E') { + pop @type; + $self->pushline( get_tag( $token ) ); + } else { + $self->pushline( get_tag( $token ) ); + } + } +} + +sub get_tag { + my $token = shift; + my $tag = ""; + + if ($token->[0] eq 'S') { + $tag = $token->[4]; + } + if ( ($token->[0] eq 'C') || + ($token->[0] eq 'D') || + ($token->[0] eq 'T') ) { + $tag = $token->[1]; + } + if ( ($token->[0] eq 'E') || + ($token->[0] eq 'PI') ) { + $tag = $token->[2]; + } + + return $tag; +} + +sub trim { + my $s=shift; + $s =~ s/\n/ /g; # remove \n in text + $s =~ s/\r/ /g; # remove \r in text + $s =~ s/\t/ /g; # remove tabulations + $s =~ s/\s+/ /g; # remove multiple spaces + $s =~ s/^\s*//g; # remove leading spaces + $s =~ s/\s*$//g; # remove trailing spaces + return $s; +} + +# +# This method says if a string must be +# translated or not. +# To be improved with more test or regexp +# Maybe there is a way to do this in TransTractor +# for example ::^ should not be translated +sub notranslation { + my $s=shift; + return 1 if ( ($s cmp "") == 0); + return 1 if ( ($s cmp "-") == 0); + return 1 if ( ($s cmp "::") == 0); + return 1 if ( ($s cmp ":") == 0); + return 1 if ( ($s cmp ".") == 0); + return 1 if ( ($s cmp "|") == 0); + return 1 if ( ($s cmp '"') == 0); + return 1 if ( ($s cmp "'") == 0); + # don't translate entries composed of one entity + return 1 if ($s =~ /^&[^;]*;$/); + +# don't translate entries with no letters +# (happens with e.g. Hello, world ) +# ^^ +# ", " doesn't need translation + return 1 unless $s =~ /\w/; + return 0; +} + +=head1 AUTHORS + + Laurent Hausermann + +=head1 COPYRIGHT AND LICENSE + +Laurent Hausermann + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Man.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Man.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Man.pm (revision 1843) @@ -0,0 +1,2493 @@ +#!/usr/bin/perl -w + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Man - convert manual pages from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Man is a module to help the translation of documentation in +the nroff format (the language of manual pages) into other [human] +languages. + +=head1 TRANSLATING WITH PO4A::MAN + +This module tries pretty hard to make translator's life easier. For that, +the text presented to translators isn't a verbatim copy of the text found +in the man page. Indeed, the cruder parts of the nroff format are hidden, so +that translators can't mess up with them. + +=head2 Text wrapping + +Unindented paragraphs are automatically rewrapped for the translator. This +can lead to some minor difference in the generated output, since the +rewrapping rules used by groff aren't very clear. For example, two spaces +after a parenthesis are sometimes preserved. + +Anyway, the difference will only be about the position of the extra spaces +in wrapped paragraph, and I think it's worth. + +=head2 Font specification + +The first change is about font change specifications. In nroff, there are +several ways to specify if a given word should be written in small, bold or +italics. In the text to translate, there is only one way, borrowed from the +POD (Perl online documentation) format: + +=over + +=item IEtextE -- italic text + +equivalent to \fItext\fP or ".I text" + +=item BEtextE -- bold text + +equivalent to \fBtext\fP or ".B text" + +=item REtextE -- roman text + +equivalent to \fRtext\fP + +=item CWEtextE -- constant width text + +equivalent to \f(CWtext\fP or ".CW text" + +=back + +Remark: The CW face is not available for all groff devices. It is not +recommended to use it. It is provided for your convenience. + +=head2 Automatic characters transliteration + +Po4a automatically transliterate some characters to ease the translation +or the review of the translation. +Here is the list of the transliterations: + +=over + +=item hyphens + +Hyphens (-) and minus signs (\-) in man pages are all transliterated +as simple dashes (-) in the PO file. Then all dash are transliterated into +roff minus signs (\-) when the translation is inserted into the output +document. + +Translators can force an hyphen by using the roff glyph '\[hy]' in their +translations. + +=item non-breaking spaces + +Translators can use non-breaking spaces in their translations. These +non-breaking spaces (0xA0 in latin1) will be transliterated into a roff +non-breaking space ('\ '). + +=item quotes transliterations + +`` and '' are respectively tranliterated into \*(lq and \*(rq. + +To avoid these transliterations, translators can insert a zero width roff +character (i.e., using `\&` or '\&' respectively). + +=back + +=head2 Putting 'E' and 'E' in translations + +Since these chars are used to delimit parts under font modification, you +can't use them verbatim. Use EEltE and EEgtE instead (as in +POD, one more time). + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +These are this module's particular options: + +=over + +=item B + +Activate debugging for some internal mechanisms of this module. +Use the source to see which parts can be debugged. + +=item B + +Increase verbosity. + +=item B + +This option permits to change the behavior of the module when it encounter +a .de, .ie or .if section. It can take the following values: + +=over + +=item I + +This is the default value. +The module will fail when a .de, .ie or .if section is encountered. + +=item I + +Indicates that the .de, .ie or .if sections must be copied as is +from the original to the translated document. + +=item I + +Indicates that the .de, .ie or .if sections will be proposed for the +translation. +You should only use this option if a translatable string is +contained in one of these section. Otherwise, I +should be preferred. + +=back + +=item B + +This option specifies that the file was generated, and that po4a should not +try to detect if the man pages was generated from another format. +This permits to use po4a on generated man pages. +This option does not take any argument. + +=item B + +This option is only useful for mdoc pages. + +It selects a stricter support of the mdoc format by telling po4a not to +translate the 'NAME' section. +mdoc pages whose 'NAME' section is translated won't generate any header or +footer. + +According to the groff_mdoc page, the NAME, SYNOPSIS and DESCRIPTION +sections are mandatory. +There are no known issues with translated SYNOPSIS or DESCRIPTION section, +but you can also specify these sections this way: + -o mdoc=NAME,SYNOPSIS,DESCRIPTION + +This mdoc issue can also be solved with an addendum like this one: + PO4A-HEADER:mode=before;position=^.Dd + .TH DOCUMENT_TITLE 1 "Month day, year" OS "Section Name" + + +=back + +The following options permit to specify the behavior of a new macro +(defined with a .de request), or of a macro not supported by po4a. +They take as argument a comma-separated list of macros. +For example: + + -o noarg=FO,OB,AR -o translate_joined=BA,ZQ,UX + +Note: if a macro is not supported by po4a and if you consider that it is a +standard roff macro, you should submit it to the po4a development team. + +=over + +=item B + +B indicates that this macro (at its arguments) don't have to +be translated. + +=item B + +B is like B, except that po4a will verify that no +argument is added to this macro. + +=item B + +B indicates that po4a must propose to translate the +arguments of the macro. + +=item B + +With B, the arguments will also be proposed for the +translation, except that each one will be translated separately. + +=item B + +This option takes as argument a list of comma-separated couples +I:I, where I and I are commands that delimit +the begin and end of a section that should not be rewrapped. + +Note: no test is done to ensure that an I command matches its +I command; any ending command stop the no_wrap mode. +If you have a I (respectively I) macro that has no I +(respectively I), you can specify an existing I (like fi) or +I (like nf) as a counterpart. +These macros (and their arguments) wont be translated. + +=item B + +This option specifies a list of comma-separated macros that must +not split the current paragraph. The string to translate will then contain +I.bar baz quxE quux>, where I is the command that +should be inlined, and I its arguments. + +=item B + +This option indicates how po4a should behave when an unknown macro is found. +By default, po4a fails with a warning. +It can take the following values: B (the default value), +B, B, B, or B (see above +for an explanation of these values). + +=back + +=head1 AUTHORING MAN PAGES COMPLIANT WITH PO4A::MAN + +This module is still very limited, and will always be, because it's not a +real nroff interpreter. It would be possible to do a real nroff +interpreter, to allow authors to use all the existing macros, or even to +define new ones in their pages, but we didn't want to. It would be too +difficult, and we thought it wasn't necessary. We do think that if +manpages' authors want to see their productions translated, they may have to +adapt to ease the work of translators. + +So, the man parser implemented in po4a have some known limitations we are +not really inclined to correct, and which will constitute some pitfalls +you'll have to avoid if you want to see translators taking care of your +documentation. + +=head2 Don't program in nroff + +nroff is a complete programming language, with macro definition, +conditionals and so on. Since this parser isn't a fully featured nroff +interpreter, it will fail on pages using these facilities (There are about +200 such pages on my box). + +=head2 Use the plain macro set + +There are still some macros which are not supported by po4a::man. This is +only because I failed to find any documentation about them. Here is the +list of unsupported macros used on my box. Note that this list isn't +exhaustive since the program fails on the first encountered unsupported +macro. If you have any information about some of these macros, I'll +happily add support for them. Because of these macros, about 250 pages on +my box are inaccessible to po4a::man. + + .. ." .AT .b .bank + .BE ..br .Bu .BUGS .BY + .ce .dbmmanage .do .En + .EP .EX .Fi .hw .i + .Id .l .LO .mf + .N .na .NF .nh .nl + .Nm .ns .NXR .OPTIONS .PB + .pp .PR .PRE .PU .REq + .RH .rn .S< .sh .SI + .splitfont .Sx .T .TF .The + .TT .UC .ul .Vb .zZ + +=head2 Hiding text from po4a + +Sometimes, the author knows that some parts are not translatable, and +should not be extracted by po4a. For example, an option may accept an +I argument, and I may also appear as the last item of a +list. In the first case, I should be not be translatable. And in +the second case, I should be translated. + +In such case, the author can avoid po4a to extract some strings, using +some special groff constructs: + + .if !'po4a'hide' .B other + +(this will require the B<-o groff_code=verbatim> option) + +A new macro can also be defined to automate this: + .de IR_untranslated + . IR \\$@ + .. + + .IR_untranslated \-q ", " \-\-quiet + +(this will require the options B<-o groff_code=verbatim> and +B<-o untranslated=IR_untranslated>; with this construct, the B<.if +!'po4a'hide'> conditional is not strictly needed since po4a will not parse +the internal of the macro definition) + +or using an alias: + .als IR_untranslated IR + + .IR_untranslated \-q ", " \-\-quiet + +(this will require the B<-o untranslated=als,IR_untranslated> option) + +=head2 Conclusion + +To summarise this section, keep simple, and don't try to be clever while +authoring your man pages. A lot of things are possible in nroff, and not +supported by this parser. For example, don't try to mess with \c to +interrupt the text processing (like 40 pages on my box do). Or, be sure to +put the macro arguments on the same line that the macro itself. I know that +it's valid in nroff, but would complicate too much the parser to be +handled. + +Of course, another possibility is to use another format, more translator +friendly (like POD using po4a::pod, or one of the XML familly like SGML), +but thanks to po4a::man it isn't needed anymore. That being said, if the +source format of your documentation is POD, or XML, it may be clever to +translate the source format and not this generated one. In most cases, +po4a::man will detect generated pages and issue a warning. It will even +refuse to process POD generated pages, because those pages are perfectly +handled by po4a::pod, and because their nroff counterpart defines a lot of +new macros I didn't want to write support for. On my box, 1432 of the 4323 +pages are generated from POD and will be ignored by po4a::man. + +In most cases, po4a::man will detect the problem and refuse to process the +page, issuing an adapted message. In some rare cases, the program will +complete without warning, but the output will be wrong. Such cases are +called "bugs" ;) If you encounter such case, be sure to report this, along +with a fix when possible... + +=head1 STATUS OF THIS MODULE + +This module can be used for most of the existing man pages. + +Some tests are regularly run on Linux boxes: + +=over 4 + +=item * + +one third of the pages are refused because they were generated from +another format supported by po4a (e.g. POD or SGML). + +=item * + +10% of the remaining pages are rejected with an error (e.g. a +groff macro is not supported). + +=item * + +Then, less than 1% of the pages are accepted silently by po4a, but with +significant issues (i.e. missing words, or new words inserted) + +=item * + +The other pages are usually handled without differences more important +than spacing differences or line rewrapped (font issues in less than 10% of +the processed pages). + +=back + +=head1 SEE ALSO + +L, +L, +L + +=head1 AUTHORS + + Denis Barbier + Nicolas François + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002-2008 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +package Locale::Po4a::Man; +use DynaLoader; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor DynaLoader); +@EXPORT = qw();# new initialize); + +# Try to use a C extension if present. +eval('bootstrap Locale::Po4a::Man "0.30"'); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + +use File::Spec; +use Getopt::Std; + +my %macro; # hash of known macro, with parsing sub. See end of this file +my %default_macro; # The default known macros, when no options are used. + +# A font start by \f and is followed either by +# [.*] - a font name within brackets (e.g. [P], [A_USER_FONT]) +# (.. - a parenthesis followed by two char (e.g. "(CW") +# . - a single char (e.g. B, I, R, P, 1, 2, 3, 4, etc.) +my $FONT_RE = "\\\\f(?:\\[[^\\]]*\\]|\\(..|[^\\(\\[])"; + +# Variable used to identify non breaking spaces. +# These non breaking spaces are used to ease the parsing, and a +# translator can use them in her translation (and they will be translated +# into the groff non-breaking space. +my $nbs; + +# Indicate if the page uses the mdoc macros +my $mdoc_mode = 0; + +my $unknown_macros = undef; + +######################### +#### DEBUGGING STUFF #### +######################### +my %debug; +# The following debug options can be set with '-o debug=...': +# * splitargs see how macro args are separated +# * pretrans see pre-conditioning of translation +# * postrans see post-conditioning of translation +# * fonts see font modifier handling + + +######## CONFIG ######### +# This variable indicates the behavior of the module when a .de, .if or +# .ie is encountered. +my $groff_code; +# %no_wrap_begin and %no_wrap_end are lists of macros that respectively +# begins and ends a no_wrap paragraph. +# Any ending macro will end the no_wrap paragraph started by any beginning +# macro. +my %no_wrap_begin; +my %no_wrap_end; +# List of macros that should be inlined (with E<.xx ...>) +my %inline; +# The default list of inlined macros (when no options are used) +my %default_inline; +# This variable indicates whether po4a should try to detect the generated +# files. +my $allow_generated; +# This hash indicates section name that should not be translated in mdoc +# mode. +# The groff's mdoc processor requires the NAME section, otherwise headers +# and footers of the pages are not generated. +# The mdoc_groff man page indicates that NAME, SYNOPSIS and DESCRIPTION +# are mandatory. +my %mdoc; +sub initialize { + my $self = shift; + my %options = @_; + + $self->{options}{'debug'}=''; + $self->{options}{'verbose'}=''; + $self->{options}{'groff_code'}=''; + $self->{options}{'untranslated'}=''; + $self->{options}{'noarg'}=''; + $self->{options}{'translate_joined'}=''; + $self->{options}{'translate_each'}=''; + $self->{options}{'no_wrap'}=''; + $self->{options}{'inline'}=''; + $self->{options}{'generated'}=''; + $self->{options}{'mdoc'}=''; + $self->{options}{'unknown_macros'}=''; + + foreach my $opt (keys %options) { + if (defined $options{$opt}) { + die wrap_mod("po4a::man", + dgettext("po4a", "Unknown option: %s"), $opt) + unless exists $self->{options}{$opt}; + $self->{options}{$opt} = $options{$opt}; + } + } + + %debug = (); + if (defined $options{'debug'}) { + foreach ($options{'debug'}) { + $debug{$_} = 1; + } + } + + $groff_code = "fail"; + if (defined $options{'groff_code'}) { + unless ($options{'groff_code'} =~ m/fail|verbatim|translate/) { + die wrap_mod("po4a::man", dgettext("po4a", + "Invalid 'groff_code' value. Must be one of 'fail', 'verbatim', 'translate'.")); + } + $groff_code = $options{'groff_code'}; + } + + if (%default_macro) { + %macro = %default_macro; + } else { + %default_macro = %macro + } + if (defined $options{'untranslated'}) { + foreach (split(/,/, $options{'untranslated'})) { + $macro{$_} = \&untranslated; + } + } + if (defined $options{'noarg'}) { + foreach (split(/,/, $options{'noarg'})) { + $macro{$_} = \&noarg; + } + } + if (defined $options{'translate_joined'}) { + foreach (split(/,/, $options{'translate_joined'})) { + $macro{$_} = \&translate_joined; + } + } + if (defined $options{'translate_each'}) { + foreach (split(/,/, $options{'translate_each'})) { + $macro{$_} = \&translate_each; + } + } + + %no_wrap_begin = ( + 'nf' => 1, + 'EX' => 1, + 'EQ' => 1 + ); + %no_wrap_end = ( + 'fi' => 1, + 'EE' => 1, + 'EN' => 1 + ); + if (defined $options{'no_wrap'}) { + foreach (split(/,/, $options{'no_wrap'})) { + if ($_ =~ m/^(.*):(.*)$/) { + $no_wrap_begin{$1} = 1; + $no_wrap_end{$2} = 1; + } else { + die wrap_mod("po4a::man", dgettext("po4a","The no_wrap parameters must be a set of comma-separated begin:end couples.\n")); + } + } + } + + if (%default_inline) { + %inline = %default_inline; + } else { + %default_inline = %inline + } + if (defined $options{'inline'}) { + foreach (split(/,/, $options{'inline'})) { + $inline{$_} = 1; + } + } + + $allow_generated = 0; + if (defined $options{'generated'}) { + $allow_generated = 1; + } + + %mdoc = (); + if (defined $options{'mdoc'}) { + if ($options{'mdoc'} eq 1) { + $mdoc{"NAME"} = 1; + } else { + foreach (split(/,/, $options{'mdoc'})) { + $mdoc{$_} = 1; + } + } + } + + $unknown_macros = undef; + if (defined $options{'unknown_macros'}) { + if ($options{'unknown_macros'} eq "failed") { + $unknown_macros = undef; + } elsif ($options{'unknown_macros'} eq "untranslated") { + $unknown_macros = \&untranslated; + } elsif ($options{'unknown_macros'} eq "noarg") { + $unknown_macros = \&noarg; + } elsif ($options{'unknown_macros'} eq "translate_joined") { + $unknown_macros = \&translate_joined; + } elsif ($options{'unknown_macros'} eq "translate_each") { + $unknown_macros = \&translate_each; + } else { + die wrap_mod("po4a::man", dgettext("po4a", + "Invalid 'unknown_macros' value. Must be one of:\n"). + "failed untranslated noarg translate_joined translate_each\n"); + } + } +} + +my @comments = (); +my @next_comments = (); +# This function returns the next line of the document being parsed +# (and its reference). +# It overload the Transtractor shiftline to handle: +# - font requests (.B, .I, .BR, .BI, ...) +# because these requests can be present in a paragraph (handled +# in the parse subroutine), or in argument (on the next line) +# of some other request (for example .TP) +# - font size requests (.SM,.SB) (not done yet) +# - input escape (\ at the end of a line) +sub shiftline { + my $self = shift; + # call Transtractor's shiftline +NEW_LINE: + my ($line,$ref) = $self->SUPER::shiftline(); + + if (!defined $line) { + # end of file + return ($line,$ref); + } + + # Do as few treatments as possible with the .de, .ie and .if sections + if ($line =~ /^\.\s*(if|ie|de)/) { + chomp $line; + return ($line,$ref); + } + + # Handle some escapes + # * reduce the number of \ in macros + if ($line =~ /^\\?[.']/) { + # The first backslash is consumed while the macro is read. + $line =~ s/\\\\/\\/g; + } + # * \\ is equivalent to \e, which is less error prone for the rest + # of the module (e.g. when searching for a font : \f, whe don't + # want to match \\f) + $line =~ s/\\\\/\\e/g; + # * \. is just a dot (this can even be use to introduce a macro) + $line =~ s/\\\././g; + + chomp $line; + if ($line =~ m/^(.*?)(?:(?SUPER::shiftline(); + chomp($l2); + if ($line =~ /^(\.[BI])\s*$/) { + if ($l2 =~ /^[.'][\t ]*([BI]|BI|BR|IB|IR|RB|RI)(?:[\t ]|\s*$)/) { + my $font = $line; + $font =~ s/^\.([BI])\s*$/$1/; + $insert_font = "\\f$font$insert_font"; + $line = $l2; + $ref = $r2; + } elsif ($l2 =~ /^[.'][\t ]*(SH|TP|TQ|P|PP|LP)(?:[\t ]|\s*$)/) { + $line =~ s/^\.([BI])\s*$/$insert_font\\f$1/; + $self->SUPER::unshiftline($l2,$r2); + } elsif ($l2 =~ /^([.'][\t ]*(?:IP)[\t ]+"?)(.*)$/) { + # Install the font modifier into the next line + # after a possible quote (") + my $macro = $1; + my $arg = $2; + $line =~ /^\.([BI])\s*$/; + $line = $macro."$insert_font\\f$1".$arg; + $ref = $r2; + } elsif ($l2 =~ /^[.']/) { + warn wrap_ref_mod($ref, "po4a::man", dgettext("po4a", + "Font modifiers followed by a command may disturb ". + "po4a. You should either remove the font modifier ". + "'%s', or integrate a \\f font modifier in the ". + "following command ('%s'), but continuing anyway." + ), $line, $l2); + $line = "PO4A-INLINE:$line:PO4A-INLINE"; + $self->SUPER::unshiftline($l2,$r2); + } else { + # convert " to the groff's double quote glyph; it will be + # converted back to " in pre_trans. It is needed because + # otherwise, these quotes will be taken as arguments + # delimiters. + $l2 =~ s/"/\\(dq/g; + # append this line to the macro, with surrounding quotes, so + # that the line appear as an uniq argument. + $line .= ' "'.$l2.'"'; + } + } else { + $line =~ s/\\$//; + $line .= $l2; + } + } + # Detect non-wrapped paragraphs + # This must be done before handling the .B, .RI ... font requests + $line =~ s/^($FONT_RE)(\s+)/$2$1/; + + $line .= "\n"; + + # Handle font requests here + if ($line =~ /^[.'][\t ]*([BI]|BI|BR|IB|IR|RB|RI)(?:(?: +|\t)(.*)|)$/) { + my $macro = $1; + my $arguments = $2; + my @args = splitargs($ref,$arguments); + if ($macro eq 'B' || $macro eq 'I') { + # To keep the space(s), we must introduce some \& + @args = map { $_ =~ s/^(\s*)$/\\&$1\\&/s; $_ } @args; + my $arg=join(" ",@args); + $arg =~ s/^ +//; + this_macro_needs_args($macro,$ref,$arg); + $line = "$insert_font\\f$macro".$arg."\\fR\n"; + $insert_font = ""; + } + # .BI bold alternating with italic + # .BR bold/roman + # .IB italic/bold + # .IR italic/roman + # .RB roman/bold + # .RI roman/italic + if ($macro eq 'BI' || $macro eq 'BR' || $macro eq 'IB' || + $macro eq 'IR' || $macro eq 'RB' || $macro eq 'RI' ) { + # num of seen args, first letter of macro name, second one + my ($i,$a,$b)=(0,substr($macro,0,1),substr($macro,1)); + $line = join("", map { $i++ % 2 ? + "\\f$b$_" : + "\\f$a$_" + } @args)."\\fR\n"; + if ($i eq 0) { + # If a .BI is used without argument, we must insert a + # \fI\fR. The \fR was inserted previously. + $line = "\\f$b$line"; + } + } + + if (length $insert_font) { + $line =~ s/\n$//; + $line = "$insert_font$line\\fR\n"; + } + + if ($line =~ /^(.*)\\c(\\f.)?\s*\\fR\n/) { + my $begin = $1; + + my ($l2,$r2)=$self->SUPER::shiftline(); + if ($l2 =~ /^[.']/) { + $self->SUPER::unshiftline($l2,$r2); + } else { + $l2 =~ s/\s*$//s; + $line = "$begin\\fR$l2\n"; + } + } + } + + return ($line,$ref); +} + +# Overload Transtractor's pushline. +# This pushline first push comments (if there are comments for the +# current line, and the line is not empty), and then push the line. +sub pushline { + my ($self, $line) = (shift, shift); + if ($line !~ m/^\s*$/) { + # add comments + foreach my $c (@comments) { + # comments are pushed (maybe at the wrong place). + $self->SUPER::pushline($self->r(".\\\"$c\n")); + } + @comments = (); + } + + $self->SUPER::pushline($line); +} + +# The default unshiftline from Transtractor may fail because shiftline +# is overloaded +sub unshiftline { + die wrap_mod("po4a::man", dgettext("po4a", + "The unshiftline is not supported for the man module. ". + "Please send a bug report with the groff page that generated ". + "this error.")); +} + +############################################### +#### FUNCTION TO TRANSLATE OR NOT THE TEXT #### +############################################### +sub pushmacro { + my $self=shift; + if (scalar @_) { + # Do quote the arguments containing spaces, as it should. + + # but do not do so if they already contain quotes and escaped spaces + # For example, cdrdao(1) uses: + # .IP CATALOG\ "ddddddddddddd" (Here, the quote have to be displayed) + # Adding extra quotes as in: + # .IP "CATALOG\ "ddddddddddddd"" + # results in two args: 'CATALOG\ ' and 'ddddddddddddd""' + $self->pushline(join(" ",map { + # Replace double quotes by \(dq (double quotes could be + # taken as an argument delimiter). + # Only quotes not preceded by \ are taken into account + # (\" introduces a comment). + s/(?pushline("\n"); + } +} +sub this_macro_needs_args { + my ($macroname,$ref,$args)=@_; + unless (length($args)) { + die wrap_ref_mod($ref, "po4a::man", dgettext("po4a", + "macro %s called without arguments. ". + "Even if placing the macro arguments on the next line is authorized ". + "by man(7), handling this would make the po4a parser too complicate. ". + "Please simply put the macro args on the same line." + ), $macroname); + } +} + +sub pre_trans { + my ($self,$str,$ref,$type)=@_; + # Preformatting, so that translators don't see + # strange chars + my $origstr=$str; + print STDERR "pre_trans($str)=" + if ($debug{'pretrans'}); + + # Do as few treatments as possible with the .de, .ie and .if sections + if (defined $self->{type} && $self->{type} =~ m/^(ie|if|de)$/) { + return $str; + } + + # Note: if you want to implement \c support, the gdb man page is your playground + if ( not defined $self->{type}) { + $str =~ s/(\G|^(?:.*?)\n|^) # Last position, or begin of a line + ([ \t]*[^.'][^\n]*(?/E/sg; + $str =~ s//sg; + $str =~ s/EEgt>/E/g; # could be done in a smarter way? + + while ($str =~ m/^(.*)PO4A-INLINE:(.*?):PO4A-INLINE(.*)$/s) { + my ($t1,$t2, $t3) = ($1, $2, $3); + $str = "$1E<$2>"; + if ($mdoc_mode) { + # When a punctuation sign must be joined to an argument, mdoc + # permits to use such a construct: + # .Ar file1 , file2 , file3 ) . + # Here, we move the punctuation out of the E<...> tag. + # This is reverted in post_trans. + # FIXME: To be checked with the French punctuation + while ($str =~ m/(?/s) { + $str =~ s/(?/>$1/s; + } + } + if (defined $t3 and length $t3) { + $t3 =~ s/^\n//s; + $str .= "\n$t3"; + } + } + + # simplify the fonts for the translators + if (defined $self->{type} && $self->{type} =~ m/^(SH|SS)$/) { + set_regular("B"); + } + $str = do_fonts($str, $ref); + if (defined $self->{type} && $self->{type} =~ m/^(SH|SS)$/) { + set_regular("R"); + } + + # After the simplification, the first char can be a \n. + # Simply push these newlines before the translation, but make sure the + # resulting string is not empty (or an additional line will be + # added). + if ($str =~ /^(\n+)(.+)$/s) { + $self->pushline($1); + $str = $2; + } + + unless ($mdoc_mode) { + # Kill minus sign/hyphen difference. + # Aestetic of printed man pages may suffer, but: + # * they are translator-unfriendly + # * they break when using utf8 (for obscure reasons) + # * they forbid the searches, since keybords don't have hyphen key + # * they forbid copy/paste, since options need minus sign, not hyphen + $str =~ s|\\-|-|sg; + + # Groff bestiary + $str =~ s/\\\*\(lq/``/sg; + $str =~ s/\\\*\(rq/''/sg; + $str =~ s/\\\(dq/"/sg; + } + + # non-breaking spaces + # some non-breaking spaces may have been added during the parsing + $str =~ s/\Q$nbs/\\ /sg; + + print STDERR "$str\n" if ($debug{'pretrans'}); + return $str; +} + +sub post_trans { + my ($self,$str,$ref,$type,$wrap)=@_; + my $transstr=$str; + + print STDERR "post_trans($str)=" + if ($debug{'postrans'}); + + # Do as few treatments as possible with the .de, .ie and .if sections + if (defined $self->{type} && $self->{type} =~ m/^(ie|if|de)$/) { + return $str; + } + + unless ($mdoc_mode) { + # Post formatting, so that groff see the strange chars + $str =~ s|\\-|-|sg; # in case the translator added some of them manually + # change hyphens to minus signs + # (this shouldn't be done for \s- font size modifiers) + # nor on .so/.mso args + unless (defined $self->{type} && $self->{type} =~ m/^m?so$/) { + my $tmp = ""; + while ($str =~ m/^(.*?)-(.*)$/s) { + my $begin = $1; + $str = $2; + my $tmp2 = $tmp.$begin; + if ( ($begin =~ m/(?)?$/s) + or ($tmp2 =~ m/(?]*)\n([^>]*>)/$1 $2/gs; + + # No . or ' on first char, or nroff will think it's a macro + # * at the beginning of a paragraph, add \& (zero width space) at + # the beginning of the line + if (not defined $self->{type}) { + # Only do it on regular text, because + # his doesn't work after a TS (this macros shift + # lines, which may contain macros) + # or for the .ta arguments (e.g. .ta .5i 3i) + $str =~ s/^((?: + (?:CW|[RBI])< + |$FONT_RE + )? + [.'] + )/\\&$1/mgx; + } elsif ($self->{type} =~ m/^(TP|TQ)$/) { + # But it is also needed for some type (e.g. TP, if followed by a + # font macro) + # This regular expression is the same as above + $str =~ s/^((?:(?:CW|[RBI])<|$FONT_RE)?[.'])/\\&$1/mg; + } + # * degraded mode, doesn't work for the first line of a paragraph + $str =~ s/\n([.'])/ $1/mg; + + # Change ascii non-breaking space to groff one + my $nbs_out = get_out_nbs($self->get_out_charset); + $str =~ s/\Q$nbs_out/\\ /sg if defined $nbs_out; + # No nbsp (said "\ " in groff on the last pos of the line, or groff adds + # an extra space + $str =~ s/\\ \n(?=.)/\\ /sg; + + # Make sure we compute internal sequences right. + # think about: B EZA E> + while ($str =~ m/^(.*)(CW|[RBI])<(.*)$/s) { + my ($done,$rest)=($1."\\f$2",$3); + $done =~ s/CW$/\(CW/; + my $lvl=1; + while (length $rest && $lvl > 0) { + my $first=substr($rest,0,1); + if ($first eq '<') { + $lvl++; + } elsif ($first eq '>') { + $lvl--; + } + $done .= $first if ($lvl > 0); + $rest=substr($rest,1); + } + die wrap_ref_mod($ref||$self->{ref}, "po4a::man", dgettext("po4a","Unbalanced '<' and '>' in font modifier. Faulty message: %s"),$str) + if ($lvl > 0); + # Return to the regular font + $done .= "\\fP$rest"; + $str=$done; + } + + while ($str =~ m/^(.*?)E<([.'][\t ]*.*?(?(.*)$/s) { + my ($t1, $t2, $t3) = ($1,$2,$3); + $t1 =~ s/ +$//s; + $t2 =~ s/\n/ /gs; + if ($mdoc_mode) { + # restore the punctuation inside the line (see pre_trans) + if ($t3 =~ s/^([.,;:\)\]]+)//s) { + my $punctuation = $1; + $punctuation =~ s/([.,;:\)\]])/$1 /; + $t2 .= " $punctuation"; + } + } + $t3 =~ s/^ +//s; + if ($wrap) { + # The no-wrap case should be checked + $t1 =~ s/\n$//s; + } + $str = $t1; + if (length $t1) { + $t1 =~ s/\n$//s; + $str = "$t1\n"; + } + $str .= $t2; + if (defined $t3 and length $t3) { + $t3 =~ s/^\n//s; + $str.= "\n$t3"; + } + } + my $str2 = $str; + $str2 =~ s/E<[gl]t>//g; + die wrap_ref_mod($ref||$self->{ref}, "po4a::man", + dgettext("po4a","Unknown '<' or '>' sequence. ". + "Faulty message: %s"),$str) + if $str2 =~ /[<>]/; + $str =~ s/E/>/mg; + $str =~ s/E/{type}) { + $str =~ s/(?{ref}); + return $str; + } + + # If a string is quoted, only translate the argument between the + # quotes. + if ($options{'wrap'} or $str !~ m/\n/s) { + if ($str =~ m/^\"(.*)\"$/s and $1 !~ m/(?translate($1, $ref, $type, %options).'"'; + $str =~ s/\n"$/"\n/s; + return $str; + } + } + + $str=pre_trans($self,$str,$ref||$self->{ref},$type); + $options{'comment'} .= join('\n', @comments); + # Translate this + $str = $self->SUPER::translate($str, + $ref||$self->{ref}, + $type || $self->{type}, + %options); + if ($options{'wrap'}) { + my (@paragraph); + @paragraph=split (/\n/,$str); + if (defined ($paragraph[0]) && $paragraph[0] eq '') { + shift @paragraph; + } + $str = join("\n",@paragraph)."\n"; + } + $str=post_trans($self,$str,$ref||$self->{ref},$type, $options{'wrap'}); + return $str; +} + +# shortcut +sub t { + return $_[0]->translate($_[1]); +} + +# shortcut. +# As a rule of thumb, I do not recode macro names, unless they may be +# followed by other characters. +sub r { + my $self = shift; + my $str = shift; + + # non-breaking spaces + # some non-breaking spaces may have been added during the parsing + $str =~ s/\Q$nbs/\\ /sg; + + return $self->recode_skipped_text($str); +} + + +sub do_paragraph { + my ($self,$paragraph,$wrapped_mode) = (shift,shift,shift); + + # Following needed because of 'ft' (at least, see ft macro below) + unless ($paragraph =~ m/\n$/s) { + my @paragraph = split(/\n/,$paragraph); + + $paragraph .= "\n" + unless scalar (@paragraph) == 1; + } + + $self->pushline( $self->translate($paragraph,$self->{ref},"Plain text", + "wrap" => ($wrapped_mode eq 'YES') ) ); +} + +############################# +#### MAIN PARSE FUNCTION #### +############################# +sub parse{ + my $self = shift; + my ($line,$ref); + my ($paragraph)=""; # Buffer where we put the paragraph while building + my $wrapped_mode='YES'; # Should we wrap the paragraph? Three possible values: + # YES: do wrap + # NO: don't wrap because this paragraph contains indented lines + # this status disapear after the end of the paragraph + # MACRONO: don't wrap because we saw the nf macro. It stays so + # until the next fi macro. + + + # We want to change the non-breaking space according to the input + # document charset + $nbs = get_in_nbs($self->{TT}{'file_in_charset'}); + + LINE: + undef $self->{type}; + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { +# print STDERR "line=$line;ref=$ref"; + chomp($line); + $self->{ref}="$ref"; +# print STDERR "LINE=$line<<\n"; + + + if ($line =~ /^[.']/) { + die wrap_mod("po4a::man", dgettext("po4a", "Unparsable line: %s"), $line) + unless ($line =~ /^([.']+\\*?)(\\["#])(.*)/ || + $line =~ /^([.'])(\S*)(.*)/); + my $arg1=$1; + $arg1 .= $2; + my $macro=$2; + my $arguments=$3; + + if ($inline{$macro}) { + $paragraph .= "PO4A-INLINE:".$line.":PO4A-INLINE\n"; + goto LINE; + } + + # Split on spaces for arguments, but not spaces within double quotes + my @args=(); + push @args,$arg1; + if ($macro =~ /^(?:ta|TP|ie|if|de)$/) { + # The number of spaces may be critical for the 'ta' macro, + # and there is no need to split the arguments. + push @args, $arguments; + } else { + push @args, splitargs($ref,$arguments); + } + + + if (length($paragraph)) { + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = $wrapped_mode eq 'NO' ? 'YES' : $wrapped_mode; + } + + # Special case: Don't change these lines + # .\" => comments + # .\# => comments + # ." => comments + # . => empty point on the line + # .tr abcd... + # => substitution like Perl's tr/ac/bd/ on output. + if ($macro eq '\\"' || $macro eq '' || $macro eq 'tr' || + $macro eq '"' || $macro eq '\\#') { + $self->pushline($self->r($line)."\n"); + goto LINE; + } + # Special case: + # .nf => stop wrapped mode + # .fi => wrap again + if ($no_wrap_begin{$macro} or $no_wrap_end{$macro}) { + if ($no_wrap_end{$macro}) { + $wrapped_mode='YES'; + } else { + $wrapped_mode='MACRONO'; + } + $self->pushline($self->r($line)."\n"); + goto LINE; + } + + # SH resets the wrapping (in addition to starting a section) + if ($macro eq 'SH') { + $wrapped_mode='YES'; + } + + unshift @args,$self; + # Apply macro + $self->{type}=$macro; + + if (defined ($macro{$macro})) { + &{$macro{$macro}}(@args); + } else { + if (defined $unknown_macros) { + &{$unknown_macros}(@args); + } else { + $self->pushline($self->r($line)."\n"); + die wrap_ref_mod($ref, "po4a::man", dgettext("po4a", + "Unknown macro '%s'. Remove it from the document, or refer to the Locale::Po4a::Man manpage to see how po4a can handle new macros."), $line); + } + } + + } elsif ($line =~ /^ +[^. ]/) { + # (Lines containing only spaces are handled as empty lines) + # Not a macro, but not a wrapped paragraph either + $wrapped_mode = $wrapped_mode eq 'YES' ? 'NO' : $wrapped_mode; + $paragraph .= $line."\n"; + } elsif ($line =~ /^[^.].*/ && $line !~ /^ *$/) { + # (Lines containing only spaces are handled latter as empty lines) + if ($line =~ /^\\"/) { + # special case: the line is entirely a comment, keep the + # comment. + # NOTE: comment could also be found in the middle of a line. + # From info groff: + # Escape: \": Start a comment. Everything to the end of the + # input line is ignored. + $self->pushline($self->r($line)."\n"); + goto LINE; + } elsif ($line =~ /^\\#/) { + # Special groff comment. Do not keep the new line + goto LINE; + } else { + # Not a macro + # * first, try to handle some "output line continuation" (\c) + $paragraph =~ s/\\c *(($FONT_RE)?)\n?$/$1/s; + # * append the line to the current paragraph + $paragraph .= $line."\n"; + } + } else { #empty line, or line containing only spaces + if (length($paragraph)) { + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + } + $wrapped_mode = $wrapped_mode eq 'NO' ? 'YES' : $wrapped_mode; + $self->pushline($line."\n"); + } + + # finally, we did not reach the end of the paragraph. The comments + # belong to the current paragraph. + push @comments, @next_comments; + @next_comments = (); + + # Reinit the loop + ($line,$ref)=$self->shiftline(); + undef $self->{type}; + } + + if (length($paragraph)) { + do_paragraph($self,$paragraph,$wrapped_mode); + $wrapped_mode = $wrapped_mode eq 'NO' ? 'YES' : $wrapped_mode; + $paragraph=""; + } + + # flush the last comments + push @comments, @next_comments; + @next_comments = @comments; + @comments = (); + for my $c (@next_comments) { + $self->pushline($self->r(".\\\"$c\n")); + } + + # reinitialize the module + @next_comments = (); + set_regular("R"); + set_font("R"); + set_font("R"); + $mdoc_mode = 0; +} # end of main + +# Cache the results of get_in_nbs and get_out_nbs +{ + my $last_in_charset; + my $last_in_nbs; + +# get_in_nbs(charset) +# Return the representation of a non breaking space in the input charset +# (given in argument). +# or PO4A:VERY_IMPROBABLE_STRING_USEDFOR_NON-BREAKING-SPACES if this +# character doesn't exist in this charset. + sub get_in_nbs() { + my $charset = shift; + + return $last_in_nbs + if ( defined $charset + and defined $last_in_charset + and $charset eq $last_in_charset); + + my $nbs = "\xA0"; + my $length; + if (defined $charset and length $charset) + { + eval ("\$length = Encode::from_to(\$nbs, \"latin-1\", + \$charset, + 1)"); + } + # fall back solution + $nbs = "PO4A:VERY_IMPROBABLE_STRING_USEDFOR_NON-BREAKING-SPACES" + unless defined $length; + $last_in_charset = $charset; + $last_in_nbs = $nbs; + + return $last_in_nbs; + } + + my $last_out_charset; + my $last_out_nbs; +# get_out_nbs(charset) +# Return the representation of a non breaking space in the output charset +# (given in argument). +# or undef if this character doesn't exist in this charset. + sub get_out_nbs() { + my $charset = shift; + + return $last_out_nbs + if ( defined $charset + and defined $last_out_charset + and $charset eq $last_out_charset); + + my $nbs = "\xA0"; + my $length; + if (defined $charset and length $charset) + { + eval ("\$length = Encode::from_to(\$nbs, \"latin-1\", + \$charset, + 1)"); + } + # fall back solution + undef $nbs + unless defined $length; + $last_out_charset = $charset; + $last_out_nbs = $nbs; + + return $last_out_nbs; + } + +} + +# We can't push the header in the first line of the document, as in the +# other module, because the first line may contain indications on how the +# man page must be processed. +sub docheader { + return ""; +} + +# The header is pushed just before the .TH macro (this macro is mandatory +# and must be specified at the begining (there may be macro definitions +# before). +sub push_docheader { + my $self = shift; + $self->pushline( +".\\\"*******************************************************************\n". +".\\\"\n". +".\\\" This file was generated with po4a. Translate the source file.\n". +".\\\"\n". +".\\\"*******************************************************************\n" + ); +} + +# Split request's arguments. +# see: +# info groff --index-search "Request Arguments" +sub splitargs { + my ($ref,$arguments) = ($_[0],$_[1]); + my @args=(); + my $buffer=""; + my $escaped=0; + if (! defined $arguments) { + return @args; + } + # change non-breaking space before to ensure that split does what we want + # We change them back before pushing into the arguments. The one which + # will be translated will have the same change again (in pre_trans and + # post_trans), but the ones which won't get translated are not changed + # anymore. Let's play safe. + $arguments =~ s/\\ /$nbs/g; + $arguments =~ s/^ +//; + $arguments =~ s/\\&"/\\(dq/g; + $arguments =~ s/^ *//; + while (length $arguments) { + if ($arguments =~ s/^"((?:[^"]|"")*)"(?!") *//) { + my $a = $1; + $a =~ s/""/"/g if defined $a; + push @args,$a; + } elsif ($arguments =~ s/^"((?:[^"]|"")*) *$//) { + # Unterminated quote, but this seems to be handled by removing + # the trailing spaces and closing the quotes. + my $a = $1; + $a =~ s/""/"/g if defined $a; + push @args,$a; + } elsif ($arguments =~ s/^([^ ]+) *//) { + push @args,$1; + } else { + die wrap_ref_mod($ref, "po4a::man", dgettext("po4a", + "Cannot parse command arguments: %s"), + $arguments) + } + } + if ($debug{'splitargs'}) { + print STDERR "ARGS="; + map { print STDERR "$_^"} @args; + print STDERR "\n"; + } + + return @args; +} + +{ + #static variables + # font stack. + # Keep track of the current font (because a font modifier can + # stay open at the end of a paragraph), and the previous font (to + # handle \fP) + my $current_font = "R"; + my $previous_font = "R"; + # $regular_font describe the "Regular" font, which is the font used + # when there is no font modifier. + # For example, .SS use a Bold font, and thus in + # .SS This is a \fRsubsection\fB header + # the \fR and \fB font modifiers have to be kept. + my $regular_font = "R"; + + # Set the regular font + # It takes the regular font in argument (when no argument is provided, + # it uses "R"). + sub set_regular { + print STDERR "set_regular('@_')\n" + if ($debug{'fonts'}); + set_font(@_); + $regular_font = $current_font; + } + + sub set_font { + print STDERR "set_font('@_')\n" + if ($debug{'fonts'}); + my $saved_previous = $previous_font; + $previous_font = $current_font; + + if (! defined $_[0]) { + $current_font = "R"; + } elsif ($_[0] =~ /^(P|\[\]|\[P\])/) { + $current_font = $saved_previous; + } elsif (length($_[0]) == 1) { + $current_font = $_[0]; + } elsif (length($_[0]) == 2) { + $current_font = "($_[0]"; + } else { + $current_font = "[$_[0]]"; + } + print STDERR "r:'$regular_font', p:'$previous_font', c:'$current_font'\n" + if ($debug{'fonts'}); + } + + sub do_fonts { + # one argument: a string + my ($str, $ref) = (shift, shift); + print STDERR "do_fonts('$str', '$ref')=" + if ($debug{'fonts'}); + + # restore the font stack + $str = "\\f$previous_font\\f$current_font".$str; + # In order to be able to split on /\\f/, without problem with + # \\foo, groff backslash (\\) are changed to the (equivalent) + # form: \e (this should be done in shiftline). + my @array1=split(/\\f/, $str); + + $str = shift @array1; # The first element is always empty because + # the $current_font was put at the beginning + # $last_font indicates the last font that was appended to the buffer. + # It differ from $current_font because concecutive identical fonts + # are not written in the buffer. + my $last_font=$regular_font; + + foreach my $elem (@array1) { + # Do not touch the fonts in the inline macros + # These inline macros may have their argument in bold or italic, + # we can't know. + if ($str =~ m/E<\.([^>]|E|E)*$/s) { + # We can't use \\f here, otherwise the font simplifier regexp + # will use the fonts of the inline macros. + $str .= "PO4A-FAKE-FONT".$elem; + next; + } + + # Replace \fP by the exact font (because some font modifiers will + # be removed or added, which will break groff's font stack) + $elem =~ s/^(P|\[\]|\[P\])/$previous_font/s; + # change \f1 to \fR, etc. + # Those fonts are defined in the DESC file, which + # may depend on the groff device. + # fonts 1 to 4 are usually mapped to R, I, B, BI + # TODO: use an array for the font positions. This + # array should be updated by .fp requests. + $elem =~ s/^1/R/; + $elem =~ s/^2/I/; + $elem =~ s/^3/B/; + $elem =~ s/^4/(BI/; + + if ($elem =~ /^([1-4]|B|I|R|\(..|\[[^]]*\]|L)(.*)$/s) { + # Each element should now start by a recognized font modifier + my $new_font = $1; + my $arg = $2; + # Update the font stack + $previous_font = $current_font; + $current_font = $new_font; + + if ($new_font eq $last_font) { + # continue with the same font. + $str.=$arg; + } else { + # A new font is used, update $last_font + $last_font = $new_font; + $str .= "\\f".$elem; + } + } else { + die wrap_ref_mod($ref, + "po4a::man", + dgettext("po4a", + "Unsupported font in: '%s'."), + "\\f".$elem); + } + } + # Do some simplification (they don't change the font stack) + # Remove empty font modifiers at the end + $str =~ s/($FONT_RE)*$//s; + + # close any font modifier + if ($str =~ /.*($FONT_RE)(.*?)$/s && $1 ne "\\f$regular_font") { + $str =~ s/(\n?)$/\\f$regular_font$1/; + } + + # remove fonts with empty argument + while ($str =~ /($FONT_RE){2}/) { + # while $str has two consecutive font modifiers + # only keep the second one. + $str =~ s/($FONT_RE)($FONT_RE)/$2/s; + } + + # when there are two consecutive switches to the regular font, + # remove the last one. + while ($str =~ /^(.*)\\f$regular_font # anything followed by a + # regular font + ((?:\\(?!f)|[^\\])*) # the text concerned by + # this font (i.e. without any + # font modifier, i.e. it + # contains no '\' followed by + # an 'f') + \\f$regular_font # another regular font + (.*)$/sx) { + $str = "$1\\f$regular_font$2$3"; + } + + # the regular font modifier at the beginning of the string is not + # needed (the do_fonts subroutine ensure that every paragraph ends with + # the regular font. + if ($str =~ /^(.*?)\\f$regular_font(.*)$/s && $1 !~ /$FONT_RE/) { + $str = "$1$2"; + } + + # Use special markup for common fonts, so that translators don't see + # groff's font modifiers + my $PO_FONTS = "B|I|R|\\(CW"; + # remove the regular font from this list + $PO_FONTS =~ s/^$regular_font\|//; + $PO_FONTS =~ s/\|$regular_font\|/|/; + $PO_FONTS =~ s/\|$regular_font$//; + while ($str =~ /^(.*?) # $1: anything (non greedy: as + # few as possible) + \\f($PO_FONTS) # followed by a common font + # modifier ($2) + ((?:\\[^f]|[^\\])*) # $3: the text concerned by + # this font (i.e. without any + # font modifier, i.e. it + # contains no '\' followed by + # an 'f') + \\f # the next font modifier + (.*)$/sx) { # $4: anything up to the end + my ($begin, $font, $arg, $end) = ($1,$2,$3,$4); + if ($end =~ /^$regular_font(.*)$/s) { + # no need to add a switch to $regular_font + $str = $begin."$font<$arg>$1"; + } else { + $str = $begin."$font<$arg>\\f$end"; + } + } + $str =~ s/\(CW> +# is passed (".TH","LS","1","October 2002","ls (coreutils) 4.5.2","User Commands") +# Macro name is also passed, because .B (bold) will be encoded in pod format (and mangeled). +# They should return a list, which will be join'ed(' ',..) +# or undef when they don't want to add anything + +# Some well known macro handling + +# For macro taking only one argument, but people may forget the quotes. +# Example: >>.SH Another Section<< which should be >>.SH "Another Section"<< +sub translate_joined { + my ($self,$macroname,$macroarg)=(shift,shift,join(" ",@_)); + #section# .S[HS] name + + $self->pushmacro($macroname, + $self->t($macroarg)); +} + +# For macro taking several arguments, having to be translated separately +sub translate_each { + my ($self,$first)= (shift,0); + $self->pushmacro( map { $first++ ?$self->t($_):$_ } @_); +} + +# For macro which shouldn't be given any arg +sub noarg { + my $self = shift; + warn "Macro $_[0] does not accept any argument\n" + if (defined ($_[1])); + $self->pushmacro(@_); +} + +# For macro whose arguments shouldn't be translated +sub untranslated { + my ($self,$first)= (shift,0); + $self->pushmacro( map { $first++ ?$self->r($_):$_ } @_); +} + +### +### man 7 man +### + +$macro{'TH'}= sub { + my $self=shift; + my ($th,$title,$section,$date,$source,$manual)=@_; + #Preamble#.TH title section date source manual +# print STDERR "TH=$th;titre=$title;sec=$section;date=$date;source=$source;manual=$manual\n"; + + # Reset the memories + $self->push_docheader(); + + $self->pushmacro($th, + $self->t($title), + $section, + $self->t($date), + $self->t($source), + $self->t($manual)); +}; + +# .SS t Subheading t (like .SH, but used for a subsection inside a section). +$macro{'SS'}=$macro{'SH'}=sub { + if (!defined $_[2]) { + # The argument is on the next line. + my ($self,$macroname) = (shift,shift); + my ($l2,$ref2) = $self->shiftline(); + if ($l2 =~/^\./) { + $self->SUPER::unshiftline($l2,$ref2); + } else { + chomp($l2); + $self->pushmacro($macroname, + $self->t($l2)); + } + return; + } else { + return translate_joined(@_); + } +}; + +# Macro: .SM [text] +# Set the text on the same line or the text on the next line in a +# font that is one point size smaller than the default font. +# FIXME: Maybe we should find a better way to represent this (inline is +# not really nice in the PO). +$inline{'SM'}=1; + +# .SP n Skip n lines (I think) +$macro{'SP'}=\&untranslated; + +#Normal Paragraphs +# .LP Same as .PP (begin a new paragraph). +# .P Same as .PP (begin a new paragraph). +# .PP Begin a new paragraph and reset prevailing indent. +#Relative Margin Indent +# .RS i Start relative margin indent - moves the left margin i to the right +# As a result, all following paragraph(s) will be indented until +# the corresponding .RE. +# .RE End relative margin indent. +$macro{'LP'}=$macro{'P'}=$macro{'PP'}=sub { + noarg(@_); + + # From info groff: + # The font size and shape are reset to the default value (10pt roman if no + # `-rS' option is given on the command line). + set_font("R"); +}; +$macro{'RE'}=\&noarg; +$macro{'RS'}=\&untranslated; + +sub parse_tp_tq { + my $self=shift; + my ($line,$l2,$ref2); + $line .= $_[0] if defined($_[0]); + $line .= ' '.$_[1] if defined($_[1]); + $self->pushline($self->r($line)."\n"); + + ($l2,$ref2) = $self->shiftline(); + chomp($l2); + while ($l2 =~ /^\.PD/) { + $self->pushline($self->r($l2)."\n"); + ($l2,$ref2) = $self->shiftline(); + chomp($l2); + } + if ($l2 =~/^([.'][\t ]*([^\t ]*))(?:([\t ]+)(.*)$|$)/) { + if ($inline{$2}) { + my $tmp = ""; + if (defined $4 and length $4) { + $tmp = $3.$self->t($4, "wrap" => 0); + } + $self->pushline($1.$tmp."\n"); + } else { + # If the line after a .TP is a macro, + # let the parser do it's job. + # Note: use Transtractor unshiftline for now. This may require an + # implementation of the man module's own implementation. + # This may be a problem if, for example, the line resulted + # of a line continuation. + $self->SUPER::unshiftline($l2,$ref2); + } + } else { + $self->pushline($self->t($l2, "wrap" => 0)."\n"); + } +} + +#Indented Paragraph Macros +# .TP i Begin paragraph with hanging tag. The tag is given on the next line, +# but its results are like those of the .IP command. +$macro{'TP'}=sub { + parse_tp_tq(@_); + + # From info groff: + # Note that neither font shape nor font size of the label [i.e. argument + # or first line] is set to a default value; on the other hand, the rest of + # the text has default font settings. + set_font("R"); +}; + +# Indented Paragraph Macros +# .TQ Indicates continuation of the .TP labels that precede the indented +# paragraph. +$macro{'TQ'}=sub { + warn "Macro $_[1] does not accept any argument\n" + if (defined ($_[2])); + + parse_tp_tq(@_); +}; + +# Indented Paragraph Macros +# .HP i Begin paragraph with a hanging indent (the first line of the paragraph +# is at the left margin of normal paragraphs, and the rest of the para- +# graph's lines are indented). +# +$macro{'HP'}=sub { + untranslated(@_); + + # From info groff: + # Font size and face are reset to their default values. + set_font("R"); +}; + +# Indented Paragraph Macros +# .IP [designator] [nnn] +# Sets up an indented paragraph, using designator as a tag to mark +# its beginning. The indentation is set to nnn if that argument is +# supplied (default unit is `n'), otherwise the default indentation +# value is used. Font size and face of the paragraph (but not the +# designator) are reset to its default values. To start an indented +# paragraph with a particular indentation but without a designator, +# use `""' (two doublequotes) as the second argument. + +# Note that the above is the groff_man(7) version, which of course differs radically +# from man(7). In one case, the designator is optional and the nnn is not, and the +# contrary in the other. This implies that when sticking to groff_man(7), we should +# mark an uniq argument as translatable. + +$macro{'IP'}=sub { + my $self=shift; + if (defined $_[2]) { + $self->pushmacro($_[0],$self->t($_[1]),$_[2]); + } elsif (defined $_[1]) { + $self->pushmacro($_[0],$self->t($_[1])); + } else { + $self->pushmacro(@_); + } + + # From info groff: + # Font size and face of the paragraph (but not the designator) are reset + # to their default values. + set_font("R"); +}; + +# Hypertext Link Macros +# .UR u Begins a hypertext link to the URI (URL) u; it will end with +# the corresponding UE command. When generating HTML this should +# translate into the HTML command . +# There is an exception: if u is the special value ":", then no +# hypertext link of any kind will be generated until after the +# closing UE (this permits disabling hypertext links in +# phrases like LALR(1) when linking is not appropriate). +# .UE Ends the corresponding UR command; when generating HTML this +# should translate into . +# .UN u Creates a named hypertext location named u; do not include a +# corresponding UE command. +# When generating HTML this should translate into the HTML command +#   +$macro{'UR'}=sub { + return untranslated(@_) + if (defined($_[2]) && $_[2] eq ':'); + return translate_joined(@_); +}; +$macro{'UE'}=\&noarg; +$macro{'UN'}=\&translate_joined; + +# Miscellaneous Macros +# .DT Reset tabs to default tab values (every 0.5 inches); does not +# cause a break. +# .PD d Set inter-paragraph vertical distance to d (if omitted, d=0.4v); +# does not cause a break. +$macro{'DT'}=\&noarg; +$macro{'PD'}=\&untranslated; + +# Indexing term (printed on standard error). +# (ms macros) +$macro{'IX'}=\&translate_each; + +### +### groff macros +### +# .br +$macro{'br'}=\&noarg; +# .bp N Eject current page and begin new page. +$macro{'bp'}=\&untranslated; +# .ad Begin line adjustment for output lines in current adjust mode. +# .ad c Start line adjustment in mode c (c=l,r,b,n). +$macro{'ad'}=\&untranslated; +# .de macro Define or redefine macro until .. is encountered. +$macro{'de'}=sub { + my $self = shift; + if ($groff_code ne "fail") { + my $paragraph = "@_"; + my $end = "."; + if ($paragraph=~/^[.'][\t ]*de[\t ]+([^\t ]+)[\t ]+([^\t ]+)[\t ]$/) { + $end = $2; + } + my ($line, $ref) = $self->SUPER::shiftline(); + chomp $line; + $paragraph .= "\n".$line; + while (defined($line) and $line ne ".$end") { + ($line, $ref) = $self->SUPER::shiftline(); + if (defined $line) { + chomp $line; + $paragraph .= "\n".$line; + } + } + $paragraph .= "\n"; + if ($groff_code eq "verbatim") { + $self->pushline( $self->r($paragraph) ); + } else { + $self->pushline( $self->translate($paragraph, + $self->{ref}, + "groff code", + "wrap" => 0) ); + } + } else { + die wrap_ref_mod($self->{ref}, "po4a::man", dgettext("po4a", "This page defines a new macro with '.de'. Since po4a is not a real groff parser, this is not supported.")); + } +}; +# .ds stringvar anything +# Set stringvar to anything. +$macro{'ds'}=sub { + my ($self, $m) = (shift,shift); + my $name = shift; + my $string = "@_"; + # indicate to which variable this corresponds. The translator can + # find references to this string in the translation "\*(name" or + # "\*[name]" + $self->{type} = "ds $name"; + $self->pushline($m." ".$self->r($name)." ".$self->translate($string)."\n"); +}; +# .fam Return to previous font family. +# .fam name Set the current font family to name. +$macro{'fam'}=\&untranslated; +# .fc a b Set field delimiter to a and pad character to b. +$macro{'fc'}=\&untranslated; +# .ft font Change to font name or number font; +$macro{'ft'}=sub { + if (defined $_[2]) { + set_font($_[2]); + } else { + set_font("P"); + } +}; +# .hc c Set up additional hyphenation indicator character c. +$macro{'hc'}=\&untranslated; +# .hy Enable hyphenation (see nh) +# .hy N Switch to hyphenation mode N. +# .hym n Set the hyphenation margin to n (default scaling indicator m). +# .hys n Set the hyphenation space to n. +$macro{'hy'}=$macro{'hym'}=$macro{'hys'}=\&untranslated; + +# .ie cond anything If cond then anything else goto .el. +# .if cond anything If cond then anything; otherwise do nothing. +$macro{'ie'}=$macro{'if'}=sub { + my $self = shift; + if ($groff_code ne "fail") { + my $m = $_[0]; + my $paragraph = "@_"; + my ($line,$ref); + my $count = 0; + $count = 1 if ($paragraph =~ m/(? 0)) { + ($line,$ref)=$self->SUPER::shiftline(); + chomp $line; + $paragraph .= "\n".$line; + $count += 1 if ($line =~ m/(?SUPER::shiftline(); + chomp $line; + while ($line =~ m/^[.']\\"/) { + $paragraph .= "\n".$line; + ($line,$ref)=$self->SUPER::shiftline(); + chomp $line; + } + + if ($line !~ m/^[.'][ \t]*el(\s|\\\{)/) { + die wrap_ref_mod($self->{ref}, "po4a::man", dgettext("po4a", + "The .ie macro must be followed by a .el macro.")); + } + my $paragraph2 = $line; + $count = 0; + $count = 1 if ($line =~ m/(? 0)) { + ($line,$ref)=$self->SUPER::shiftline(); + chomp $line; + $paragraph2 .= "\n".$line; + $count += 1 if ($line =~ m/(?pushline( $self->r($paragraph) ); + } else { + $self->pushline( $self->translate($paragraph, + $self->{ref}, + "groff code", + "wrap" => 0) ); + } + } else { + die wrap_ref_mod($self->{ref}, "po4a::man", dgettext("po4a", + "This page uses conditionals with '%s'. Since po4a is not a real groff parser, this is not supported."), $_[0]); + } +}; +# .in N Change indent according to N (default scaling indicator m). +$macro{'in'}=\&untranslated; + +# .ig end Ignore text until .end. +$macro{'ig'}=sub { + my $self = shift; + $self->pushmacro(@_); + my ($name,$end) = (shift,shift||''); + $end='' if ($end =~ m/^\\\"/); + my ($line,$ref)=$self->shiftline(); + while (defined($line)) { + $self->pushline($self->r($line)); + last if ($line =~ /^\.$end\./); + ($line,$ref)=$self->shiftline(); + } +}; + + +# .lf N file Set input line number to N and filename to file. +$macro{'lf'}=\&untranslated; +# .ll N Set line length according to N +$macro{'ll'}=\&untranslated; + +# .nh disable hyphenation (see hy) +$macro{'nh'}=\&untranslated; +# .na No Adjusting (see ad) +$macro{'na'}=\&untranslated; +# .ne N Need N vertical space +$macro{'ne'}=\&untranslated; +# .nr register N M +# Define or modify register +$macro{'nr'}=\&untranslated; +# .ps N Point size; same as \s[N] +$macro{'ps'}=\&untranslated; +# .so filename Include source file. +# .mso groff variant of .so (other search path) +$macro{'so'}= $macro{'mso'} = sub { + warn wrap_mod("po4a::man", dgettext("po4a", + "This page includes another file with '%s'. Do not forget to translate this file ('%s')."), $_[1], $_[2]); + my $self = shift; + $self->pushmacro(@_); +}; +# .sp Skip one line vertically. +# .sp N Space vertical distance N +$macro{'sp'}=\&untranslated; +# .vs [space] +# .vs +space +# .vs -space +# Change (increase, decrease) the vertical spacing by SPACE. The +# default scaling indicator is `p'. +$macro{'vs'}=\&untranslated; +# .ta T N Set tabs after every position that is a multiple of N. +# .ta n1 n2 ... nn T r1 r2 ... rn +# Set tabs at positions n1, n2, ..., nn, [...] +$macro{'ta'}=sub { + # In some cases, a ta request can contain a translatable argument. + # FIXME: detect those cases (something like 5i does not need to be + # translated) + my ($self,$m)=(shift,shift); + my $line = "@_"; + $line =~ s/^ +//; + $self->pushline($m." ".$self->translate($line,$self->{ref},'ta')."\n"); +}; +# .ti +N Temporary indent next line (default scaling indicator m). +$macro{'ti'}=\&untranslated; + + +### +### tbl macros +### +$macro{'TS'}=sub { + my $self=shift; + my ($in_headers,$buffer)=(1,""); + my ($line,$ref)=$self->shiftline(); + + # Push table start + $self->pushmacro(@_); + while (defined($line)) { + if ($line =~ /^\.TE/) { + # Table end + $self->pushline($self->r($line)); + return; + } + if ($in_headers) { + if ($line =~ /\.$/) { + $in_headers = 0; + } + $self->pushline($self->r($line)); + } elsif ($line =~ /\\$/) { + # Lines are continued on \ at the end of line + $buffer .= $line; + } else { + $buffer .= $line; + # Arguments to translate are separated by \t + $self->pushline(join("\t", + map { $self->translate($buffer, + $ref, + 'tbl table') + } split (/\\t/,$line))); + $buffer = ""; + } + ($line,$ref)=$self->shiftline(); + } +}; + +### +### info groff +### + +## Builtin register, of course they do not need to be translated + +$macro{'F'}=$macro{'H'}=$macro{'V'}=$macro{'A'}=$macro{'T'}=\&untranslated; + +## ms package +## +# +# Displays and keeps. None of these macro accept a translated argument +# (they allow to make blocks of text which cannot be broken by new page) + +$macro{'DS'}=$macro{'LD'}=$macro{'DE'}=\&untranslated; +$macro{'ID'}=$macro{'BD'}=$macro{'CD'}=\&untranslated; +$macro{'RD'}=$macro{'KS'}=$macro{'KE'}=\&untranslated; +$macro{'KF'}=$macro{'B1'}=$macro{'B2'}=\&untranslated; +$macro{'DA'}=\&translate_joined; + +# .pc c Change page number character +$macro{'pc'}=\&translate_joined; + +# .ns Disable .sp and such +# .rs Enable them again +$macro{'ns'}=$macro{'rs'}=\&untranslated; + +# .cs font [width [em-size]] +# Switch to and from "constant glyph space mode". +$macro{'cs'}=\&untranslated; + +# .ss word_space_size [sentence_space_size] +# Change the minimum size of a space between filled words. +$macro{'ss'}=\&untranslated; + +# .ce Center one line horizontally +# .ce N Center N lines +# .ul N Underline N lines (but not the spaces) +# .cu N Underline N lines (even the spaces) +$macro{'ce'}=$macro{'ul'}=$macro{'cu'}=sub { + my $self=shift; + if (defined $_[1]) { + if ($_[1] <= 0) { + # disable centering, underlining, ... + $self->pushmacro($_[0]); + } else { +# All of these are not handled yet because the number of line may change +# during the translation + die wrap_mod("po4a::man", dgettext("po4a", + "This page uses the '%s' request with the number of lines in argument. This is not supported yet."), $_[0]); + } + } else { + $self->pushmacro($_[0]); + } +}; + +# .ec [c] +# Set the escape character to C. With no argument the default +# escape character `\' is restored. It can be also used to +# re-enable the escape mechanism after an `eo' request. +$macro{'ec'}=sub { + my $self=shift; + if (defined $_[1]) { + die wrap_mod("po4a::man", dgettext("po4a", + "This page uses the '%s' request. This request is only supported when no argument is provided."), $_[0]); + } else { + $self->pushmacro($_[0]); + } +}; + + +### +### BSD compatibility macros: .AT and .UC +### (define the version of Berkley used) +### FIXME: the header ("3rd Berkeley Distribution" or such) declared +### by this macro isn't translatable we may want to remove +### this from the generated manpage, and declare our own header +### +$macro{'UC'}=$macro{'AT'}=\&untranslated; + +# Request: .hw word1 word2 ... +# Define how WORD1, WORD2, etc. are to be hyphenated. The words +# must be given with hyphens at the hyphenation points. +# +# If the English page needs to specify how a word must be hyphenated, the +# translated page may also have this need. +$macro{'hw'}=\&translate_each; + + +############################################################################# +# +# mdoc macros +# +# The macros are defined in mdoc(7) and groff_mdoc(7) +# +# TBC: Should the font processing be disabled in the mdoc mode? +############################################################################# +# FIXME: Maybe we should verify that the page is an mdoc page +# (add a flag in Dd, and always check that this flag is set in the +# other mdoc macros) +sub translate_mdoc { + my ($self,$macroname)=(shift,shift); + my $macroarg = ""; + foreach (@_) { + $macroarg.=" " if (length $macroarg); + if ($_ =~ m/((?pushline("$macroname ".$self->t($macroarg)."\n"); +} +sub translate_mdoc_no_quotes { + my ($self,$macroname, $macroarg)=(shift,shift, join(" ", @_)); + + $self->pushline("$macroname ".$self->t($macroarg)."\n"); +} +# +# Title Macros +# ============ +# .Dd Month day, year Document date. +$macro{'Dd'}=sub { + my ($self,$macroname,$macroarg)=(shift,shift,join(" ",@_)); + + $mdoc_mode = 1; + $self->push_docheader(); + +# FIXME: It would be nice if we could switch from one set of macros to the +# other. +# +# This does not work at this time. If we erase the current set of macros, +# po4a fails when a configuration file uses both mdoc and groff pages. +# +# # Erase the current macro definitions +# %macro=(); +# %inline=(); +# %no_wrap_begin=(); +# %no_wrap_end=(); + # Use the mdoc macros + define_mdoc_macros(); + + $self->translate_mdoc_no_quotes($macroname,$macroarg); +}; + +sub define_mdoc_macros { + # .Dt DOCUMENT_TITLE [section] [volume] Title, in upper case. + $macro{'Dt'}=\&translate_mdoc; + # .Os OPERATING_SYSTEM [version/release] Operating system (BSD). + $macro{'Os'}=\&translate_each; + # Keep the quotes e.g. finger.1 + # Don't add quotes e.g. logger.1 + + # Page Layout Macros + # ================== + # .Sh Section Headers. + # (man mdoc indicates only a limited set of valid headers, + # but it should be OK to translate the header) + $macro{'Sh'}= sub { + my ($self,$macroname)=(shift,shift); + my $macroarg = ""; + foreach (@_) { + $macroarg.=" " if (length $macroarg); + if ($_ =~ m/((?pushline("$macroname ".$self->r($macroarg)."\n"); + } else { + $self->pushline("$macroname ".$self->t($macroarg)."\n"); + } + }; + # .Ss Subsection Headers. + $macro{'Ss'}=\&translate_mdoc; + # .Pp Paragraph Break. Vertical space (one line). + $macro{'Pp'}=\&noarg; + # .D1 (D-one) Display-one Indent and display one text line. + $macro{'D1'}=\&translate_mdoc; + # .Dl (D-ell) Display-one literal. + # Indent and display one line of literal text + $macro{'Dl'}=\&translate_mdoc; + # .Bd Begin-display block. + # FIXME: Note: there are some options, some of the options argument + # may be translatable (-file , -offset ) + $no_wrap_begin{'Bd'} = 1; + # .Ed End-display (matches .Bd). + $no_wrap_end{'Ed'} = 1; + # .Bl Begin-list. Create lists or columns. + # FIXME: As for .Bd, there are some options + $macro{'Bl'}=\&untranslated; + # .El End-list. + $macro{'El'}=\&noarg; + # .It List item. + # FIXME: Maybe we could extract other modifiers + # as in .It Fl l Ar num + $macro{'It'}=\&translate_mdoc; + + # Manual Domain Macros + # ==================== + # FIXME: I think most Manual and General text domain are in the inline category + foreach (qw(Ad An Ar Cd Cm Dv Er Ev Fa Fd Fn Ic Li Nm Op Ot Pa St Va Vt Xr)) { + $inline{$_} = 1; + } + # FIXME: some of these macros introduce a line in bold. + # Using \fP in these line is not supported. + # do_fonts should be called for every inline line + + # General Text Domain + # =================== + foreach (qw(%A %B %C %D %J %N %O %P %R %T %V + Ac Ao Ap Aq At Bc Bf Bo Bq Bx Db Dc Do Dq Ec Ef Em Eo Fx No Ns + Pc Pf Po Pq Qc Ql Qo Qq Re Rs Rv Sc So Sq Sm Sx Sy Tn Ux Xc Xo)) { + $inline{$_} = 1; + } + + # FIXME: Maybe it should be joined with the preceding .Nm + $macro{'Nd'}=\&translate_mdoc; + + # Command line flags + $inline{'Fl'} = 1; + # Exit status + $inline{'Ex'} = 1; + # Opening option bracket + $inline{'Oo'} = 1; + # Closing option bracket + $inline{'Oc'} = 1; + # Begin keep (keep words in the same line) + $inline{'Bk'} = 1; + # End keep + $inline{'Ek'} = 1; + # Library Names + $inline{'Lb'} = 1; + # Function Types + $inline{'Ft'} = 1; + # Function open (for functions with many arguments) + $inline{'Fo'} = 1; + # Function close + $inline{'Fc'} = 1; + # OpenBSD macro + $inline{'Ox'} = 1; + # BSD/OS Macro + $inline{'Bsx'} = 1; + # #include statements + $macro{'In'} = \&translate_mdoc; + # NetBSD Macro + $inline{'Nx'} = 1; + # Curly brackets + $inline{'Brq'} = 1; + # Corporate name + $inline{'%Q'} = 1; + # Math symbol + $inline{'Ms'} = 1; + # Prints 'under development' + $inline{'Ud'} = 1; + + # This macro is a groff macro. I don't know if ot is valid in an mdoc page. + # But this is used in some pages and seems to work + $macro{'br'}=\&noarg; + +} # end of define_mdoc_macros Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Texinfo.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Texinfo.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Texinfo.pm (revision 1843) @@ -0,0 +1,545 @@ +#!/usr/bin/perl -w + +# Copyright (c) 2004-2007 by Nicolas FRANÇOIS +# +# This file is part of po4a. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with po4a; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Texinfo - convert Texinfo documents and derivates from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Texinfo is a module to help the translation of Texinfo documents into +other [human] languages. + +This module contains the definitions of common Texinfo commands and +environments. + +=head1 STATUS OF THIS MODULE + +This module is still beta. +Please send feedback and feature requests. + +=head1 SEE ALSO + +L, +L, +L + +=head1 AUTHORS + + Nicolas François + +=head1 COPYRIGHT AND LICENSE + +Copyright 2004-2007 by Nicolas FRANÇOIS . + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see COPYING file). + +=cut + +package Locale::Po4a::Texinfo; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw($VERSION @ISA @EXPORT); +$VERSION= $Locale::Po4a::TeX::VERSION; +@ISA= qw(Locale::Po4a::TeX); +@EXPORT= qw(); + +use Locale::Po4a::Common; +use Locale::Po4a::TeX; +use subs qw( + &parse_definition_file + ®ister_generic_command &is_closed &translate_buffer + ®ister_verbatim_environment + &generic_command + &in_verbatim); +*parse_definition_file = \&Locale::Po4a::TeX::parse_definition_file; +*register_generic_command = \&Locale::Po4a::TeX::register_generic_command; +*register_verbatim_environment = \&Locale::Po4a::TeX::register_verbatim_environment; +*generic_command = \&Locale::Po4a::TeX::generic_command; +*is_closed = \&Locale::Po4a::TeX::is_closed; +*in_verbatim = \&Locale::Po4a::TeX::in_verbatim; +*translate_buffer = \&Locale::Po4a::TeX::translate_buffer; +use vars qw($RE_ESCAPE $ESCAPE + $RE_VERBATIM + $RE_COMMENT $RE_PRE_COMMENT + $no_wrap_environments $separated_commands + %commands %environments + %command_categories %separated + %env_separators %debug + %translate_buffer_env + @exclude_include @comments); +*RE_ESCAPE = \$Locale::Po4a::TeX::RE_ESCAPE; +*ESCAPE = \$Locale::Po4a::TeX::ESCAPE; +*RE_VERBATIM = \$Locale::Po4a::TeX::RE_VERBATIM; +*RE_COMMENT = \$Locale::Po4a::TeX::RE_COMMENT; +*RE_PRE_COMMENT = \$Locale::Po4a::TeX::RE_PRE_COMMENT; +*no_wrap_environments = \$Locale::Po4a::TeX::no_wrap_environments; +*separated_commands = \$Locale::Po4a::TeX::separated_commands; +*commands = \%Locale::Po4a::TeX::commands; +*environments = \%Locale::Po4a::TeX::environments; +*command_categories = \%Locale::Po4a::TeX::command_categories; +*separated = \%Locale::Po4a::TeX::separated; +*env_separators = \%Locale::Po4a::TeX::env_separators; +*debug = \%Locale::Po4a::TeX::debug; +*translate_buffer_env = \%Locale::Po4a::TeX::translate_buffer_env; +*exclude_include = \@Locale::Po4a::TeX::exclude_include; +*comments = \@Locale::Po4a::TeX::comments; + +$ESCAPE = "\@"; +$RE_ESCAPE = "\@"; +$RE_VERBATIM = "\@example"; +$RE_COMMENT = "\\\@(?:c|comment)\\b"; +$RE_PRE_COMMENT = "(?pushline(<{type}; + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { + chomp($line); + $self->{ref}="$ref"; + + if ($line =~ /^\s*@\s*po4a\s*:/) { + parse_definition_line($self, $line); + goto LINE; + } + + my $closed = 1; + if (!in_verbatim(@env)) { + $closed = is_closed($paragraph); + } +# if (not $closed) { +# print "not closed. line: '$line'\n para: '$paragraph'\n"; +# } + + if ($closed and $line =~ /^\s*$/) { + # An empty line. This indicates the end of the current + # paragraph. + $paragraph .= $line."\n"; + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + } + } elsif ($line =~ m/^\\input /) { + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + } + $self->pushline($line."\n"); + $self->push_docheader(); + } elsif ($line =~ m/^$RE_COMMENT/) { + $self->push_docheader(); + $self->pushline($line."\n"); + } elsif ( $closed + and ($line =~ /^@([^ ]*?)(?: +(.*))?$/) + and (defined $commands{$1}) + and ($break_line{$1})) { + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + } + my $arg = $2; + my @args = (); + if (defined $arg and length $arg) { + # FIXME: keep the spaces ? + $arg =~ s/\s*$//s; + @args= (" ", $arg); + } + ($t, @env) = &{$commands{$1}}($self, $1, "", \@args, \@env, 1); + $self->pushline($t."\n"); + } else { + # continue the same paragraph + $paragraph .= $line."\n"; + } + + # Reinit the loop + ($line,$ref)=$self->shiftline(); + undef $self->{type}; + } + + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + } +} # end of parse + +sub line_command { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "line_command($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'}); + + my $translated = $ESCAPE.$command; + my $line = $args->[1]; + if (defined $line and length $line) { + if ( defined $translate_line_command{$command} + and $translate_line_command{$command}) { + # $no_wrap could be forced to 1, but it should already be set + my ($t,$e) = $self->translate_buffer($line,$no_wrap,@$env,$command); + $translated .= " ".$t; + } else { + $translated .= " ".$line; + } + } + print "($translated,@$env)\n" + if ($debug{'commands'}); + return ($translated,@$env); +} + +sub defindex_line_command { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "line_command($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'}); + my $idx = $$args[1]."index"; + $commands{$idx} = \&line_command; + $break_line{$idx} = 1; + $translate_line_command{$idx} = 1; + + return line_command($self,$command,$variant,$args,$env,$no_wrap); +} + +sub translate_buffer_menu { + my ($self,$buffer,$no_wrap,@env) = (shift,shift,shift,@_); + print STDERR "translate_buffer_menu($buffer,$no_wrap,@env)=" + if ($debug{'translate_buffer'}); + + my $translated_buffer = ""; + my $spaces = ""; + if ($buffer =~ m/(\s*)$/s) { + $spaces = $1; + } + + + while ($buffer =~ m/^(.*?)((?:\n|^)\* )(.*)$/s) { + my $sep = $2; + $buffer = $3; + my($t, @e) = $self->translate_buffer_menuentry($1, $no_wrap, + @env, "menuentry"); + $translated_buffer .= $t.$sep; + } + my($t, @e) = $self->translate_buffer_menuentry($buffer, $no_wrap, + @env, "menuentry"); + $translated_buffer .= $t; + + $translated_buffer .= $spaces; + + print STDERR "($translated_buffer,@env)\n" + if ($debug{'translate_buffer'}); + return ($translated_buffer,@env); +} +$translate_buffer_env{"menu"} = \&translate_buffer_menu; +$translate_buffer_env{"detailmenu"} = \&translate_buffer_menu; +$translate_buffer_env{"direntry"} = \&translate_buffer_menu; + +my $menu_width = 78; +my $menu_sep_width = 30; +sub translate_buffer_menuentry { + my ($self,$buffer,$no_wrap,@env) = (shift,shift,shift,@_); + print STDERR "translate_buffer_menuentry($buffer,$no_wrap,@env)=" + if ($debug{'translate_buffer'}); + + my $translated_buffer = ""; + + if ( $buffer =~ m/^(.*?)(::)\s+(.*)$/s + or $buffer =~ m/^(.*?: .*?)(\.)\s+(.*)$/s) { + my ($name, $sep, $description) = ($1, $2, $3); + my ($t, @e) = $self->translate_buffer($name, $no_wrap, @env); + $translated_buffer = $t.$sep." "; + my $l = length($translated_buffer) + 2; + if ($l < $menu_sep_width-1) { + $translated_buffer .= ' 'x($menu_sep_width-1-$l); + $l = $menu_sep_width-1; + } + ($t, @e) = $self->translate_buffer($description, $no_wrap, @env); + $t =~ s/\n//sg; + $t = Locale::Po4a::Po::wrap($t, $menu_width-$l-2); + my $spaces = ' 'x($l+2); + $t =~ s/\n/\n$spaces/sg; + $translated_buffer .= $t; + } else { +# FIXME: no-wrap if a line start by a space + my ($t, @e) = $self->translate_buffer($buffer, $no_wrap, @env); + $translated_buffer = $t; + } + + print STDERR "($translated_buffer,@env)\n" + if ($debug{'translate_buffer'}); + return ($translated_buffer,@env); +} + +sub translate_buffer_ignore { + my ($self,$buffer,$no_wrap,@env) = (shift,shift,shift,@_); + print STDERR "translate_buffer_ignore($buffer,$no_wrap,@env);\n" + if ($debug{'translate_buffer'}); + return ($buffer,@env); +} +$translate_buffer_env{"ignore"} = \&translate_buffer_ignore; + +foreach (qw(appendix section cindex findex kindex opindex pindex vindex subsection + dircategory subtitle include + exdent center unnumberedsec + heading unnumbered unnumberedsubsec + unnumberedsubsubsec appendixsec appendixsubsec + appendixsubsubsec majorheading chapheading subheading + subsubheading shorttitlepage + subsubsection top item itemx chapter settitle + title author)) { + $commands{$_} = \&line_command; + $break_line{$_} = 1; + $translate_line_command{$_} = 1; +} +foreach (qw(c comment clear set setfilename setchapternewpage vskip synindex + syncodeindex need fonttextsize printindex headings finalout sp + definfoenclose)) { + $commands{$_} = \&line_command; + $break_line{$_} = 1; +} +foreach (qw(defcodeindex defindex)) { + $commands{$_} = \&defindex_line_command; + $break_line{$_} = 1; +} +# definfoenclose: command definition => translate? +foreach (qw(insertcopying page bye summarycontents shortcontents contents + noindent)) { + $commands{$_} = \&line_command; + $break_line{$_} = 1; + $translate_line_command{$_} = 0; +} + +foreach (qw(defcv deffn + defivar defmac defmethod defop + defopt defspec deftp deftypecv + deftypefn deftypefun + deftypeivar deftypemethod + deftypeop deftypevar deftypevr + defun defvar defvr)) { + $commands{$_} = \&environment_line_command; + $translate_line_command{$_} = 1; + $break_line{$_} = 1; +} +foreach (qw(defcvx deffnx defivarx defmacx defmethodx defopx defoptx + defspecx deftpx deftypecvx deftypefnx deftypefunx deftypeivarx + deftypemethodx deftypeopx deftypevarx deftypevrx defunx + defvarx defvrx)) { + $commands{$_} = \&line_command; + $translate_line_command{$_} = 1; + $break_line{$_} = 1; +} + +foreach (qw(titlefont w i r b sansserif sc slanted strong t cite email + footnote indicateurl emph ref xref pxref inforef kbd key + acronym), +# The following commands could cause problems since their arguments +# have a semantic and a translator could decide not to translate code but +# still translate theses short words if they appear in another context. + qw(file command dfn dmn option math code samp var)) { + register_generic_command("-$_,{_}"); +} + +register_generic_command("*anchor,{_}"); +register_generic_command("*refill,"); + +$translate_line_command{'node'} = 1; +$no_wrap_environments .= " node"; +$break_line{'node'} = 1; +# @node Comments, Minimum, Conventions, Overview +$commands{'node'} = sub { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "node($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'}); + + my $translated = $ESCAPE.$command; + my $line = $args->[1]; + if (defined $line and length $line) { + my @pointers = split (/, */, $line); + my @t; + foreach (@pointers) { + push @t, $self->translate($_, $self->{ref}, $command, "wrap" => 0); + } + $translated .= " ".join(", ", @t); + } + + print "($translated,@$env)\n" + if ($debug{'commands'}); + return ($translated,@$env); +}; + +sub environment_command { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "environment_command($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'}); + my ($t,@e)=("",()); + + ($t, @e) = generic_command($self,$command,$variant,$args,$env,$no_wrap); + @e = (@$env, $command); + + print "($t,@e)\n" + if ($debug{'commands'}); + return ($t,@e); +} + +sub environment_line_command { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "environment_command_line($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'}); + my ($t,@e)=("",()); + + ($t, @e) = line_command($self,$command,$variant,$args,$env,$no_wrap); + @e = (@$env, $command); + + print "($t,@e)\n" + if ($debug{'commands'}); + return ($t,@e); +} + +## push the environment in the environment stack, and do not translate +## the command +#sub push_environment { +# my $self = shift; +# my ($command,$variant,$args,$env) = (shift,shift,shift,shift); +# print "push_environment($command,$variant,@$args,@$env)=" +# if ($debug{'environments'}); +# +# my ($t,@e) = generic_command($self,$command,$variant,$args,$env); +# +# print "($t,@e)\n" +# if ($debug{'environments'}); +# return ($t,@e); +#} +# +foreach (qw(detailmenu menu titlepage group copying + documentdescription cartouche + direntry + ifdocbook ifhtml ifinfo ifplaintext iftex ifxml + ifnotdocbook ifnothtml ifnotinfo ifnotplaintext ifnottex ifnotxml)) { + $commands{$_} = \&environment_line_command; + $translate_line_command{$_} = 0; + $break_line{$_} = 1; +} +foreach (qw(enumerate multitable ifclear ifset)) { + $commands{$_} = \&environment_line_command; + $break_line{$_} = 1; +} +foreach (qw(quotation)) { + $commands{$_} = \&environment_line_command; + $translate_line_command{$_} = 1; + $break_line{$_} = 1; +} + +$env_separators{'format'} = "(?:(?:^|\n)\\\*|END-INFO-DIR-ENTRY|START-INFO-DIR-ENTRY)"; +$env_separators{'multitable'} = "(?:\@item|\@tab)"; + +my $end_command=$commands{'end'}; +register_generic_command("*end, "); +$commands{'end'} = $end_command; +$break_line{'end'} = 1; + +register_generic_command("*macro, "); +$commands{'macro'} = \&environment_command; +$break_line{'macro'} = 1; +register_generic_command("*itemize, "); +$commands{'itemize'} = \&environment_command; +$break_line{'itemize'} = 1; +register_generic_command("*table, "); +$commands{'table'} = \&environment_command; +$break_line{'table'} = 1; + +# TODO: is_closed, use a regexp: \ does not escape the closing brace. +# TBC on LaTeX. +# In Texinfo, it appears with the "code" command. Maybe this command should +# be used as verbatim. (Expressions.texi) + +# TODO: @include @ignore + +# TBC: node Indices + +1; Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/BibTeX.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/BibTeX.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/BibTeX.pm (revision 1843) @@ -0,0 +1,152 @@ +#!/usr/bin/perl -w + +# Po4a::BibTeX.pm +# +# extract and translate translatable strings from BibTeX documents +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::BibTeX - convert BibTeX documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::BibTeX is a module to help the translation of +bibliographies in the BibTeX format into other [human] languages. + +Fields values are extracted and proposed for translation. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +NONE. + +=head1 STATUS OF THIS MODULE + +It is a very simple module, but still young. + +=cut + +package Locale::Po4a::BibTeX; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + +sub initialize {} + +sub parse { + my $self = shift; + my ($line,$ref); + my $paragraph=""; + my $field=""; + my $id=""; + my $wrapped_mode = 1; + ($line,$ref)=$self->shiftline(); + while (defined($line)) { + chomp($line); +#print "tutu: '$line'\n"; + $self->{ref}="$ref"; + if ( $id eq "" + and $line =~ m/^\@.*?\s*\{\s*(.*),\s*$/) { + $id = $1; + $self->pushline( $line."\n" ); + } elsif ( $id ne "" + and $field eq "" + and $line =~ m/^((.*?)\s*=\s*)([^ "{].*?)(\s*,?\s*)$/) { + my $end=(defined $4)?$4:""; + $self->pushline( $1.$self->translate($3, + $self->{ref}, + "$2 ($id)", + "wrap" => 1).$end."\n" ); + $field = ""; + $paragraph = ""; + } elsif ( $id ne "" + and $field eq "" + and $line =~ m/^((.*?)\s*=\s*)(.*)$/) { + $field = $2; + $paragraph = $3."\n"; + $self->pushline( $1 ); + } elsif ($field ne "") { + $paragraph.="$line\n"; + } elsif ($line =~ m/^\s*(\%.*)?$/) { + $self->pushline( $line."\n" ); + } elsif ($line =~ m/^\s*\}\s*$/) { + $self->pushline( $line."\n" ); + $id=""; + } else { + print "unsupported line: '$line'\n"; + } + if ( $paragraph =~ m/^(\s*\{)(.*)(\}\s*,?\s*)$/s + or $paragraph =~ m/^(\s*")(.*)("\s*,?\s*)$/s + or $paragraph =~ m/^(\s*)([^ "{].*)(\s*,?\s*)$/s) { + $self->pushline( $1.$self->translate($2, + $self->{ref}, + "$field ($id)", + "wrap" => 1).$3); + $field=""; + $paragraph=""; + } + ($line,$ref)=$self->shiftline(); + } + if ( $paragraph =~ m/^(\s*\{)(.*)(\}\s*,?\s*)$/s + or $paragraph =~ m/^(\s*")(.*)("\s*,?\s*)$/s + or $paragraph =~ m/^(\s*)(.*)(\s*,?\s*)$/s) { + $self->pushline( $self->translate($1, + $self->{ref}, + "$field ($id)", + "wrap" => 1).$2); + $field=""; + $paragraph=""; + } +} + +sub do_paragraph { + my ($self, $paragraph, $wrap) = (shift, shift, shift); + $self->pushline( $self->translate($paragraph, + $self->{ref}, + "Plain text", + "wrap" => $wrap) ); +} + +1; + +=head1 AUTHORS + + Nicolas François + +=head1 COPYRIGHT AND LICENSE + + Copyright 2006 by Nicolas FRANÇOIS . + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/LaTeX.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/LaTeX.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/LaTeX.pm (revision 1843) @@ -0,0 +1,403 @@ +#!/usr/bin/perl -w + +# Copyright (c) 2004, 2005 by Nicolas FRANÇOIS +# +# This file is part of po4a. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with po4a; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::LaTeX - convert LaTeX documents and derivates from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::LaTeX is a module to help the translation of LaTeX documents into +other [human] languages. It can also be used as a base to build modules for +LaTeX-based documents. + +This module contains the definitions of common LaTeX commands and +environments. + +See the L manpage for the list +of recognized options. + +=head1 SEE ALSO + +L, +L, +L + +=head1 AUTHORS + + Nicolas François + +=head1 COPYRIGHT AND LICENSE + +Copyright 2004, 2005 by Nicolas FRANÇOIS . + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see COPYING file). + +=cut + +package Locale::Po4a::LaTeX; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw($VERSION @ISA @EXPORT); +$VERSION= $Locale::Po4a::TeX::VERSION; +@ISA= qw(Locale::Po4a::TeX); +@EXPORT= qw(); + +use Locale::Po4a::TeX; +use subs qw(&generic_command + &parse_definition_file + ®ister_generic_command + ®ister_generic_environment); +*parse_definition_file = \&Locale::Po4a::TeX::parse_definition_file; +*generic_command = \&Locale::Po4a::TeX::generic_command; +*register_generic_command = \&Locale::Po4a::TeX::register_generic_command; +*register_generic_environment = \&Locale::Po4a::TeX::register_generic_environment; +use vars qw($RE_ESCAPE $ESCAPE + $no_wrap_environments + %commands %environments + %separated_command %separated_environment + %command_parameters %environment_parameters + %env_separators + @exclude_include); +*RE_ESCAPE = \$Locale::Po4a::TeX::RE_ESCAPE; +*ESCAPE = \$Locale::Po4a::TeX::ESCAPE; +*no_wrap_environments = \$Locale::Po4a::TeX::no_wrap_environments; +*commands = \%Locale::Po4a::TeX::commands; +*environments = \%Locale::Po4a::TeX::environments; +*separated_command = \%Locale::Po4a::TeX::separated_command; +*separated_environment = \%Locale::Po4a::TeX::separated_environment; +*env_separators = \%Locale::Po4a::TeX::env_separators; +*exclude_include = \@Locale::Po4a::TeX::exclude_include; +*command_parameters = \%Locale::Po4a::TeX::command_parameters; +*environment_parameters = \%Locale::Po4a::TeX::environment_parameters; + + +# documentclass: +# Only read the documentclass in order to find some po4a directives. +# FIXME: The documentclass could contain translatable strings. +# Maybe it should be implemented as \include{}. +register_generic_command("*documentclass,[]{}"); +# We use register_generic_command to define the number and types of +# parameters. The function is then overwritten: +$commands{'documentclass'} = sub { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + + # Only try to parse the file. We don't want to fail or parse this file + # if it is a standard documentclass. + my $name = ($args->[0] eq '[')? $args->[3]: $args->[1]; + parse_definition_file($self, $name.".cls", 1); + + my ($t,@e) = generic_command($self,$command,$variant,$args,$env,$no_wrap); + + return ($t, @$env); +}; + +# LaTeX 2 +# I chose not to translate files, counters, lengths +register_generic_command("*addcontentsline,{}{}{_}"); +register_generic_command("address,{_}"); # lines are seperated by \\ +register_generic_command("*addtocontents,{}{_}"); +register_generic_command("*addtocounter,{}{}"); +register_generic_command("*addtolength,{}{}"); +register_generic_command("*addvspace,{}"); +register_generic_command("alph,{}"); # another language may not want this alphabet +register_generic_command("arabic,{}"); # another language may not want an arabic numbering +register_generic_command("*author,{_}"); # authors are separated by \and +register_generic_command("bibitem,[]{}"); +register_generic_command("*bibliographystyle,{}"); # BibTeX +register_generic_command("*bibliography,{}"); # BibTeX +register_generic_command("*centerline,{_}"); +register_generic_command("*caption,[]{_}"); +register_generic_command("cc,{_}"); +register_generic_command("circle,[]{}"); +register_generic_command("cite,[_]{}"); +register_generic_command("cline,{}"); +register_generic_command("closing,{_}"); +register_generic_command("dashbox,{}"); # followed by a (w,h) argument +register_generic_command("date,{_}"); +register_generic_command("*enlargethispage,{}"); +register_generic_command("ensuremath,{_}"); +register_generic_command("*fbox,{_}"); +register_generic_command("fnsymbol,{}"); +register_generic_command("*footnote,[]{_}"); +register_generic_command("*footnotemark,[]"); +register_generic_command("*footnotetext,[]{_}"); +register_generic_command("frac,{_}{_}"); +register_generic_command("*frame,{_}"); +register_generic_command("*framebox,[][]{_}"); # There is another form in picture environment +register_generic_command("*hbox,{}"); +register_generic_command("*hspace,[]{}"); +register_generic_command("*hyphenation,{_}"); # Translators may wish to add/remove words +register_generic_command("*include,{}"); +#register_generic_command("includeonly,{}"); # should not be supported for now +register_generic_command("*index,{_}"); +register_generic_command("*input,{}"); +register_generic_command("*item,[_]"); +register_generic_command("*label,{}"); +register_generic_command("lefteqn,{_}"); +register_generic_command("line,"); # The first argument is (x,y) +register_generic_command("*linebreak,[]"); +register_generic_command("linethickness,{}"); +register_generic_command("location,{_}"); +register_generic_command("makebox,[][]{_}"); # There's another form in picture environment +register_generic_command("makelabels,{}"); +register_generic_command("*markboth,[]{_}{_}"); +register_generic_command("*markright,{_}"); +register_generic_command("mathcal,{_}"); +register_generic_command("mathop,{_}"); +register_generic_command("mbox,{_}"); +register_generic_command("multicolumn,{}{}{_}"); +register_generic_command("multiput,"); # The first arguments are (x,y)(dx,dy) +register_generic_command("name,{_}"); +register_generic_command("*newcommand,{}[][]{_}"); +register_generic_command("*newcounter,{}[]"); +register_generic_command("*newenvironment,{}[]{_}{_}"); +register_generic_command("*newfont,{}{}"); +register_generic_command("*newlength,{}"); +register_generic_command("*newsavebox,{}"); +register_generic_command("*newtheorem,{}{_}"); # Two forms, the optionnal arg is not the first one +register_generic_command("nocite,{}"); +register_generic_command("nolinebreak,[]"); +register_generic_command("*nopagebreak,[]"); +register_generic_command("opening,{_}"); +register_generic_command("oval,"); # The first argument is (w,h) +register_generic_command("overbrace,{_}"); +register_generic_command("overline,{_}"); +register_generic_command("*pagebreak,[]"); +register_generic_command("*pagenumbering,{_}"); +register_generic_command("pageref,{}"); +register_generic_command("*pagestyle,{}"); +register_generic_command("*parbox,[][][]{}{_}"); +register_generic_command("providecommand,{}[][]{_}"); +register_generic_command("put,"); # The first argument is (x,y) +register_generic_command("raisebox,{}[][]{_}"); +register_generic_command("ref,{}"); +register_generic_command("*refstepcounter,{}"); +register_generic_command("*renewcommand,{}[][]{_}"); +register_generic_command("*renewenvironment,{}[]{_}{_}"); +register_generic_command("roman,{}"); # another language may not want a roman numbering +register_generic_command("rule,[]{}{}"); +register_generic_command("savebox,{}"); # Optional arguments in 2nd & 3rd position +register_generic_command("sbox,{}{_}"); +register_generic_command("*setcounter,{}{}"); +register_generic_command("*setlength,{}{}"); +register_generic_command("*settodepth,{}{_}"); +register_generic_command("*settoheight,{}{_}"); +register_generic_command("*settowidth,{}{_}"); +register_generic_command("shortstack,[]{_}"); +register_generic_command("signature,{_}"); +register_generic_command("sqrt,[_]{_}"); +register_generic_command("stackrel,{_}{_}"); +register_generic_command("stepcounter,{}"); +register_generic_command("*subfigure,[_]{_}"); +register_generic_command("symbol,{_}"); +register_generic_command("telephone,{_}"); +register_generic_command("thanks,{_}"); +register_generic_command("*thispagestyle,{}"); +register_generic_command("*title,{_}"); +register_generic_command("typeout,{_}"); +register_generic_command("typein,[]{_}"); +register_generic_command("twocolumn,[_]"); +register_generic_command("underbrace,{_}"); +register_generic_command("underline,{_}"); +register_generic_command("*usebox,{}"); +register_generic_command("usecounter,{}"); +register_generic_command("*usepackage,[]{}"); +register_generic_command("value,{}"); +register_generic_command("vector,"); # The first argument is (x,y) +register_generic_command("vphantom,{_}"); +register_generic_command("*vspace,[]{}"); +register_generic_command("*vbox,{}"); +register_generic_command("*vcenter,{}"); + +register_generic_command("*part,[_]{_}"); +register_generic_command("*chapter,[_]{_}"); +register_generic_command("*section,[_]{_}"); +register_generic_command("*subsection,[_]{_}"); +register_generic_command("*subsubsection,[_]{_}"); +register_generic_command("*paragraph,[_]{_}"); +register_generic_command("*subparagraph,[_]{_}"); + +register_generic_command("textrm,{_}"); +register_generic_command("textit,{_}"); +register_generic_command("emph,{_}"); +register_generic_command("textmd,{_}"); +register_generic_command("textbf,{_}"); +register_generic_command("textup,{_}"); +register_generic_command("textsl,{_}"); +register_generic_command("textsf,{_}"); +register_generic_command("textsc,{_}"); +register_generic_command("texttt,{_}"); +register_generic_command("textnormal,{_}"); +register_generic_command("mathrm,{_}"); +register_generic_command("mathsf,{_}"); +register_generic_command("mathtt,{_}"); +register_generic_command("mathit,{_}"); +register_generic_command("mathnormal,{_}"); +register_generic_command("mathversion,{}"); + +register_generic_command("*contentspage,"); +register_generic_command("*tablelistpage,"); +register_generic_command("*figurepage,"); + +register_generic_command("*PassOptionsToPackage,{}{}"); + +register_generic_command("*ifthenelse,{}{_}{_}"); + +# graphics +register_generic_command("*includegraphics,[]{}"); +register_generic_command("*graphicspath,{}"); +register_generic_command("*resizebox,{}{}{_}"); +register_generic_command("*scalebox,{}{_}"); +register_generic_command("*rotatebox,{}{_}"); + +# url +register_generic_command("UrlFont,{}"); +register_generic_command("*urlstyle,{}"); + +# hyperref +register_generic_command("href,{}{_}"); # 1:URL +register_generic_command("url,{}"); # URL +register_generic_command("nolinkurl,{}"); # URL +register_generic_command("hyperbaseurl,{}"); # URL +register_generic_command("hyperimage,{}"); # URL +register_generic_command("hyperdef,{}{}{_}"); # 1:category, 2:name +register_generic_command("hyperref,{}{}{}{_}"); # 1:URL, 2:category, 3:name +register_generic_command("hyperlink,{}{_}"); # 1:name +register_generic_command("*hypersetup,{_}"); +register_generic_command("hypertarget,{}{_}"); # 1:name +register_generic_command("autoref,{}"); # 1:label + +register_generic_command("*selectlanguage,{}"); + +# color +register_generic_command("*definecolor,{}{}{}"); +register_generic_command("*textcolor,{}{_}"); +register_generic_command("*colorbox,{}{_}"); +register_generic_command("*fcolorbox,{}{}{_}"); +register_generic_command("*pagecolor,{_}"); +register_generic_command("*color,{}"); + +# equations/theorems +register_generic_command("*qedhere,"); +register_generic_command("*qedsymbol,"); +register_generic_command("*theoremstyle,{}"); +register_generic_command("*proclaim,{_}"); +register_generic_command("*endproclaim,"); +register_generic_command("*shoveleft,{_}"); +register_generic_command("*shoveright,{_}"); + +# commands without arguments. This is better than untranslated or +# translate_joined because the number of arguments will be checked. +foreach (qw(a *appendix *backmatter backslash *baselineskip *baselinestretch bf + *bigskip boldmath cal cdots *centering *cleardoublepage *clearpage + ddots dotfill em flushbottom *footnotesize frenchspacing + *frontmatter *glossary *hfill *hline hrulefill huge Huge indent it + kill large Large LARGE ldots left linewidth listoffigures + listoftables *mainmatter *makeatletter *makeglossary *makeindex + *maketitle *medskip *newline *newpage noindent nonumber *normalsize + not *null *onecolumn *par parindent *parskip *printindex protect ps + pushtabs *qquad *quad raggedbottom raggedleft raggedright right rm + sc scriptsize sf sl small *smallskip *startbreaks *stopbreaks + *tableofcontents textwidth textheight tiny today tt unitlength + vdots verb *vfill *vline *fussy *sloppy + + aleph hbar imath jmath ell wp Re Im prime nabla surd angle forall + exists partial infty triangle Box Diamond flat natural sharp + clubsuit diamondsuit heartsuit spadesuit dag ddag S P copyright + pounds Delta ASCII + + rmfamily itshape mdseries bfseries upshape slshape sffamily scshape + ttfamily *normalfont width height depth totalheight + + *fboxsep *fboxrule + *itemi *itemii *itemiii *itemiv + *theitemi *theitemii *theitemiii *theitemiv)) { + register_generic_command("$_,"); +} + + + +# standard environments. +# FIXME: All these definitions should be re-checked +foreach (qw(abstract align align* cases center description displaymath document enumerate + eqnarray eqnarray* equation equation* flushleft flushright footnotesize itemize + letter lrbox multline multline* proof quotation quote + sloppypar tabbing theorem titlepage + trivlist verbatim verbatim* verse wrapfigure)) { + register_generic_environment("$_,"); +} +register_generic_environment("tabular,[]{}"); +register_generic_environment("tabular*,{}{}"); +register_generic_environment("tabularx,{}{}"); +register_generic_environment("multicols,{}"); +register_generic_environment("list,{_}{}"); +register_generic_environment("array,[]{}"); +register_generic_environment("figure,[]"); +register_generic_environment("minipage,[]{}"); +register_generic_environment("picture,{}{}"); +register_generic_environment("table,[]"); +register_generic_environment("thebibliography,{_}"); + + +# Commands and environments with separators. + +# & is the cell separator, \\ is the line separator +# '\' is escaped twice +$env_separators{'array'} = + $env_separators{'tabular'} = + $env_separators{'tabularx'} = "(?:&|\\\\\\\\|\\\\hline)"; + +$env_separators{'trivlist'} = + $env_separators{'list'} = + $env_separators{'description'} = + $env_separators{'enumerate'} = + $env_separators{'itemize'} = "\\\\item"; + +$env_separators{'thebibliography'} = "\\\\bibitem"; + +$env_separators{'displaymath'} = + $env_separators{'eqnarray'} = + $env_separators{'eqnarray*'} = + $env_separators{'flushleft'} = + $env_separators{'flushright'} = + $env_separators{'center'} = + $env_separators{'author{#1}'} = + $env_separators{'title{#1}'} = "\\\\\\\\"; + +# tabbing + +1; Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Po.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Po.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Po.pm (revision 1843) @@ -0,0 +1,1615 @@ +# Locale::Po4a::Po -- manipulation of PO files +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING). + +############################################################################ +# Modules and declarations +############################################################################ + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Po - PO file manipulation module + +=head1 SYNOPSIS + + use Locale::Po4a::Po; + my $pofile=Locale::Po4a::Po->new(); + + # Read PO file + $pofile->read('file.po'); + + # Add an entry + $pofile->push('msgid' => 'Hello', 'msgstr' => 'bonjour', + 'flags' => "wrap", 'reference'=>'file.c:46'); + + # Extract a translation + $pofile->gettext("Hello"); # returns 'bonjour' + + # Write back to a file + $pofile->write('otherfile.po'); + +=head1 DESCRIPTION + +Locale::Po4a::Po is a module that allows you to manipulate message +catalogs. You can load and write from/to a file (which extension is often +I), you can build new entries on the fly or request for the translation +of a string. + +For a more complete description of message catalogs in the PO format and +their use, please refer to the documentation of the gettext program. + +This module is part of the po4a project, which objective is to use PO files +(designed at origin to ease the translation of program messages) to +translate everything, including documentation (man page, info manual), +package description, debconf templates, and everything which may benefit +from this. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +=over 4 + +=item B + +This specifies the reference format. It can be one of B to not produce +any reference, B to not specify the line number, and B to +include complete references. + +=back + +=cut + +use IO::File; + + +require Exporter; + +package Locale::Po4a::Po; +use DynaLoader; + +use Locale::Po4a::Common qw(wrap_msg wrap_mod wrap_ref_mod dgettext); + +use subs qw(makespace); +use vars qw(@ISA @EXPORT_OK); +@ISA = qw(Exporter DynaLoader); +@EXPORT = qw(%debug); +@EXPORT_OK = qw(&move_po_if_needed); + +use Locale::Po4a::TransTractor; +# Try to use a C extension if present. +eval("bootstrap Locale::Po4a::Po $Locale::Po4a::TransTractor::VERSION"); + +use 5.006; +use strict; +use warnings; + +use Carp qw(croak); +use File::Basename; +use File::Path; # mkdir before write +use File::Copy; # move +use POSIX qw(strftime floor); +use Time::Local; + +use Encode; + +my @known_flags=qw(wrap no-wrap c-format fuzzy); + +our %debug=('canonize' => 0, + 'quote' => 0, + 'escape' => 0, + 'encoding' => 0, + 'filter' => 0); + +=head1 Functions about whole message catalogs + +=over 4 + +=item new() + +Creates a new message catalog. If an argument is provided, it's the name of +a PO file we should load. + +=cut + +sub new { + my ($this, $options) = (shift, shift); + my $class = ref($this) || $this; + my $self = {}; + bless $self, $class; + $self->initialize($options); + + my $filename = shift; + $self->read($filename) if defined($filename) && length($filename); + return $self; +} + +# Return the numerical timezone (e.g. +0200) +# Neither the %z nor the %s formats of strftime are portable: +# '%s' is not supported on Solaris and '%z' indicates +# "2006-10-25 19:36E. Europe Standard Time" on MS Windows. +sub timezone { + my @g = gmtime(); + my @l = localtime(); + + my $diff; + $diff = floor(timelocal(@l)/60 +0.5); + $diff -= floor(timelocal(@g)/60 +0.5); + + my $h = floor($diff / 60) + $l[8]; # $l[8] indicates if we are currently + # in a daylight saving time zone + my $m = $diff%60; + + return sprintf "%+03d%02d\n", $h, $m; +} + +sub initialize { + my ($self, $options) = (shift, shift); + my $date = strftime("%Y-%m-%d %H:%M", localtime).timezone(); + chomp $date; +# $options = ref($options) || $options; + + $self->{options}{'porefs'}= 'full'; + $self->{options}{'msgid-bugs-address'}= undef; + $self->{options}{'copyright-holder'}= "Free Software Foundation, Inc."; + $self->{options}{'package-name'}= "PACKAGE"; + $self->{options}{'package-version'}= "VERSION"; + foreach my $opt (keys %$options) { + if ($options->{$opt}) { + die wrap_mod("po4a::po", + dgettext ("po4a", "Unknown option: %s"), $opt) + unless exists $self->{options}{$opt}; + $self->{options}{$opt} = $options->{$opt}; + } + } + $self->{options}{'porefs'} =~ /^(full|noline|none)$/ || + die wrap_mod("po4a::po", + dgettext ("po4a", + "Invalid value for option 'porefs' ('%s' is ". + "not one of 'full', 'noline' or 'none')"), + $self->{options}{'porefs'}); + + $self->{po}=(); + $self->{count}=0; # number of msgids in the PO + # count_doc: number of strings in the document + # (duplicate strings counted multiple times) + $self->{count_doc}=0; + $self->{header_comment}= + " SOME DESCRIPTIVE TITLE\n" + ." Copyright (C) YEAR ". + $self->{options}{'copyright-holder'}."\n" + ." This file is distributed under the same license ". + "as the ".$self->{options}{'package-name'}." package.\n" + ." FIRST AUTHOR , YEAR.\n" + ."\n" + .", fuzzy"; +# $self->header_tag="fuzzy"; + $self->{header}=escape_text("Project-Id-Version: ". + $self->{options}{'package-name'}." ". + $self->{options}{'package-version'}."\n". + ((defined $self->{options}{'msgid-bugs-address'})? + "Report-Msgid-Bugs-To: ".$self->{options}{'msgid-bugs-address'}."\n": + ""). + "POT-Creation-Date: $date\n". + "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n". + "Last-Translator: FULL NAME \n". + "Language-Team: LANGUAGE \n". + "Language: \n". + "MIME-Version: 1.0\n". + "Content-Type: text/plain; charset=CHARSET\n". + "Content-Transfer-Encoding: 8bit\n"); + + $self->{encoder}=find_encoding("ascii"); + $self->{footer}=[]; + + # To make stats about gettext hits + $self->stats_clear(); +} + +=item read($) + +Reads a PO file (which name is given as argument). Previously existing +entries in self are not removed, the new ones are added to the end of the +catalog. + +=cut + +sub read { + my $self=shift; + my $filename=shift + or croak wrap_mod("po4a::po", + dgettext("po4a", + "Please provide a non-null filename")); + + my $lang = basename($filename); + $lang =~ s/\.po$//; + $self->{lang} = $lang; + + my $fh; + if ($filename eq '-') { + $fh=*STDIN; + } else { + open $fh,"<$filename" + or croak wrap_mod("po4a::po", + dgettext("po4a", "Can't read from %s: %s"), + $filename, $!); + } + + ## Read paragraphs line-by-line + my $pofile=""; + my $textline; + while (defined ($textline = <$fh>)) { + $pofile .= $textline; + } +# close INPUT +# or croak (sprintf(dgettext("po4a", +# "Can't close %s after reading: %s"), +# $filename,$!)."\n"); + + my $linenum=0; + + foreach my $msg (split (/\n\n/,$pofile)) { + my ($msgid,$msgstr,$comment,$previous,$automatic,$reference,$flags,$buffer); + my ($msgid_plural, $msgstr_plural); + if ($msg =~ m/^#~/m) { + push(@{$self->{footer}}, $msg); + next; + } + foreach my $line (split (/\n/,$msg)) { + $linenum++; + if ($line =~ /^#\. ?(.*)$/) { # Automatic comment + $automatic .= (defined($automatic) ? "\n" : "").$1; + + } elsif ($line =~ /^#: ?(.*)$/) { # reference + $reference .= (defined($reference) ? "\n" : "").$1; + + } elsif ($line =~ /^#, ?(.*)$/) { # flags + $flags .= (defined($flags) ? "\n" : "").$1; + + } elsif ($line =~ /^#\| ?(.*)$/) { # previous translation + $previous .= (defined($previous) ? "\n" : "").($1||""); + + } elsif ($line =~ /^#(.*)$/) { # Translator comments + $comment .= (defined($comment) ? "\n" : "").($1||""); + + } elsif ($line =~ /^msgid (".*")$/) { # begin of msgid + $buffer = $1; + + } elsif ($line =~ /^msgid_plural (".*")$/) { + # begin of msgid_plural, end of msgid + + $msgid = $buffer; + $buffer = $1; + + } elsif ($line =~ /^msgstr (".*")$/) { + # begin of msgstr, end of msgid + + $msgid = $buffer; + $buffer = "$1"; + + } elsif ($line =~ /^msgstr\[([0-9]+)\] (".*")$/) { + # begin of msgstr[x], end of msgid_plural or msgstr[x-1] + + # Note: po4a cannot uses plural forms + # (no integer to use the plural form) + # * drop the msgstr[x] where x >= 2 + # * use msgstr[0] as the translation of msgid + # * use msgstr[1] as the translation of msgid_plural + + if ($1 eq "0") { + $msgid_plural = $buffer; + $buffer = "$2"; + } elsif ($1 eq "1") { + $msgstr = $buffer; + $buffer = "$2"; + } elsif ($1 eq "2") { + $msgstr_plural = $buffer; + warn wrap_ref_mod("$filename:$linenum", + "po4a::po", + dgettext("po4a", "Messages with more than 2 plural forms are not supported.")); + } + } elsif ($line =~ /^(".*")$/) { + # continuation of a line + $buffer .= "\n$1"; + + } else { + warn wrap_ref_mod("$filename:$linenum", + "po4a::po", + dgettext("po4a", "Strange line: -->%s<--"), + $line); + } + } + $linenum++; + if (defined $msgid_plural) { + $msgstr_plural=$buffer; + + $msgid = unquote_text($msgid) if (defined($msgid)); + $msgstr = unquote_text($msgstr) if (defined($msgstr)); + + $self->push_raw ('msgid' => $msgid, + 'msgstr' => $msgstr, + 'reference' => $reference, + 'flags' => $flags, + 'comment' => $comment, + 'previous' => $previous, + 'automatic' => $automatic, + 'plural' => 0); + + $msgid_plural = unquote_text($msgid_plural) + if (defined($msgid_plural)); + $msgstr_plural = unquote_text($msgstr_plural) + if (defined($msgstr_plural)); + + $self->push_raw ('msgid' => $msgid_plural, + 'msgstr' => $msgstr_plural, + 'reference' => $reference, + 'flags' => $flags, + 'comment' => $comment, + 'previous' => $previous, + 'automatic' => $automatic, + 'plural' => 1); + } else { + $msgstr=$buffer; + + $msgid = unquote_text($msgid) if (defined($msgid)); + $msgstr = unquote_text($msgstr) if (defined($msgstr)); + + $self->push_raw ('msgid' => $msgid, + 'msgstr' => $msgstr, + 'reference' => $reference, + 'flags' => $flags, + 'comment' => $comment, + 'previous' => $previous, + 'automatic' => $automatic); + } + } +} + +=item write($) + +Writes the current catalog to the given file. + +=cut + +sub write{ + my $self=shift; + my $filename=shift + or croak dgettext("po4a","Can't write to a file without filename")."\n"; + + my $fh; + if ($filename eq '-') { + $fh=\*STDOUT; + } else { + # make sure the directory in which we should write the localized + # file exists + my $dir = $filename; + if ($dir =~ m|/|) { + $dir =~ s|/[^/]*$||; + + File::Path::mkpath($dir, 0, 0755) # Croaks on error + if (length ($dir) && ! -e $dir); + } + open $fh,">$filename" + or croak wrap_mod("po4a::po", + dgettext("po4a", "Can't write to %s: %s"), + $filename, $!); + } + + print $fh "".format_comment($self->{header_comment},"") + if defined($self->{header_comment}) && length($self->{header_comment}); + + print $fh "msgid \"\"\n"; + print $fh "msgstr ".quote_text($self->{header})."\n\n"; + + + my $buf_msgstr_plural; # Used to keep the first msgstr of plural forms + my $first=1; + foreach my $msgid ( sort { ($self->{po}{"$a"}{'pos'}) <=> + ($self->{po}{"$b"}{'pos'}) + } keys %{$self->{po}}) { + my $output=""; + + if ($first) { + $first=0; + } else { + $output .= "\n"; + } + + $output .= format_comment($self->{po}{$msgid}{'comment'},"") + if defined($self->{po}{$msgid}{'comment'}) + && length ($self->{po}{$msgid}{'comment'}); + if ( defined($self->{po}{$msgid}{'automatic'}) + && length ($self->{po}{$msgid}{'automatic'})) { + foreach my $comment (split(/\\n/,$self->{po}{$msgid}{'automatic'})) + { + $output .= format_comment($comment, ". ") + } + } + $output .= format_comment($self->{po}{$msgid}{'type'},". type: ") + if defined($self->{po}{$msgid}{'type'}) + && length ($self->{po}{$msgid}{'type'}); + $output .= format_comment($self->{po}{$msgid}{'reference'},": ") + if defined($self->{po}{$msgid}{'reference'}) + && length ($self->{po}{$msgid}{'reference'}); + $output .= "#, ". join(", ", sort split(/\s+/,$self->{po}{$msgid}{'flags'}))."\n" + if defined($self->{po}{$msgid}{'flags'}) + && length ($self->{po}{$msgid}{'flags'}); + $output .= format_comment($self->{po}{$msgid}{'previous'},"| ") + if defined($self->{po}{$msgid}{'previous'}) + && length ($self->{po}{$msgid}{'previous'}); + + if (exists $self->{po}{$msgid}{'plural'}) { + if ($self->{po}{$msgid}{'plural'} == 0) { + if ($self->get_charset =~ /^utf-8$/i) { + my $msgstr = Encode::decode_utf8($self->{po}{$msgid}{'msgstr'}); + $msgid = Encode::decode_utf8($msgid); + $output .= Encode::encode_utf8("msgid ".quote_text($msgid)."\n"); + $buf_msgstr_plural = Encode::encode_utf8("msgstr[0] ".quote_text($msgstr)."\n"); + } else { + $output = "msgid ".quote_text($msgid)."\n"; + $buf_msgstr_plural = "msgstr[0] ".quote_text($self->{po}{$msgid}{'msgstr'})."\n"; + } + } elsif ($self->{po}{$msgid}{'plural'} == 1) { +# TODO: there may be only one plural form + if ($self->get_charset =~ /^utf-8$/i) { + my $msgstr = Encode::decode_utf8($self->{po}{$msgid}{'msgstr'}); + $msgid = Encode::decode_utf8($msgid); + $output = Encode::encode_utf8("msgid_plural ".quote_text($msgid)."\n"); + $output .= $buf_msgstr_plural; + $output .= Encode::encode_utf8("msgstr[1] ".quote_text($msgstr)."\n"); + $buf_msgstr_plural = ""; + } else { + $output = "msgid_plural ".quote_text($msgid)."\n"; + $output .= $buf_msgstr_plural; + $output .= "msgstr[1] ".quote_text($self->{po}{$msgid}{'msgstr'})."\n"; + } + } else { + die wrap_msg(dgettext("po4a","Can't write PO files with more than two plural forms.")); + } + } else { + if ($self->get_charset =~ /^utf-8$/i) { + my $msgstr = Encode::decode_utf8($self->{po}{$msgid}{'msgstr'}); + $msgid = Encode::decode_utf8($msgid); + $output .= Encode::encode_utf8("msgid ".quote_text($msgid)."\n"); + $output .= Encode::encode_utf8("msgstr ".quote_text($msgstr)."\n"); + } else { + $output .= "msgid ".quote_text($msgid)."\n"; + $output .= "msgstr ".quote_text($self->{po}{$msgid}{'msgstr'})."\n"; + } + } + + print $fh $output; + } + print $fh join("\n\n", @{$self->{footer}}) if scalar @{$self->{footer}}; + +# print STDERR "$fh"; +# if ($filename ne '-') { +# close $fh +# or croak (sprintf(dgettext("po4a", +# "Can't close %s after writing: %s\n"), +# $filename,$!)); +# } +} + +=item write_if_needed($$) + +Like write, but if the PO or POT file already exists, the object will be +written in a temporary file which will be compared with the existing file +to check if the update is needed (this avoids to change a POT just to +update a line reference or the POT-Creation-Date field). + +=cut + +sub move_po_if_needed { + my ($new_po, $old_po, $backup) = (shift, shift, shift); + my $diff; + + if (-e $old_po) { + my $diff_ignore = "-I'^#:' " + ."-I'^\"POT-Creation-Date:' " + ."-I'^\"PO-Revision-Date:'"; + $diff = qx(diff -q $diff_ignore $old_po $new_po); + if ( $diff eq "" ) { + unlink $new_po + or die wrap_msg(dgettext("po4a","Can't unlink %s: %s."), + $new_po, $!); + # touch the old PO + my ($atime, $mtime) = (time,time); + utime $atime, $mtime, $old_po; + } else { + move $new_po, $old_po + or die wrap_msg(dgettext("po4a","Can't move %s to %s: %s."), + $new_po, $old_po, $!); + } + } else { + move $new_po, $old_po + or die wrap_msg(dgettext("po4a","Can't move %s to %s: %s."), + $new_po, $old_po, $!); + } +} + +sub write_if_needed { + my $self=shift; + my $filename=shift + or croak dgettext("po4a","Can't write to a file without filename")."\n"; + + if (-e $filename) { + my ($tmp_filename); + (undef,$tmp_filename)=File::Temp->tempfile($filename."XXXX", + DIR => "/tmp", + OPEN => 0, + UNLINK => 0); + $self->write($tmp_filename); + move_po_if_needed($tmp_filename, $filename); + } else { + $self->write($filename); + } +} + +=item gettextize($$) + +This function produces one translated message catalog from two catalogs, an +original and a translation. This process is described in L, +section I. + +=cut + +sub gettextize { + my $this = shift; + my $class = ref($this) || $this; + my ($poorig,$potrans)=(shift,shift); + + my $pores=Locale::Po4a::Po->new(); + + my $please_fail = 0; + my $toobad = dgettext("po4a", + "\nThe gettextization failed (once again). Don't give up, ". + "gettextizing is a subtle art, but this is only needed once ". + "to convert a project to the gorgeous luxus offered by po4a ". + "to translators.". + "\nPlease refer to the po4a(7) documentation, the section ". + "\"HOWTO convert a pre-existing translation to po4a?\" ". + "contains several hints to help you in your task"); + + # Don't fail right now when the entry count does not match. Instead, give + # it a try so that the user can see where we fail (which is probably where + # the problem is). + if ($poorig->count_entries_doc() > $potrans->count_entries_doc()) { + warn wrap_mod("po4a gettextize", dgettext("po4a", + "Original has more strings than the translation (%d>%d). ". + "Please fix it by editing the translated version to add ". + "some dummy entry."), + $poorig->count_entries_doc(), + $potrans->count_entries_doc()); + $please_fail = 1; + } elsif ($poorig->count_entries_doc() < $potrans->count_entries_doc()) { + warn wrap_mod("po4a gettextize", dgettext("po4a", + "Original has less strings than the translation (%d<%d). ". + "Please fix it by removing the extra entry from the ". + "translated file. You may need an addendum (cf po4a(7)) ". + "to reput the chunk in place after gettextization. A ". + "possible cause is that a text duplicated in the original ". + "is not translated the same way each time. Remove one of ". + "the translations, and you're fine."), + $poorig->count_entries_doc(), + $potrans->count_entries_doc()); + $please_fail = 1; + } + + if ( $poorig->get_charset =~ /^utf-8$/i ) { + $potrans->to_utf8; + $pores->set_charset("UTF-8"); + } else { + if ($potrans->get_charset eq "CHARSET") { + $pores->set_charset("ascii"); + } else { + $pores->set_charset($potrans->get_charset); + } + } + print "Po character sets:\n". + " original=".$poorig->get_charset."\n". + " translated=".$potrans->get_charset."\n". + " result=".$pores->get_charset."\n" + if $debug{'encoding'}; + + for (my ($o,$t)=(0,0) ; + $o<$poorig->count_entries_doc() && $t<$potrans->count_entries_doc(); + $o++,$t++) { + # + # Extract some informations + + my ($orig,$trans)=($poorig->msgid_doc($o),$potrans->msgid_doc($t)); +# print STDERR "Matches [[$orig]]<<$trans>>\n"; + + my ($reforig,$reftrans)=($poorig->{po}{$orig}{'reference'}, + $potrans->{po}{$trans}{'reference'}); + my ($typeorig,$typetrans)=($poorig->{po}{$orig}{'type'}, + $potrans->{po}{$trans}{'type'}); + + # + # Make sure the type of both string exist + # + die wrap_mod("po4a gettextize", + "Internal error: type of original string number %s ". + "isn't provided", $o) + if ($typeorig eq ''); + + die wrap_mod("po4a gettextize", + "Internal error: type of translated string number %s ". + "isn't provided", $o) + if ($typetrans eq ''); + + # + # Make sure both type are the same + # + if ($typeorig ne $typetrans){ + $pores->write("gettextization.failed.po"); + eval { + # Recode $trans into current charset, if possible + require I18N::Langinfo; + I18N::Langinfo->import(qw(langinfo CODESET)); + my $codeset = langinfo(CODESET()); + Encode::from_to($trans, $potrans->get_charset, $codeset); + }; + die wrap_msg(dgettext("po4a", + "po4a gettextization: Structure disparity between ". + "original and translated files:\n". + "msgid (at %s) is of type '%s' while\n". + "msgstr (at %s) is of type '%s'.\n". + "Original text: %s\n". + "Translated text: %s\n". + "(result so far dumped to gettextization.failed.po)"). + "%s", + $reforig, $typeorig, + $reftrans, $typetrans, + $orig, + $trans, + $toobad); + } + + # + # Push the entry + # + my $flags; + if (defined $poorig->{po}{$orig}{'flags'}) { + $flags = $poorig->{po}{$orig}{'flags'}." fuzzy"; + } else { + $flags = "fuzzy"; + } + $pores->push_raw('msgid' => $orig, + 'msgstr' => $trans, + 'flags' => $flags, + 'type' => $typeorig, + 'reference' => $reforig, + 'conflict' => 1, + 'transref' => $potrans->{po}{$trans}{'reference'}) + unless (defined($pores->{po}{$orig}) + and ($pores->{po}{$orig}{'msgstr'} eq $trans)) + # FIXME: maybe we should be smarter about what reference should be + # sent to push_raw. + } + + # make sure we return a useful error message when entry count differ + die "$toobad\n" if $please_fail; + + return $pores; +} + +=item filter($) + +This function extracts a catalog from an existing one. Only the entries having +a reference in the given file will be placed in the resulting catalog. + +This function parses its argument, converts it to a Perl function definition, +evals this definition and filters the fields for which this function returns +true. + +I love Perl sometimes ;) + +=cut + +sub filter { + my $self=shift; + our $filter=shift; + + my $res; + $res = Locale::Po4a::Po->new(); + + # Parse the filter + our $code="sub apply { return "; + our $pos=0; + our $length = length $filter; + + # explode chars to parts. How to subscript a string in Perl? + our @filter = split(//,$filter); + + sub gloups { + my $fmt=shift; + my $space = ""; + for (1..$pos){ + $space .= ' '; + } + die wrap_msg("$fmt\n$filter\n$space^ HERE"); + } + sub showmethecode { + return unless $debug{'filter'}; + my $fmt=shift; + my $space=""; + for (1..$pos){ + $space .= ' '; + } + print STDERR "$filter\n$space^ $fmt\n";#"$code\n"; + } + + # I dream of a lex in perl :-/ + sub parse_expression { + showmethecode("Begin expression") + if $debug{'filter'}; + + gloups("Begin of expression expected, got '%s'",$filter[$pos]) + unless ($filter[$pos] eq '('); + $pos ++; # pass the '(' + if ($filter[$pos] eq '&') { + # AND + $pos++; + showmethecode("Begin of AND") + if $debug{'filter'}; + $code .= "("; + while (1) { + gloups ("Unfinished AND statement.") + if ($pos == $length); + parse_expression(); + if ($filter[$pos] eq '(') { + $code .= " && "; + } elsif ($filter[$pos] eq ')') { + last; # do not eat that char + } else { + gloups("End of AND or begin of sub-expression expected, got '%s'", $filter[$pos]); + } + } + $code .= ")"; + } elsif ($filter[$pos] eq '|') { + # OR + $pos++; + $code .= "("; + while (1) { + gloups("Unfinished OR statement.") + if ($pos == $length); + parse_expression(); + if ($filter[$pos] eq '(') { + $code .= " || "; + } elsif ($filter[$pos] eq ')') { + last; # do not eat that char + } else { + gloups("End of OR or begin of sub-expression expected, got '%s'",$filter[$pos]); + } + } + $code .= ")"; + } elsif ($filter[$pos] eq '!') { + # NOT + $pos++; + $code .= "(!"; + gloups("Missing sub-expression in NOT statement.") + if ($pos == $length); + parse_expression(); + $code .= ")"; + } else { + # must be an equal. Let's get field and argument + my ($field,$arg,$done); + $field = substr($filter,$pos); + gloups("EQ statement contains no '=' or invalid field name") + unless ($field =~ /([a-z]*)=/i); + $field = lc($1); + $pos += (length $field) + 1; + + # check that we've got a valid field name, + # and the number it referes to + # DO NOT CHANGE THE ORDER + my @names=qw(msgid msgstr reference flags comment previous automatic); + my $fieldpos; + for ($fieldpos = 0; + $fieldpos < scalar @names && $field ne $names[$fieldpos]; + $fieldpos++) {} + gloups("Invalid field name: %s",$field) + if $fieldpos == scalar @names; # not found + + # Now, get the argument value. It has to be between quotes, + # which can be escaped + # We point right on the first char of the argument + # (first quote already eaten) + my $escaped = 0; + my $quoted = 0; + if ($filter[$pos] eq '"') { + $pos++; + $quoted = 1; + } + showmethecode(($quoted?"Quoted":"Unquoted")." argument of field '$field'") + if $debug{'filter'}; + + while (!$done) { + gloups("Unfinished EQ argument.") + if ($pos == $length); + + if ($quoted) { + if ($filter[$pos] eq '\\') { + if ($escaped) { + $arg .= '\\'; + $escaped = 0; + } else { + $escaped = 1; + } + } elsif ($escaped) { + if ($filter[$pos] eq '"') { + $arg .= '"'; + $escaped = 0; + } else { + gloups("Invalid escape sequence in argument: '\\%s'",$filter[$pos]); + } + } else { + if ($filter[$pos] eq '"') { + $done = 1; + } else { + $arg .= $filter[$pos]; + } + } + } else { + if ($filter[$pos] eq ')') { + # counter the next ++ since we don't want to eat + # this char + $pos--; + $done = 1; + } else { + $arg .= $filter[$pos]; + } + } + $pos++; + } + # and now, add the code to check this equality + $code .= "(\$_[$fieldpos] =~ m{$arg})"; + + } + showmethecode("End of expression") + if $debug{'filter'}; + gloups("Unfinished statement.") + if ($pos == $length); + gloups("End of expression expected, got '%s'",$filter[$pos]) + unless ($filter[$pos] eq ')'); + $pos++; + } + # And now, launch the beast, finish the function and use eval + # to construct this function. + # Ok, the lack of lexer is a fair price for the eval ;) + parse_expression(); + gloups("Garbage at the end of the expression") + if ($pos != $length); + $code .= "; }"; + print STDERR "CODE = $code\n" + if $debug{'filter'}; + eval $code; + die wrap_mod("po4a::po", dgettext("po4a", "Eval failure: %s"), $@) + if $@; + + for (my $cpt=(0) ; + $cpt<$self->count_entries(); + $cpt++) { + + my ($msgid,$ref,$msgstr,$flags,$type,$comment,$previous,$automatic); + + $msgid = $self->msgid($cpt); + $ref=$self->{po}{$msgid}{'reference'}; + + $msgstr= $self->{po}{$msgid}{'msgstr'}; + $flags = $self->{po}{$msgid}{'flags'}; + $type = $self->{po}{$msgid}{'type'}; + $comment = $self->{po}{$msgid}{'comment'}; + $previous = $self->{po}{$msgid}{'previous'}; + $automatic = $self->{po}{$msgid}{'automatic'}; + + # DO NOT CHANGE THE ORDER + $res->push_raw('msgid' => $msgid, + 'msgstr' => $msgstr, + 'flags' => $flags, + 'type' => $type, + 'reference' => $ref, + 'comment' => $comment, + 'previous' => $previous, + 'automatic' => $automatic) + if (apply($msgid,$msgstr,$ref,$flags,$comment,$previous,$automatic)); + } + # delete the apply subroutine + # otherwise it will be redefined. + undef &apply; + return $res; +} + +=item to_utf8() + +Recodes to UTF-8 the PO's msgstrs. Does nothing if the charset is not +specified in the PO file ("CHARSET" value), or if it's already UTF-8 or +ASCII. + +=cut + +sub to_utf8 { + my $this = shift; + my $charset = $this->get_charset(); + + unless ($charset eq "CHARSET" or + $charset =~ /^ascii$/i or + $charset =~ /^utf-8$/i) { + foreach my $msgid ( keys %{$this->{po}} ) { + Encode::from_to($this->{po}{$msgid}{'msgstr'}, $charset, "utf-8"); + } + $this->set_charset("UTF-8"); + } +} + +=back + +=head1 Functions to use a message catalog for translations + +=over 4 + +=item gettext($%) + +Request the translation of the string given as argument in the current catalog. +The function returns the original (untranslated) string if the string was not +found. + +After the string to translate, you can pass a hash of extra +arguments. Here are the valid entries: + +=over + +=item B + +boolean indicating whether we can consider that whitespaces in string are +not important. If yes, the function canonizes the string before looking for +a translation, and wraps the result. + +=item B + +the column at which we should wrap (default: 76). + +=back + +=cut + +sub gettext { + my $self=shift; + my $text=shift; + my (%opt)=@_; + my $res; + + return "" unless defined($text) && length($text); # Avoid returning the header. + my $validoption="reference wrap wrapcol"; + my %validoption; + + map { $validoption{$_}=1 } (split(/ /,$validoption)); + foreach (keys %opt) { + Carp::confess "internal error: unknown arg $_.\n". + "Here are the valid options: $validoption.\n" + unless $validoption{$_}; + } + + $text=canonize($text) + if ($opt{'wrap'}); + + my $esc_text=escape_text($text); + + $self->{gettextqueries}++; + + if ( defined $self->{po}{$esc_text} + and defined $self->{po}{$esc_text}{'msgstr'} + and length $self->{po}{$esc_text}{'msgstr'} + and ( not defined $self->{po}{$esc_text}{'flags'} + or $self->{po}{$esc_text}{'flags'} !~ /fuzzy/)) { + + $self->{gettexthits}++; + $res = unescape_text($self->{po}{$esc_text}{'msgstr'}); + if (defined $self->{po}{$esc_text}{'plural'}) { + if ($self->{po}{$esc_text}{'plural'} eq "0") { + warn wrap_mod("po4a gettextize", dgettext("po4a", + "'%s' is the singular form of a message, ". + "po4a will use the msgstr[0] translation (%s)."), + $esc_text, $res); + } else { + warn wrap_mod("po4a gettextize", dgettext("po4a", + "'%s' is the plural form of a message, ". + "po4a will use the msgstr[1] translation (%s)."), + $esc_text, $res); + } + } + } else { + $res = $text; + } + + if ($opt{'wrap'}) { + if ($self->get_charset =~ /^utf-8$/i) { + $res=Encode::decode_utf8($res); + $res=wrap ($res, $opt{'wrapcol'} || 76); + $res=Encode::encode_utf8($res); + } else { + $res=wrap ($res, $opt{'wrapcol'} || 76); + } + } +# print STDERR "Gettext >>>$text<<<(escaped=$esc_text)=[[[$res]]]\n\n"; + return $res; +} + +=item stats_get() + +Returns statistics about the hit ratio of gettext since the last time that +stats_clear() was called. Please note that it's not the same +statistics than the one printed by msgfmt --statistic. Here, it's statistics +about recent usage of the PO file, while msgfmt reports the status of the +file. Example of use: + + [some use of the PO file to translate stuff] + + ($percent,$hit,$queries) = $pofile->stats_get(); + print "So far, we found translations for $percent\% ($hit of $queries) of strings.\n"; + +=cut + +sub stats_get() { + my $self=shift; + my ($h,$q)=($self->{gettexthits},$self->{gettextqueries}); + my $p = ($q == 0 ? 100 : int($h/$q*10000)/100); + +# $p =~ s/\.00//; +# $p =~ s/(\..)0/$1/; + + return ( $p,$h,$q ); +} + +=item stats_clear() + +Clears the statistics about gettext hits. + +=cut + +sub stats_clear { + my $self = shift; + $self->{gettextqueries} = 0; + $self->{gettexthits} = 0; +} + +=back + +=head1 Functions to build a message catalog + +=over 4 + +=item push(%) + +Push a new entry at the end of the current catalog. The arguments should +form a hash table. The valid keys are: + +=over 4 + +=item B + +the string in original language. + +=item B + +the translation. + +=item B + +an indication of where this string was found. Example: file.c:46 (meaning +in 'file.c' at line 46). It can be a space-separated list in case of +multiple occurrences. + +=item B + +a comment added here manually (by the translators). The format here is free. + +=item B + +a comment which was automatically added by the string extraction +program. See the B<--add-comments> option of the B program for +more information. + +=item B + +space-separated list of all defined flags for this entry. + +Valid flags are: B, B, B, B, B, +B, B, B, B, B, +B, B, B and B. + +See the gettext documentation for their meaning. + +=item B + +this is mostly an internal argument: it is used while gettextizing +documents. The idea here is to parse both the original and the translation +into a PO object, and merge them, using one's msgid as msgid and the +other's msgid as msgstr. To make sure that things get ok, each msgid in PO +objects are given a type, based on their structure (like "chapt", "sect1", +"p" and so on in DocBook). If the types of strings are not the same, that +means that both files do not share the same structure, and the process +reports an error. + +This information is written as automatic comment in the PO file since this +gives to translators some context about the strings to translate. + +=item B + +boolean indicating whether whitespaces can be mangled in cosmetic +reformattings. If true, the string is canonized before use. + +This information is written to the PO file using the B or B flag. + +=item B + +the column at which we should wrap (default: 76). + +This information is not written to the PO file. + +=back + +=cut + +sub push { + my $self=shift; + my %entry=@_; + + my $validoption="wrap wrapcol type msgid msgstr automatic previous flags reference"; + my %validoption; + + map { $validoption{$_}=1 } (split(/ /,$validoption)); + foreach (keys %entry) { + Carp::confess "internal error: unknown arg $_.\n". + "Here are the valid options: $validoption.\n" + unless $validoption{$_}; + } + + unless ($entry{'wrap'}) { + $entry{'flags'} .= " no-wrap"; + } + if (defined ($entry{'msgid'})) { + $entry{'msgid'} = canonize($entry{'msgid'}) + if ($entry{'wrap'}); + + $entry{'msgid'} = escape_text($entry{'msgid'}); + } + if (defined ($entry{'msgstr'})) { + $entry{'msgstr'} = canonize($entry{'msgstr'}) + if ($entry{'wrap'}); + + $entry{'msgstr'} = escape_text($entry{'msgstr'}); + } + + $self->push_raw(%entry); +} + +# The same as push(), but assuming that msgid and msgstr are already escaped +sub push_raw { + my $self=shift; + my %entry=@_; + my ($msgid,$msgstr,$reference,$comment,$automatic,$previous,$flags,$type,$transref)= + ($entry{'msgid'},$entry{'msgstr'}, + $entry{'reference'},$entry{'comment'},$entry{'automatic'}, + $entry{'previous'},$entry{'flags'},$entry{'type'},$entry{'transref'}); + my $keep_conflict = $entry{'conflict'}; + +# print STDERR "Push_raw\n"; +# print STDERR " msgid=>>>$msgid<<<\n" if $msgid; +# print STDERR " msgstr=[[[$msgstr]]]\n" if $msgstr; +# Carp::cluck " flags=$flags\n" if $flags; + + return unless defined($entry{'msgid'}); + + #no msgid => header definition + unless (length($entry{'msgid'})) { +# if (defined($self->{header}) && $self->{header} =~ /\S/) { +# warn dgettext("po4a","Redefinition of the header. ". +# "The old one will be discarded\n"); +# } FIXME: do that iff the header isn't the default one. + $self->{header}=$msgstr; + $self->{header_comment}=$comment; + my $charset = $self->get_charset; + if ($charset ne "CHARSET") { + $self->{encoder}=find_encoding($charset); + } else { + $self->{encoder}=find_encoding("ascii"); + } + return; + } + + if ($self->{options}{'porefs'} eq "none") { + $reference = ""; + } elsif ($self->{options}{'porefs'} eq "noline") { + $reference =~ s/:[0-9]*/:1/g; + } + + if (defined($self->{po}{$msgid})) { + warn wrap_mod("po4a::po", + dgettext("po4a","msgid defined twice: %s"), + $msgid) + if (0); # FIXME: put a verbose stuff + if ( defined $msgstr + and defined $self->{po}{$msgid}{'msgstr'} + and $self->{po}{$msgid}{'msgstr'} ne $msgstr) { + my $txt=quote_text($msgid); + my ($first,$second)= + (format_comment(". ",$self->{po}{$msgid}{'reference'}). + quote_text($self->{po}{$msgid}{'msgstr'}), + + format_comment(". ",$reference). + quote_text($msgstr)); + + if ($keep_conflict) { + if ($self->{po}{$msgid}{'msgstr'} =~ m/^#-#-#-#-# .* #-#-#-#-#\\n/s) { + $msgstr = $self->{po}{$msgid}{'msgstr'}. + "\\n#-#-#-#-# $transref #-#-#-#-#\\n". + $msgstr; + } else { + $msgstr = "#-#-#-#-# ". + $self->{po}{$msgid}{'transref'}. + " #-#-#-#-#\\n". + $self->{po}{$msgid}{'msgstr'}."\\n". + "#-#-#-#-# $transref #-#-#-#-#\\n". + $msgstr; + } + # Every msgid will have the same list of references. + # Only keep the last list. + $self->{po}{$msgid}{'reference'} = ""; + } else { + warn wrap_msg(dgettext("po4a", + "Translations don't match for:\n". + "%s\n". + "-->First translation:\n". + "%s\n". + " Second translation:\n". + "%s\n". + " Old translation discarded."), + $txt,$first,$second); + } + } + } + if (defined $transref) { + $self->{po}{$msgid}{'transref'} = $transref; + } + if (defined $reference) { + if (defined $self->{po}{$msgid}{'reference'}) { + $self->{po}{$msgid}{'reference'} .= " ".$reference; + } else { + $self->{po}{$msgid}{'reference'} = $reference; + } + } + $self->{po}{$msgid}{'msgstr'} = $msgstr; + $self->{po}{$msgid}{'comment'} = $comment; + $self->{po}{$msgid}{'automatic'} = $automatic; + $self->{po}{$msgid}{'previous'} = $previous; + if (defined($self->{po}{$msgid}{'pos_doc'})) { + $self->{po}{$msgid}{'pos_doc'} .= " ".$self->{count_doc}++; + } else { + $self->{po}{$msgid}{'pos_doc'} = $self->{count_doc}++; + } + unless (defined($self->{po}{$msgid}{'pos'})) { + $self->{po}{$msgid}{'pos'} = $self->{count}++; + } + $self->{po}{$msgid}{'type'} = $type; + $self->{po}{$msgid}{'plural'} = $entry{'plural'} + if defined $entry{'plural'}; + + if (defined($flags)) { + $flags = " $flags "; + $flags =~ s/,/ /g; + foreach my $flag (@known_flags) { + if ($flags =~ /\s$flag\s/) { # if flag to be set + unless ( defined($self->{po}{$msgid}{'flags'}) + && $self->{po}{$msgid}{'flags'} =~ /\b$flag\b/) { + # flag not already set + if (defined $self->{po}{$msgid}{'flags'}) { + $self->{po}{$msgid}{'flags'} .= " ".$flag; + } else { + $self->{po}{$msgid}{'flags'} = $flag; + } + } + } + } + } +# print STDERR "stored ((($msgid)))=>(((".$self->{po}{$msgid}{'msgstr'}.")))\n\n"; + +} + +=back + +=head1 Miscellaneous functions + +=over 4 + +=item count_entries() + +Returns the number of entries in the catalog (without the header). + +=cut + +sub count_entries($) { + my $self=shift; + return $self->{count}; +} + +=item count_entries_doc() + +Returns the number of entries in document. If a string appears multiple times +in the document, it will be counted multiple times + +=cut + +sub count_entries_doc($) { + my $self=shift; + return $self->{count_doc}; +} + +=item msgid($) + +Returns the msgid of the given number. + +=cut + +sub msgid($$) { + my $self=shift; + my $num=shift; + + foreach my $msgid ( keys %{$self->{po}} ) { + return $msgid if ($self->{po}{$msgid}{'pos'} eq $num); + } + return undef; +} + +=item msgid_doc($) + +Returns the msgid with the given position in the document. + +=cut + +sub msgid_doc($$) { + my $self=shift; + my $num=shift; + + foreach my $msgid ( keys %{$self->{po}} ) { + foreach my $pos (split / /, $self->{po}{$msgid}{'pos_doc'}) { + return $msgid if ($pos eq $num); + } + } + return undef; +} + +=item get_charset() + +Returns the character set specified in the PO header. If it hasn't been +set, it will return "CHARSET". + +=cut + +sub get_charset() { + my $self=shift; + + $self->{header} =~ /charset=(.*?)[\s\\]/; + + if (defined $1) { + return $1; + } else { + return "CHARSET"; + } +} + +=item set_charset($) + +This sets the character set of the PO header to the value specified in its +first argument. If you never call this function (and no file with a specified +character set is read), the default value is left to "CHARSET". This value +doesn't change the behavior of this module, it's just used to fill that field +in the header, and to return it in get_charset(). + +=cut + +sub set_charset() { + my $self=shift; + + my ($newchar,$oldchar); + $newchar = shift; + $oldchar = $self->get_charset(); + + $self->{header} =~ s/$oldchar/$newchar/; + $self->{encoder}=find_encoding($newchar); +} + +#----[ helper functions ]--------------------------------------------------- + +# transforme the string from its PO file representation to the form which +# should be used to print it +sub unescape_text { + my $text = shift; + + print STDERR "\nunescape [$text]====" if $debug{'escape'}; + $text = join("",split(/\n/,$text)); + $text =~ s/\\"/"/g; + # unescape newlines + # NOTE on \G: + # The following regular expression introduce newlines. + # Thus, ^ doesn't match all beginnings of lines. + # \G is a zero-width assertion that matches the position + # of the previous substitution with s///g. As every + # substitution ends by a newline, it always matches a + # position just after a newline. + $text =~ s/( # $1: + (\G|[^\\]) # beginning of the line or any char + # different from '\' + (\\\\)* # followed by any even number of '\' + )\\n # and followed by an escaped newline + /$1\n/sgx; # single string, match globally, allow comments + # unescape carriage returns + $text =~ s/( # $1: + (\G|[^\\]) # beginning of the line or any char + # different from '\' + (\\\\)* # followed by any even number of '\' + )\\r # and followed by an escaped carriage return + /$1\r/sgx; # single string, match globally, allow comments + # unescape tabulations + $text =~ s/( # $1: + (\G|[^\\])# beginning of the line or any char + # different from '\' + (\\\\)* # followed by any even number of '\' + )\\t # and followed by an escaped tabulation + /$1\t/mgx; # multilines string, match globally, allow comments + # and unescape the escape character + $text =~ s/\\\\/\\/g; + print STDERR ">$text<\n" if $debug{'escape'}; + + return $text; +} + +# transform the string to its representation as it should be written in PO +# files +sub escape_text { + my $text = shift; + + print STDERR "\nescape [$text]====" if $debug{'escape'}; + $text =~ s/\\/\\\\/g; + $text =~ s/"/\\"/g; + $text =~ s/\n/\\n/g; + $text =~ s/\r/\\r/g; + $text =~ s/\t/\\t/g; + print STDERR ">$text<\n" if $debug{'escape'}; + + return $text; +} + +# put quotes around the string on each lines (without escaping it) +# It does also normalize the text (ie, make sure its representation is wraped +# on the 80th char, but without changing the meaning of the string) +sub quote_text { + my $string = shift; + + return '""' unless defined($string) && length($string); + + print STDERR "\nquote [$string]====" if $debug{'quote'}; + # break lines on newlines, if any + # see unescape_text for an explanation on \G + $string =~ s/( # $1: + (\G|[^\\]) # beginning of the line or any char + # different from '\' + (\\\\)* # followed by any even number of '\' + \\n) # and followed by an escaped newline + /$1\n/sgx; # single string, match globally, allow comments + $string = wrap($string); + my @string = split(/\n/,$string); + $string = join ("\"\n\"",@string); + $string = "\"$string\""; + if (scalar @string > 1 && $string[0] ne '') { + $string = "\"\"\n".$string; + } + + print STDERR ">$string<\n" if $debug{'quote'}; + return $string; +} + +# undo the work of the quote_text function +sub unquote_text { + my $string = shift; + print STDERR "\nunquote [$string]====" if $debug{'quote'}; + $string =~ s/^""\\n//s; + $string =~ s/^"(.*)"$/$1/s; + $string =~ s/"\n"//gm; + # Note: an even number of '\' could precede \\n, but I could not build a + # document to test this + $string =~ s/([^\\])\\n\n/$1!!DUMMYPOPM!!/gm; + $string =~ s|!!DUMMYPOPM!!|\\n|gm; + print STDERR ">$string<\n" if $debug{'quote'}; + return $string; +} + +# canonize the string: write it on only one line, changing consecutive +# whitespace to only one space. +# Warning, it changes the string and should only be called if the string is +# plain text +sub canonize { + my $text=shift; + print STDERR "\ncanonize [$text]====" if $debug{'canonize'}; + $text =~ s/^ *//s; + $text =~ s/^[ \t]+/ /gm; + # if ($text eq "\n"), it messed up the first string (header) + $text =~ s/\n/ /gm if ($text ne "\n"); + $text =~ s/([.)]) +/$1 /gm; + $text =~ s/([^.)]) */$1 /gm; + $text =~ s/ *$//s; + print STDERR ">$text<\n" if $debug{'canonize'}; + return $text; +} + +# wraps the string. We don't use Text::Wrap since it mangles whitespace at +# the end of splited line +sub wrap { + my $text=shift; + return "0" if ($text eq '0'); + my $col=shift || 76; + my @lines=split(/\n/,"$text"); + my $res=""; + my $first=1; + while (defined(my $line=shift @lines)) { + if ($first && length($line) > $col - 10) { + unshift @lines,$line; + $first=0; + next; + } + if (length($line) > $col) { + my $pos=rindex($line," ",$col); + while (substr($line,$pos-1,1) eq '.' && $pos != -1) { + $pos=rindex($line," ",$pos-1); + } + if ($pos == -1) { + # There are no spaces in the first $col chars, pick-up the + # first space + $pos = index($line," "); + } + if ($pos != -1) { + my $end=substr($line,$pos+1); + $line=substr($line,0,$pos+1); + if ($end =~ s/^( +)//) { + $line .= $1; + } + unshift @lines,$end; + } + } + $first=0; + $res.="$line\n"; + } + # Restore the original trailing spaces + $res =~ s/\s+$//s; + if ($text =~ m/(\s+)$/s) { + $res .= $1; + } + return $res; +} + +# outputs properly a '# ... ' line to be put in the PO file +sub format_comment { + my $comment=shift; + my $char=shift; + my $result = "#". $char . $comment; + $result =~ s/\n/\n#$char/gs; + $result =~ s/^#$char$/#/gm; + $result .= "\n"; + return $result; +} + + +1; +__END__ + +=back + +=head1 AUTHORS + + Denis Barbier + Martin Quinson (mquinson#debian.org) + +=cut Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Ini.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Ini.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Ini.pm (revision 1843) @@ -0,0 +1,119 @@ +# Locale::Po4a::Ini -- Convert ini files to PO file, for translation. +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING). +# + +############################################################################ +# Modules and declarations +############################################################################ + +use Locale::Po4a::TransTractor qw(process new); +use Locale::Po4a::Common; + +package Locale::Po4a::Ini; + +use 5.006; +use strict; +use warnings; + +require Exporter; + +use vars qw(@ISA @EXPORT $AUTOLOAD); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +my $debug=0; + +sub initialize {} + + +sub parse { + my $self=shift; + my ($line,$ref); + my $par; + + LINE: + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { + chomp($line); + print STDERR "begin\n" if $debug; + + if ($line =~ /\"/) { + print STDERR "Start of line containing \".\n" if $debug; + # Text before the first quote + $line =~ m/(^[^"\r\n]*")/; + my $pre_text = $1; + print STDERR " PreText=".$pre_text."\n" if $debug; + # The text for translation + $line =~ m/("[^\r\n]*")/; + my $quoted_text = $1; + print STDERR " QuotedText=".$quoted_text."\n" if $debug; + # Text after last quote + $line =~ m/("[^"\n]*$)/; + my $post_text = $1; + print STDERR " PostText=".$post_text."\n" if $debug; + # Remove starting and ending quotes from the translation text, if any + $quoted_text =~ s/^"//g; + $quoted_text =~ s/"$//g; + # Translate the string it + $par = $self->translate($quoted_text, $ref); + # Escape the \n characters + $par =~ s/\n/\\n/g; + # Now push the result + $self->pushline($pre_text.$par.$post_text."\n"); + print STDERR "End of line containing \".\n" if $debug; + } + else + { + print STDERR "Other stuff\n" if $debug; + $self->pushline("$line\n"); + } + # Reinit the loop + ($line,$ref)=$self->shiftline(); + } +} + +############################################################################## +# Module return value and documentation +############################################################################## + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Ini - convert INI files from/to PO files + +=head1 DESCRIPTION + +Locale::Po4a::Ini is a module to help the translation of INI files into other +[human] languages. + +The module searches for lines of the following format and extracts the quoted +text: + +identificator="text than can be translated" + +NOTE: If the text is not quoted, it will be ignored. + +=head1 SEE ALSO + +L, L + +=head1 AUTHORS + + Razvan Rusu + Costin Stroie + +=head1 COPYRIGHT AND LICENSE + +Copyright 2006 by BitDefender + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/NewsDebian.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/NewsDebian.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/NewsDebian.pm (revision 1843) @@ -0,0 +1,154 @@ +#!/usr/bin/perl -w + +# Po4a::NewsDebian.pm +# +# extract and translate translatable strings from a NEWS.Debian documents +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::NewsDebian - convert NEWS.Debian documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::NewsDebian is a module to help the translation of the +NEWS.Debian files into other [human] languages. Those files are where +maintainer are supposed to write the important news about their package. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +NONE. + +=head1 STATUS OF THIS MODULE + +Not tested. + +A finer split of the entries may be preferable (search for /^ */, for +example), but this version is more robust and NEWS.Debian entries are not +supposed to change that often. + +=cut + +package Locale::Po4a::NewsDebian; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + + +sub initialize {} + +sub parse { + my $self = shift; + + my ($blanklines)=(""); # We want to preserve the blank lines inside the entry, and strip the extrem ones + + my ($body)=""; # the accumulated paragraph + my ($bodyref)=""; + my ($bodytype)=""; + + my ($line,$lref); + + # main loop + ($line,$lref)=$self->shiftline(); + print "seen >>$line<<\n" if $self->debug(); + while (defined($line)) { + + # Begining of an entry + if ($line =~ m/^(\w[-+0-9a-z.]*) \(([^\(\) \t]+)\)((\s+[-0-9a-z]+)+)\;/i) { + + die wrap_ref_mod($lref, "po4a::newsdebian", dgettext("po4a", "Begin of a new entry before the end of previous one")) + if (length ($body)); + + $self->pushline($line."\n"); + + # Signature of this entry + $bodyref = $lref; + $bodytype = $line; + + # eat all leading empty lines + ($line,$lref)=$self->shiftline(); + while (defined($line) && $line =~ m/^\s*$/) { + print "Eat >>$line<<\n" if $self->debug(); + ($line,$lref)=$self->shiftline(); + } + # ups, ate one line too much. Put it back. + $self->unshiftline($line,$lref); + + + # get ready to read the entry (cleanups) + $blanklines = ""; + + # End of current entry + } elsif ($line =~ m/^ \-\- (.*) <(.*)> .*$/) { #((\w+\,\s*)?\d{1,2}\s+\w+\s+\d{4}\s+\d{1,2}:\d\d:\d\d\s+[-+]\d{4}(\s+\([^\\\(\)]\))?) *$/) { + + $self->translate($body, $bodyref, $bodytype, + wrap=>0); + $body=""; + + # non-specific line + } else { + + if ($line =~ /^\s*$/) { + $blanklines .= "$line"; + } else { + $body .= $blanklines.$line; + $blanklines = ""; + } + } + + ($line,$lref)=$self->shiftline(); + print "seen >>".($line || '')."<<\n" if $self->debug(); + } +} + +1; + +=head1 AUTHORS + +This module is loosely inspired from /usr/lib/dpkg/parsechangelog/debian, which is: + + Copyright (C) 1996 Ian Jackson. This is free software; see the GNU + General Public Licence version 2 or later for copying conditions. There + is NO warranty. + +The adaptation for po4a was done by: + + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + + Copyright (c) 1996 by Ian Jackson. + Copyright 2005 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Prop.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Prop.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Prop.pm (revision 1843) @@ -0,0 +1,120 @@ +# Locale::Po4a::Prop -- Convert Java property and OSX/NeXTSTEP strings files +# to PO file, for translation. +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING). +# + +############################################################################ +# Modules and declarations +############################################################################ + +use Locale::Po4a::TransTractor qw(process new); +use Locale::Po4a::Common; + +package Locale::Po4a::Prop; + +use 5.006; +use strict; +use warnings; + +require Exporter; + +use vars qw(@ISA @EXPORT $AUTOLOAD); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +my $debug=0; + +sub initialize {} + +sub parse { + my $self=shift; + my ($line,$ref); + my $par; + + LINE: + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { + chomp($line); + print STDERR "begin:$line\n" if $debug; + + if ($line =~ m/("[^"]*")[^=]*=[^"]*"(.*)/) { # " + my @paragraph = (); + my $pre_text = $1; + print STDERR " PreText=".$pre_text."\n" if $debug; + my $quoted_text = $2; + # The text for translation + print STDERR " QuotedText=".$quoted_text."\n" if $debug; + if ($quoted_text !~ /";[^"]*/) { + @paragraph = ("$quoted_text\n"); + do { + ($line, undef) = $self->shiftline(); + push @paragraph, $line; + } while ($line !~ /";[^"]*/); + } + if (@paragraph) { + $quoted_text = join('', @paragraph); + } + + # Remove the final "; + $quoted_text =~ s/"\s*;[^"]*$//; + # Translate the string + $par = $self->translate($quoted_text, $ref, $pre_text); + + # Now push the result + $self->pushline($pre_text .' = "'.$par."\";\n"); + print STDERR "End of line containing \".\n" if $debug; + } + else + { + print STDERR "Other stuff\n" if $debug; + $self->pushline("$line\n"); + } + # Reinit the loop + ($line,$ref)=$self->shiftline(); + } +} + +############################################################################## +# Module return value and documentation +############################################################################## + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Prop - convert Java property and OSX/NeXTSTEP strings from/to PO files + +=head1 DESCRIPTION + +Locale::Po4a::Prop is a module to help the translation of Java property and +OSX/NeXTSTEP strings files into other [human] languages. + +The module searches for lines of the following format and extracts the quoted +text: + +"identificator"="text than can be translated"; + +NOTE: If the text is not quoted, it will be ignored. + +=head1 SEE ALSO + +L, L + +=head1 AUTHORS + + Yves Blusseau + +=head1 COPYRIGHT AND LICENSE + +Copyright 2012 by Yves Blusseau + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut Property changes on: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Prop.pm ___________________________________________________________________ Added: svn:executable + * Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Docbook.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Docbook.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Docbook.pm (revision 1843) @@ -0,0 +1,2042 @@ +#!/usr/bin/perl +# aptitude: cmdsynopsis => missing removal of leading spaces + +# Po4a::Docbook.pm +# +# extract and translate translatable strings from DocBook XML documents. +# +# This code extracts plain text from tags and attributes on DocBook XML +# documents. +# +# Copyright (c) 2004 by Jordi Vilalta +# Copyright (c) 2007-2009 by Nicolas François +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Docbook - convert DocBook XML documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Docbook is a module to help the translation of DocBook XML +documents into other [human] languages. + +Please note that this module is still under heavy development, and not +distributed in official po4a release since we don't feel it to be mature +enough. If you insist on trying, check the CVS out. + +=head1 STATUS OF THIS MODULE + +This module is fully functional, as it relies in the L +module. This only defines the translatable tags and attributes. + +The only known issue is that it doesn't handle entities yet, and this includes +the file inclusion entities, but you can translate most of those files alone +(except the typical entities files), and it's usually better to maintain them +separated. + +=head1 SEE ALSO + +L, L, L + +=head1 AUTHORS + + Jordi Vilalta + +=head1 COPYRIGHT AND LICENSE + + Copyright (c) 2004 by Jordi Vilalta + Copyright (c) 2007-2009 by Nicolas François + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +package Locale::Po4a::Docbook; + +use 5.006; +use strict; +use warnings; + +use Locale::Po4a::Xml; + +use vars qw(@ISA); +@ISA = qw(Locale::Po4a::Xml); + +sub initialize { + my $self = shift; + my %options = @_; + + $self->SUPER::initialize(%options); + $self->{options}{'wrap'}=1; + $self->{options}{'doctype'}=$self->{options}{'doctype'} || 'docbook xml'; + +# AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + + # abbrev; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # abstract; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # accel; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # ackno; does not contain text; Formatted as a displayed block + # Replaced by acknowledgements in DocBook v5.0 + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + # acknowledgements; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # acronym; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # action; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # address; contains text; Formatted as a displayed block; verbatim + $self->{options}{'_default_translated'} .= " W
"; + $self->{options}{'_default_placeholder'} .= "
"; + + # affiliation; does not contain text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # alt; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # anchor; does not contain text; Produces no output + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # annotation; does not contain text; + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # answer; does not contain text; + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # appendix; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # appendixinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # application; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # arc; does not contain text; + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # area; does not contain text; + # NOTE: the area is not translatable as is, but the coords + # attribute might be. + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # areaset; does not contain text; + # NOTE: the areaset is not translatable as is. depending on the + # language there might be more or less area tags inside. + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # areaspec; does not contain text; + # NOTE: see area and areaset + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # arg; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # artheader; does not contain text; renamed to articleinfo in v4.0 + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # article; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= "
"; + $self->{options}{'_default_break'} .= "
"; + + # articleinfo; does not contain text; v4 only + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # artpagenums; contains text; Formatted inline + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # attribution; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # audiodata; does not contain text; + # NOTE: the attributes might be translated + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + $self->{options}{'_default_attributes'}.=' fileref'; + + # audioobject; does not contain text; + # NOTE: might be contained in a inlinemediaobject + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # author; does not contain text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # authorblurb; does not contain text; Formatted as a displayed block. + # v4, not in v5 + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # authorgroup; does not contain text; Formatted inline or as a + # displayed block depending on context + # NOTE: given the possible parents, it is probably very rarely + # inlined + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # authorinitials; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + +# BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB + + # beginpage; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # bibliocoverage; contains text; Formatted inline + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # bibliodiv; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # biblioentry; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # bibliography; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # bibliographyinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # biblioid; contains text; Formatted inline + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # bibliolist; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " "; + $self->{options}{'_default_break'} .= " "; + + # bibliomisc; contains text; Formatted inline + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_inline'} .= " "; + + # bibliomixed; contains text; Formatted as a displayed block + $self->{options}{'_default_translated'} .= " "; + $self->{options}{'_default_placeholder'} .= " "; + + # bibliomset; contains text; Formatted as a displayed block + # NOTE: content might need to be inlined, e.g. + $self->{options}{'_default_translated'} .= " <bibliomset>"; + $self->{options}{'_default_placeholder'} .= " <bibliomset>"; + + # biblioref; does not contain text; Formatted inline + $self->{options}{'_default_untranslated'} .= " <biblioref>"; + $self->{options}{'_default_inline'} .= " <biblioref>"; + + # bibliorelation; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <bibliorelation>"; + $self->{options}{'_default_inline'} .= " <bibliorelation>"; + + # biblioset; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <biblioset>"; + $self->{options}{'_default_break'} .= " <biblioset>"; + + # bibliosource; contains text; Formatted inline + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <bibliosource>"; + $self->{options}{'_default_inline'} .= " <bibliosource>"; + + # blockinfo; does not contain text; v4.2, not in v5 + $self->{options}{'_default_untranslated'} .= " <blockinfo>"; + $self->{options}{'_default_placeholder'} .= " <blockinfo>"; + + # blockquote; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <blockquote>"; + $self->{options}{'_default_break'} .= " <blockquote>"; + + # book; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <book>"; + $self->{options}{'_default_break'} .= " <book>"; + + # bookbiblio; does not contain text; Formatted as a displayed block + # Removed in v4.0 + $self->{options}{'_default_untranslated'} .= " <bookbiblio>"; + $self->{options}{'_default_break'} .= " <bookbiblio>"; + + # bookinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <bookinfo>"; + $self->{options}{'_default_placeholder'} .= " <bookinfo>"; + + # bridgehead; contains text; Formatted as a displayed block + $self->{options}{'_default_translated'} .= " <bridgehead>"; + $self->{options}{'_default_break'} .= " <bridgehead>"; + +# CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC + + # callout; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <callout>"; + $self->{options}{'_default_break'} .= " <callout>"; + + # calloutlist; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <calloutlist>"; + $self->{options}{'_default_break'} .= " <calloutlist>"; + + # caption; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <caption>"; + $self->{options}{'_default_break'} .= " <caption>"; + + # caption (db.html.caption); contains text; Formatted as a displayed block + # TODO: Check if this works + $self->{options}{'_default_translated'} .= " <table><caption>"; + $self->{options}{'_default_break'} .= " <table><caption>"; + + # caution; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <caution>"; + $self->{options}{'_default_break'} .= " <caution>"; + + # chapter; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <chapter>"; + $self->{options}{'_default_break'} .= " <chapter>"; + + # chapterinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <chapterinfo>"; + $self->{options}{'_default_placeholder'} .= " <chapterinfo>"; + + # citation; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <citation>"; + $self->{options}{'_default_inline'} .= " <citation>"; + + # citebiblioid; contains text; Formatted inline + # NOTE: maybe untranslated? + $self->{options}{'_default_translated'} .= " <citebiblioid>"; + $self->{options}{'_default_inline'} .= " <citebiblioid>"; + + # citerefentry; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <citerefentry>"; + $self->{options}{'_default_inline'} .= " <citerefentry>"; + + # citetitle; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <citetitle>"; + $self->{options}{'_default_inline'} .= " <citetitle>"; + + # city; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <city>"; + $self->{options}{'_default_inline'} .= " <city>"; + + # classname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <classname>"; + $self->{options}{'_default_inline'} .= " <classname>"; + + # classsynopsis; does not contain text; may be in a para + # NOTE: It may contain a classsynopsisinfo, which should be + # verbatim + # XXX: since it is in untranslated class, does the W flag takes + # effect? + $self->{options}{'_default_untranslated'} .= " W<classsynopsis>"; + $self->{options}{'_default_placeholder'} .= " <classsynopsis>"; + + # classsynopsisinfo; contains text; + # NOTE: see above + $self->{options}{'_default_translated'} .= " W<classsynopsisinfo>"; + $self->{options}{'_default_inline'} .= " <classsynopsisinfo>"; + + # cmdsynopsis; does not contain text; may be in a para + # NOTE: It may be clearer as a verbatim block + # XXX: since it is in untranslated class, does the W flag takes + # effect? => not completely. Rewrap afterward? + $self->{options}{'_default_untranslated'} .= " W<cmdsynopsis>"; + $self->{options}{'_default_placeholder'} .= " <cmdsynopsis>"; + + # co; does not contain text; Formatted inline + # XXX: tranlsated or not? (label attribute) + $self->{options}{'_default_translated'} .= " <co>"; + $self->{options}{'_default_inline'} .= " <co>"; + + # code; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <code>"; + $self->{options}{'_default_inline'} .= " <code>"; + + # col; does not contain text; + # NOTE: could be translated to change the layout in a translation + # To be done on colgroup in that case. + $self->{options}{'_default_untranslated'} .= " <col>"; + $self->{options}{'_default_break'} .= " <col>"; + + # colgroup; does not contain text; + # NOTE: could be translated to change the layout in a translation + $self->{options}{'_default_untranslated'} .= " <colgroup>"; + $self->{options}{'_default_break'} .= " <colgroup>"; + + # collab; does not contain text; Formatted inline or as a + # displayed block depending on context + # NOTE: could be in the break class + $self->{options}{'_default_untranslated'} .= " <collab>"; + $self->{options}{'_default_inline'} .= " <collab>"; + + # collabname; contains text; Formatted inline or as a + # displayed block depending on context; v4, not in v5 + $self->{options}{'_default_translated'} .= " <collabname>"; + $self->{options}{'_default_inline'} .= " <collabname>"; + + # colophon; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <colophon>"; + $self->{options}{'_default_break'} .= " <colophon>"; + + # colspec; does not contain text; + # NOTE: could be translated to change the layout in a translation + $self->{options}{'_default_untranslated'} .= " <colspec>"; + $self->{options}{'_default_break'} .= " <colspec>"; + + # command; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <command>"; + $self->{options}{'_default_inline'} .= " <command>"; + + # comment; contains text; Formatted inline or as a displayed block + # Renamed to remark in v4.0 + $self->{options}{'_default_translated'} .= " <comment>"; + $self->{options}{'_default_inline'} .= " <comment>"; + + # computeroutput; contains text; Formatted inline + # NOTE: "is not a verbatim environment, but an inline." + $self->{options}{'_default_translated'} .= " <computeroutput>"; + $self->{options}{'_default_inline'} .= " <computeroutput>"; + + # confdates; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " <confdates>"; + $self->{options}{'_default_inline'} .= " <confdates>"; + + # confgroup; does not contain text; Formatted inline or as a + # displayed block depending on context + # NOTE: could be in the break class + $self->{options}{'_default_untranslated'} .= " <confgroup>"; + $self->{options}{'_default_inline'} .= " <confgroup>"; + + # confnum; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " <confnum>"; + $self->{options}{'_default_inline'} .= " <confnum>"; + + # confsponsor; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " <confsponsor>"; + $self->{options}{'_default_inline'} .= " <confsponsor>"; + + # conftitle; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " <conftitle>"; + $self->{options}{'_default_inline'} .= " <conftitle>"; + + # constant; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <constant>"; + $self->{options}{'_default_inline'} .= " <constant>"; + + # constraint; does not contain text; + # NOTE: it might be better to have the production as verbatim + # Keeping the constrainst inline to have it close to the + # lhs or rhs. + # The attribute is translatable + $self->{options}{'_default_untranslated'} .= " <constraint>"; + $self->{options}{'_default_break'} .= " <constraint>"; + + # constraintdef; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <constraintdef>"; + $self->{options}{'_default_break'} .= " <constraintdef>"; + + # constructorsynopsis; does not contain text; may be in a para + # NOTE: It may be clearer as a verbatim block + # XXX: since it is in untranslated class, does the W flag takes + # effect? + $self->{options}{'_default_untranslated'} .= " W<constructorsynopsis>"; + $self->{options}{'_default_placeholder'} .= " <constructorsynopsis>"; + + # contractnum; contains text; Formatted inline or as a displayed block + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <contractnum>"; + $self->{options}{'_default_inline'} .= " <contractnum>"; + + # contractsponsor; contains text; Formatted inline or as a displayed block + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <contractsponsor>"; + $self->{options}{'_default_inline'} .= " <contractsponsor>"; + + # contrib; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_translated'} .= " <contrib>"; + $self->{options}{'_default_inline'} .= " <contrib>"; + + # copyright; contains text; Formatted inline or as a displayed block + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <copyright>"; + $self->{options}{'_default_inline'} .= " <copyright>"; + + # coref; does not contain text; Formatted inline + # XXX: tranlsated or not? (label attribute) + $self->{options}{'_default_translated'} .= " <coref>"; + $self->{options}{'_default_inline'} .= " <coref>"; + + # corpauthor; contains text; Formatted inline or as a + # displayed block depending on context; v4, not in v5 + $self->{options}{'_default_translated'} .= " <corpauthor>"; + $self->{options}{'_default_inline'} .= " <corpauthor>"; + + # corpcredit; contains text; Formatted inline or as a + # displayed block depending on context; v4, not in v5 + $self->{options}{'_default_translated'} .= " <corpcredit>"; + $self->{options}{'_default_inline'} .= " <corpcredit>"; + + # corpname; contains text; Formatted inline or as a + # displayed block depending on context; v4, not in v5 + $self->{options}{'_default_translated'} .= " <corpname>"; + $self->{options}{'_default_inline'} .= " <corpname>"; + + # country; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <country>"; + $self->{options}{'_default_inline'} .= " <country>"; + + # cover; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <cover>"; + $self->{options}{'_default_break'} .= " <cover>"; + +# DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD + + # database; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <database>"; + $self->{options}{'_default_inline'} .= " <database>"; + + # date; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <date>"; + $self->{options}{'_default_inline'} .= " <date>"; + + # dedication; contains text; Formatted as a displayed block + $self->{options}{'_default_translated'} .= " <dedication>"; + $self->{options}{'_default_break'} .= " <dedication>"; + + # destructorsynopsis; does not contain text; may be in a para + # NOTE: It may be clearer as a verbatim block + # XXX: since it is in untranslated class, does the W flag takes + # effect? + $self->{options}{'_default_untranslated'} .= " W<destructorsynopsis>"; + $self->{options}{'_default_placeholder'} .= " <destructorsynopsis>"; + + # docinfo; does not contain text; removed in v4.0 + $self->{options}{'_default_untranslated'} .= " <docinfo>"; + $self->{options}{'_default_placeholder'} .= " <docinfo>"; + +# EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE + + # edition; contains text; Formatted inline or as a displayed block + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <edition>"; + $self->{options}{'_default_inline'} .= " <edition>"; + + # editor; does not contain text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_untranslated'} .= " <editor>"; + $self->{options}{'_default_inline'} .= " <editor>"; + + # email; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <email>"; + $self->{options}{'_default_inline'} .= " <email>"; + + # emphasis; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <emphasis>"; + $self->{options}{'_default_inline'} .= " <emphasis>"; + + # entry; contains text; + $self->{options}{'_default_translated'} .= " <entry>"; + $self->{options}{'_default_break'} .= " <entry>"; + + # entrytbl; does not contain text; + $self->{options}{'_default_untranslated'} .= " <entrytbl>"; + $self->{options}{'_default_break'} .= " <entrytbl>"; + + # envar; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <envar>"; + $self->{options}{'_default_inline'} .= " <envar>"; + + # epigraph; contains text; Formatted as a displayed block. + # NOTE: maybe contained in a para + $self->{options}{'_default_translated'} .= " <epigraph>"; + $self->{options}{'_default_placeholder'} .= " <epigraph>"; + + # equation; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <equation>"; + $self->{options}{'_default_break'} .= " <equation>"; + + # errorcode; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <errorcode>"; + $self->{options}{'_default_inline'} .= " <errorcode>"; + + # errorname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <errorname>"; + $self->{options}{'_default_inline'} .= " <errorname>"; + + # errortext; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <errortext>"; + $self->{options}{'_default_inline'} .= " <errortext>"; + + # errortype; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <errortype>"; + $self->{options}{'_default_inline'} .= " <errortype>"; + + # example; does not contain text; Formatted as a displayed block. + # NOTE: maybe contained in a para + $self->{options}{'_default_untranslated'} .= " <example>"; + $self->{options}{'_default_placeholder'} .= " <example>"; + + # exceptionname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <exceptionname>"; + $self->{options}{'_default_inline'} .= " <exceptionname>"; + + # extendedlink; does not contain text; + $self->{options}{'_default_untranslated'} .= " <extendedlink>"; + $self->{options}{'_default_inline'} .= " <extendedlink>"; + +# FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + + # fax; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <fax>"; + $self->{options}{'_default_inline'} .= " <fax>"; + + # fieldsynopsis; does not contain text; may be in a para + $self->{options}{'_default_untranslated'} .= " <fieldsynopsis>"; + $self->{options}{'_default_inline'} .= " <fieldsynopsis>"; + + # figure; does not contain text; Formatted as a displayed block. + # NOTE: maybe contained in a para + $self->{options}{'_default_untranslated'} .= " <figure>"; + $self->{options}{'_default_placeholder'} .= " <figure>"; + + # filename; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <filename>"; + $self->{options}{'_default_inline'} .= " <filename>"; + + # firstname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <firstname>"; + $self->{options}{'_default_inline'} .= " <firstname>"; + + # firstterm; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <firstterm>"; + $self->{options}{'_default_inline'} .= " <firstterm>"; + + # footnote; contains text; + $self->{options}{'_default_translated'} .= " <footnote>"; + $self->{options}{'_default_placeholder'} .= " <footnote>"; + + # footnoteref; contains text; + $self->{options}{'_default_translated'} .= " <footnoteref>"; + $self->{options}{'_default_inline'} .= " <footnoteref>"; + + # foreignphrase; contains text; + $self->{options}{'_default_translated'} .= " <foreignphrase>"; + $self->{options}{'_default_inline'} .= " <foreignphrase>"; + + # formalpara; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <formalpara>"; + $self->{options}{'_default_break'} .= " <formalpara>"; + + # funcdef; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <funcdef>"; + $self->{options}{'_default_inline'} .= " <funcdef>"; + + # funcparams; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <funcparams>"; + $self->{options}{'_default_inline'} .= " <funcparams>"; + + # funcprototype; does not contain text; + # NOTE: maybe contained in a funcsynopsis, contained in a para + $self->{options}{'_default_untranslated'} .= " <funcprototype>"; + $self->{options}{'_default_placeholder'} .= " <funcprototype>"; + + # funcsynopsis; does not contain text; + # NOTE: maybe contained in a para + $self->{options}{'_default_untranslated'} .= " <funcsynopsis>"; + $self->{options}{'_default_placeholder'} .= " <funcsynopsis>"; + + # funcsynopsisinfo; contains text; verbatim + # NOTE: maybe contained in a funcsynopsis, contained in a para + $self->{options}{'_default_translated'} .= " W<funcsynopsisinfo>"; + $self->{options}{'_default_placeholder'} .= " <funcsynopsisinfo>"; + + # function; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <function>"; + $self->{options}{'_default_inline'} .= " <function>"; + +# GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG + + # glossary; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <glossary>"; + $self->{options}{'_default_break'} .= " <glossary>"; + + # glossaryinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <glossaryinfo>"; + $self->{options}{'_default_placeholder'} .= " <glossaryinfo>"; + + # glossdef; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <glossdef>"; + $self->{options}{'_default_break'} .= " <glossdef>"; + + # glossdiv; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <glossdiv>"; + $self->{options}{'_default_break'} .= " <glossdiv>"; + + # glossentry; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <glossentry>"; + $self->{options}{'_default_break'} .= " <glossentry>"; + + # glosslist; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <glosslist>"; + $self->{options}{'_default_break'} .= " <glosslist>"; + + # glosssee; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <glosssee>"; + $self->{options}{'_default_break'} .= " <glosssee>"; + + # glossseealso; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <glossseealso>"; + $self->{options}{'_default_break'} .= " <glossseealso>"; + + # glossterm; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <glossterm>"; + $self->{options}{'_default_inline'} .= " <glossterm>"; + + # graphic; does not contain text; Formatted as a displayed block + # v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <graphic>"; + $self->{options}{'_default_inline'} .= " <graphic>"; + $self->{options}{'_default_attributes'}.=' <graphic>fileref'; + + # graphicco; does not contain text; Formatted as a displayed block. + # v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <graphicco>"; + $self->{options}{'_default_placeholder'} .= " <graphicco>"; + + # group; does not contain text; Formatted inline + $self->{options}{'_default_untranslated'} .= " W<group>"; + $self->{options}{'_default_inline'} .= " <group>"; + + # guibutton; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <guibutton>"; + $self->{options}{'_default_inline'} .= " <guibutton>"; + + # guiicon; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <guiicon>"; + $self->{options}{'_default_inline'} .= " <guiicon>"; + + # guilabel; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <guilabel>"; + $self->{options}{'_default_inline'} .= " <guilabel>"; + + # guimenu; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <guimenu>"; + $self->{options}{'_default_inline'} .= " <guimenu>"; + + # guimenuitem; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <guimenuitem>"; + $self->{options}{'_default_inline'} .= " <guimenuitem>"; + + # guisubmenu; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <guisubmenu>"; + $self->{options}{'_default_inline'} .= " <guisubmenu>"; + +# HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH + + # hardware; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <hardware>"; + $self->{options}{'_default_inline'} .= " <hardware>"; + + # highlights; does not contain text; Formatted inline + # v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <highlights>"; + $self->{options}{'_default_break'} .= " <highlights>"; + + # holder; contains text; + # NOTE: may depend on the copyright container + $self->{options}{'_default_translated'} .= " <holder>"; + $self->{options}{'_default_inline'} .= " <holder>"; + + # honorific; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <honorific>"; + $self->{options}{'_default_inline'} .= " <honorific>"; + + # html:button; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <html:button>"; + $self->{options}{'_default_inline'} .= " <html:button>"; + + # html:fieldset; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <html:fieldset>"; + $self->{options}{'_default_inline'} .= " <html:fieldset>"; + + # html:form; does not contain text; + $self->{options}{'_default_translated'} .= " <html:form>"; + $self->{options}{'_default_inline'} .= " <html:form>"; + + # html:input; does not contain text; Formatted inline + # NOTE: attributes are translatable + $self->{options}{'_default_translated'} .= " <html:input>"; + $self->{options}{'_default_inline'} .= " <html:input>"; + + # html:label; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <html:label>"; + $self->{options}{'_default_inline'} .= " <html:label>"; + + # html:legend; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <html:legend>"; + $self->{options}{'_default_inline'} .= " <html:legend>"; + + # html:option; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <html:option>"; + $self->{options}{'_default_inline'} .= " <html:option>"; + + # html:select; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <html:select>"; + $self->{options}{'_default_inline'} .= " <html:select>"; + + # html:textarea; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <html:textarea>"; + $self->{options}{'_default_placeholder'} .= " <html:textarea>"; + + # imagedata; does not contain text; May be formatted inline or + # as a displayed block, depending on context + $self->{options}{'_default_translated'} .= " <imagedata>"; + $self->{options}{'_default_inline'} .= " <imagedata>"; + $self->{options}{'_default_attributes'}.=' <imagedata>fileref'; + + # imageobject; does not contain text; May be formatted inline or + # as a displayed block, depending on context + $self->{options}{'_default_untranslated'} .= " <imageobject>"; + $self->{options}{'_default_inline'} .= " <imageobject>"; + + # imageobjectco; does not contain text; Formatted as a displayed block + # NOTE: may be in a inlinemediaobject + # TODO: check if this works when the inlinemediaobject is defined + # as inline + $self->{options}{'_default_untranslated'} .= " <imageobjectco>"; + $self->{options}{'_default_break'} .= " <imageobjectco>"; + + # important; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <important>"; + $self->{options}{'_default_break'} .= " <important>"; + + # index; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <index>"; + $self->{options}{'_default_break'} .= " <index>"; + + # indexdiv; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <indexdiv>"; + $self->{options}{'_default_break'} .= " <indexdiv>"; + + # indexentry; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <indexentry>"; + $self->{options}{'_default_break'} .= " <indexentry>"; + + # indexinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <indexinfo>"; + $self->{options}{'_default_placeholder'} .= " <indexinfo>"; + + # indexterm; does not contain text; + $self->{options}{'_default_untranslated'} .= " <indexterm>"; + $self->{options}{'_default_placeholder'} .= " <indexterm>"; + + # info; does not contain text; + $self->{options}{'_default_untranslated'} .= " <info>"; + $self->{options}{'_default_placeholder'} .= " <info>"; + + # informalequation; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <informalequation>"; + $self->{options}{'_default_placeholder'} .= " <informalequation>"; + + # informalexample; does not contain text; Formatted as a displayed block. + # NOTE: can be in a para + $self->{options}{'_default_untranslated'} .= " <informalexample>"; + $self->{options}{'_default_break'} .= " <informalexample>"; + + # informalfigure; does not contain text; Formatted as a displayed block. + # NOTE: can be in a para + $self->{options}{'_default_untranslated'} .= " <informalfigure>"; + $self->{options}{'_default_break'} .= " <informalfigure>"; + + # informaltable; does not contain text; Formatted as a displayed block. + # NOTE: can be in a para + $self->{options}{'_default_untranslated'} .= " <informaltable>"; + $self->{options}{'_default_break'} .= " <informaltable>"; + + # initializer; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <initializer>"; + $self->{options}{'_default_inline'} .= " <initializer>"; + + # inlineequation; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " W<inlineequation>"; + $self->{options}{'_default_placeholder'} .= " <inlineequation>"; + + # inlinegraphic; does not contain text; Formatted inline + # empty; v4, not in v5 + $self->{options}{'_default_translated'} .= " W<inlinegraphic>"; + $self->{options}{'_default_inline'} .= " <inlinegraphic>"; + + # inlinemediaobject; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <inlinemediaobject>"; + $self->{options}{'_default_placeholder'} .= " <inlinemediaobject>"; + + # interface; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <interface>"; + $self->{options}{'_default_inline'} .= " <interface>"; + + # interfacedefinition; contains text; Formatted inline + # Removed in v4.0 + $self->{options}{'_default_translated'} .= " <interfacedefinition>"; + $self->{options}{'_default_inline'} .= " <interfacedefinition>"; + + # interfacename; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <interfacename>"; + $self->{options}{'_default_inline'} .= " <interfacename>"; + + # invpartnumber; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <invpartnumber>"; + $self->{options}{'_default_inline'} .= " <invpartnumber>"; + + # isbn; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <isbn>"; + $self->{options}{'_default_inline'} .= " <isbn>"; + + # issn; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <issn>"; + $self->{options}{'_default_inline'} .= " <issn>"; + + # issuenum; contains text; Formatted inline or as a displayed block + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <issuenum>"; + $self->{options}{'_default_inline'} .= " <issuenum>"; + + # itemizedlist; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <itemizedlist>"; + $self->{options}{'_default_break'} .= " <itemizedlist>"; + + # itermset; does not contain text; + # FIXME + $self->{options}{'_default_untranslated'} .= " <itermset>"; + $self->{options}{'_default_inline'} .= " <itermset>"; + +# JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ + + # jobtitle; contains text; Formatted inline or as a displayed block + # NOTE: can be in a para + $self->{options}{'_default_translated'} .= " <jobtitle>"; + $self->{options}{'_default_inline'} .= " <jobtitle>"; + +# KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK + + # keycap; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <keycap>"; + $self->{options}{'_default_inline'} .= " <keycap>"; + + # keycode; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <keycode>"; + $self->{options}{'_default_inline'} .= " <keycode>"; + + # keycombo; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <keycombo>"; + $self->{options}{'_default_inline'} .= " <keycombo>"; + + # keysym; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <keysym>"; + $self->{options}{'_default_inline'} .= " <keysym>"; + + # keyword; contains text; + # NOTE: could be inline + $self->{options}{'_default_translated'} .= " <keyword>"; + $self->{options}{'_default_break'} .= " <keyword>"; + + # keywordset; contains text; Formatted inline or as a displayed block + # NOTE: could be placeholder/break + $self->{options}{'_default_translated'} .= " <keywordset>"; + $self->{options}{'_default_break'} .= " <keywordset>"; + +# LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL + + # label; contains text; Formatted as a displayed block + $self->{options}{'_default_translated'} .= " <label>"; + $self->{options}{'_default_break'} .= " <label>"; + + # legalnotice; contains text; Formatted as a displayed block + $self->{options}{'_default_translated'} .= " <legalnotice>"; + $self->{options}{'_default_break'} .= " <legalnotice>"; + + # lhs; contains text; Formatted as a displayed block. + # NOTE: it might be better to have the production as verbatim + # Keeping the constrainst inline to have it close to the + # lhs or rhs. + $self->{options}{'_default_translated'} .= " <lhs>"; + $self->{options}{'_default_break'} .= " <lhs>"; + + # lineage; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <lineage>"; + $self->{options}{'_default_inline'} .= " <lineage>"; + + # lineannotation; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <lineannotation>"; + $self->{options}{'_default_inline'} .= " <lineannotation>"; + + # link; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <link>"; + $self->{options}{'_default_inline'} .= " <link>"; + + # listitem; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <listitem>"; + $self->{options}{'_default_break'} .= " <listitem>"; + + # literal; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <literal>"; + $self->{options}{'_default_inline'} .= " <literal>"; + + # literallayout; contains text; verbatim + $self->{options}{'_default_translated'} .= " W<literallayout>"; + $self->{options}{'_default_placeholder'} .= " <literallayout>"; + + # locator; does not contain text; + $self->{options}{'_default_untranslated'} .= " <locator>"; + $self->{options}{'_default_inline'} .= " <locator>"; + + # lot; does not contain text; Formatted as a displayed block. + # v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <lot>"; + $self->{options}{'_default_break'} .= " <lot>"; + + # lotentry; contains text; Formatted as a displayed block. + # v4, not in v5 + $self->{options}{'_default_translated'} .= " <lotentry>"; + $self->{options}{'_default_break'} .= " <lotentry>"; + +# MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + + # manvolnum; contains text; + $self->{options}{'_default_translated'} .= " <manvolnum>"; + $self->{options}{'_default_inline'} .= " <manvolnum>"; + + # markup; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <markup>"; + $self->{options}{'_default_inline'} .= " <markup>"; + + # mathphrase; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <mathphrase>"; + $self->{options}{'_default_inline'} .= " <mathphrase>"; + + # medialabel; contains text; Formatted inline + # v4, not in v5 + $self->{options}{'_default_translated'} .= " <medialabel>"; + $self->{options}{'_default_inline'} .= " <medialabel>"; + + # mediaobject; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <mediaobject>"; + $self->{options}{'_default_placeholder'} .= " <mediaobject>"; + + # mediaobjectco; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <mediaobjectco>"; + $self->{options}{'_default_placeholder'} .= " <mediaobjectco>"; + + # member; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <member>"; + $self->{options}{'_default_inline'} .= " <member>"; + + # menuchoice; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <menuchoice>"; + $self->{options}{'_default_inline'} .= " <menuchoice>"; + + # methodname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <methodname>"; + $self->{options}{'_default_inline'} .= " <methodname>"; + + # methodparam; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <methodparam>"; + $self->{options}{'_default_inline'} .= " <methodparam>"; + + # methodsynopsis; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <methodsynopsis>"; + $self->{options}{'_default_inline'} .= " <methodsynopsis>"; + + # modifier; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <modifier>"; + $self->{options}{'_default_inline'} .= " <modifier>"; + + # mousebutton; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <mousebutton>"; + $self->{options}{'_default_inline'} .= " <mousebutton>"; + + # msg; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msg>"; + $self->{options}{'_default_break'} .= " <msg>"; + + # msgaud; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <msgaud>"; + $self->{options}{'_default_break'} .= " <msgaud>"; + + # msgentry; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgentry>"; + $self->{options}{'_default_break'} .= " <msgentry>"; + + # msgexplan; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgexplan>"; + $self->{options}{'_default_break'} .= " <msgexplan>"; + + # msginfo; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msginfo>"; + $self->{options}{'_default_break'} .= " <msginfo>"; + + # msglevel; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <msglevel>"; + $self->{options}{'_default_break'} .= " <msglevel>"; + + # msgmain; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgmain>"; + $self->{options}{'_default_break'} .= " <msgmain>"; + + # msgorig; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <msgorig>"; + $self->{options}{'_default_break'} .= " <msgorig>"; + + # msgrel; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgrel>"; + $self->{options}{'_default_break'} .= " <msgrel>"; + + # msgset; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgset>"; + $self->{options}{'_default_placeholder'} .= " <msgset>"; + + # msgsub; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgsub>"; + $self->{options}{'_default_break'} .= " <msgsub>"; + + # msgtext; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <msgtext>"; + $self->{options}{'_default_break'} .= " <msgtext>"; + +# NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN + + # nonterminal; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <nonterminal>"; + $self->{options}{'_default_inline'} .= " <nonterminal>"; + + # note; does not contain text; Formatted inline + # NOTE: can be in a para + $self->{options}{'_default_untranslated'} .= " <note>"; + $self->{options}{'_default_inline'} .= " <note>"; + +# OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO + + # objectinfo; does not contain text; v3.1 -> v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <objectinfo>"; + $self->{options}{'_default_placeholder'} .= " <objectinfo>"; + + # olink; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <olink>"; + $self->{options}{'_default_inline'} .= " <olink>"; + + # ooclass; does not contain text; Formatted inline + $self->{options}{'_default_translated'} .= " <ooclass>"; + $self->{options}{'_default_inline'} .= " <ooclass>"; + + # ooexception; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <ooexception>"; + $self->{options}{'_default_inline'} .= " <ooexception>"; + + # oointerface; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <oointerface>"; + $self->{options}{'_default_inline'} .= " <oointerface>"; + + # option; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <option>"; + $self->{options}{'_default_inline'} .= " <option>"; + + # optional; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <optional>"; + $self->{options}{'_default_inline'} .= " <optional>"; + + # orderedlist; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <orderedlist>"; + $self->{options}{'_default_placeholder'} .= " <orderedlist>"; + + # org; does not contain text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_untranslated'} .= " <org>"; + $self->{options}{'_default_inline'} .= " <org>"; + + # orgdiv; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <orgdiv>"; + $self->{options}{'_default_inline'} .= " <orgdiv>"; + + # orgname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <orgname>"; + $self->{options}{'_default_inline'} .= " <orgname>"; + + # otheraddr; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <otheraddr>"; + $self->{options}{'_default_inline'} .= " <otheraddr>"; + + # othercredit; does not contain text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_untranslated'} .= " <othercredit>"; + $self->{options}{'_default_inline'} .= " <othercredit>"; + + # othername; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <othername>"; + $self->{options}{'_default_inline'} .= " <othername>"; + +# PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP + + # package; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <package>"; + $self->{options}{'_default_inline'} .= " <package>"; + + # pagenums; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <pagenums>"; + $self->{options}{'_default_inline'} .= " <pagenums>"; + + # para; contains text; Formatted as a displayed block + $self->{options}{'_default_translated'} .= " <para>"; + $self->{options}{'_default_break'} .= " <para>"; + + # paramdef; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <paramdef>"; + $self->{options}{'_default_inline'} .= " <paramdef>"; + + # parameter; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <parameter>"; + $self->{options}{'_default_inline'} .= " <parameter>"; + + # part; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <part>"; + $self->{options}{'_default_break'} .= " <part>"; + + # partinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <partinfo>"; + $self->{options}{'_default_placeholder'} .= " <partinfo>"; + + # partintro; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <partintro>"; + $self->{options}{'_default_break'} .= " <partintro>"; + + # person; does not contain text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_untranslated'} .= " <person>"; + $self->{options}{'_default_inline'} .= " <person>"; + + # personblurb; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <personblurb>"; + $self->{options}{'_default_placeholder'} .= " <personblurb>"; + + # personname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <personname>"; + $self->{options}{'_default_inline'} .= " <personname>"; + + # phone; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <phone>"; + $self->{options}{'_default_inline'} .= " <phone>"; + + # phrase; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <phrase>"; + $self->{options}{'_default_inline'} .= " <phrase>"; + + # pob; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <pob>"; + $self->{options}{'_default_inline'} .= " <pob>"; + + # postcode; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <postcode>"; + $self->{options}{'_default_inline'} .= " <postcode>"; + + # preface; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <preface>"; + $self->{options}{'_default_break'} .= " <preface>"; + + # prefaceinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <prefaceinfo>"; + $self->{options}{'_default_placeholder'} .= " <prefaceinfo>"; + + # primary; contains text; + $self->{options}{'_default_translated'} .= " <primary>"; + $self->{options}{'_default_break'} .= " <primary>"; + + # primaryie; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <primaryie>"; + $self->{options}{'_default_break'} .= " <primaryie>"; + + # printhistory; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <printhistory>"; + $self->{options}{'_default_break'} .= " <printhistory>"; + + # procedure; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <procedure>"; + $self->{options}{'_default_placeholder'} .= " <procedure>"; + + # production; doesnot contain text; + # NOTE: it might be better to have the production as verbatim + # Keeping the constrainst inline to have it close to the + # lhs or rhs. + $self->{options}{'_default_untranslated'} .= " <production>"; + $self->{options}{'_default_break'} .= " <production>"; + + # productionrecap; does not contain text; like production + $self->{options}{'_default_untranslated'} .= " <productionrecap>"; + $self->{options}{'_default_break'} .= " <productionrecap>"; + + # productionset; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <productionset>"; + $self->{options}{'_default_placeholder'} .= " <productionset>"; + + # productname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <productname>"; + $self->{options}{'_default_inline'} .= " <productname>"; + + # productnumber; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <productnumber>"; + $self->{options}{'_default_inline'} .= " <productnumber>"; + + # programlisting; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " W<programlisting>"; + $self->{options}{'_default_placeholder'} .= " <programlisting>"; + + # programlistingco; contains text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <programlistingco>"; + $self->{options}{'_default_placeholder'} .= " <programlistingco>"; + + # prompt; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <prompt>"; + $self->{options}{'_default_inline'} .= " <prompt>"; + + # property; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <property>"; + $self->{options}{'_default_inline'} .= " <property>"; + + # pubdate; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <pubdate>"; + $self->{options}{'_default_inline'} .= " <pubdate>"; + + # publisher; does not contain text; Formatted inline or as a displayed block + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <publisher>"; + $self->{options}{'_default_inline'} .= " <publisher>"; + + # publishername; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_translated'} .= " <publishername>"; + $self->{options}{'_default_inline'} .= " <publishername>"; + +# QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ + + # qandadiv; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <qandadiv>"; + $self->{options}{'_default_break'} .= " <qandadiv>"; + + # qandaentry; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <qandaentry>"; + $self->{options}{'_default_break'} .= " <qandaentry>"; + + # qandaset; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <qandaset>"; + $self->{options}{'_default_break'} .= " <qandaset>"; + + # question; does not contain text; + $self->{options}{'_default_untranslated'} .= " <question>"; + $self->{options}{'_default_break'} .= " <question>"; + + # quote; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <quote>"; + $self->{options}{'_default_inline'} .= " <quote>"; + +# RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR + + # refclass; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <refclass>"; + $self->{options}{'_default_break'} .= " <refclass>"; + + # refdescriptor; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <refdescriptor>"; + $self->{options}{'_default_break'} .= " <refdescriptor>"; + + # refentry; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refentry>"; + $self->{options}{'_default_break'} .= " <refentry>"; + + # refentryinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <refentryinfo>"; + $self->{options}{'_default_placeholder'} .= " <refentryinfo>"; + + # refentrytitle; contains text; Formatted as a displayed block +# FIXME: do not seems to be a block + $self->{options}{'_default_translated'} .= " <refentrytitle>"; + $self->{options}{'_default_inline'} .= " <refentrytitle>"; + + # reference; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <reference>"; + $self->{options}{'_default_break'} .= " <reference>"; + + # referenceinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <referenceinfo>"; + $self->{options}{'_default_placeholder'} .= " <referenceinfo>"; + + # refmeta; does not contains text; + # NOTE: could be in the inline class + $self->{options}{'_default_untranslated'} .= " <refmeta>"; + $self->{options}{'_default_break'} .= " <refmeta>"; + + # refmiscinfo; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <refmiscinfo>"; + $self->{options}{'_default_break'} .= " <refmiscinfo>"; + + # refname; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <refname>"; + $self->{options}{'_default_break'} .= " <refname>"; + + # refnamediv; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refnamediv>"; + $self->{options}{'_default_break'} .= " <refnamediv>"; + + # refpurpose; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <refpurpose>"; + $self->{options}{'_default_inline'} .= " <refpurpose>"; + + # refsect1; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refsect1>"; + $self->{options}{'_default_break'} .= " <refsect1>"; + + # refsect1info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <refsect1info>"; + $self->{options}{'_default_placeholder'} .= " <refsect1info>"; + + # refsect2; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refsect2>"; + $self->{options}{'_default_break'} .= " <refsect2>"; + + # refsect2info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <refsect2info>"; + $self->{options}{'_default_placeholder'} .= " <refsect2info>"; + + # refsect3; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refsect3>"; + $self->{options}{'_default_break'} .= " <refsect3>"; + + # refsect3info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <refsect3info>"; + $self->{options}{'_default_placeholder'} .= " <refsect3info>"; + + # refsection; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refsection>"; + $self->{options}{'_default_break'} .= " <refsection>"; + + # refsectioninfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <refsectioninfo>"; + $self->{options}{'_default_placeholder'} .= " <refsectioninfo>"; + + # refsynopsisdiv; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <refsynopsisdiv>"; + $self->{options}{'_default_break'} .= " <refsynopsisdiv>"; + + # refsynopsisdivinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <refsynopsisdivinfo>"; + $self->{options}{'_default_placeholder'} .= " <refsynopsisdivinfo>"; + + # releaseinfo; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <releaseinfo>"; + $self->{options}{'_default_break'} .= " <releaseinfo>"; + + # remark; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_translated'} .= " <remark>"; + $self->{options}{'_default_inline'} .= " <remark>"; + + # replaceable; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <replaceable>"; + $self->{options}{'_default_inline'} .= " <replaceable>"; + + # returnvalue; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <returnvalue>"; + $self->{options}{'_default_inline'} .= " <returnvalue>"; + + # revdescription; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_translated'} .= " <revdescription>"; + $self->{options}{'_default_break'} .= " <revdescription>"; + + # revhistory; does not contain text; Formatted as a displayed block + $self->{options}{'_default_untranslated'} .= " <revhistory>"; + $self->{options}{'_default_break'} .= " <revhistory>"; + + # revision; does not contain text; + $self->{options}{'_default_untranslated'} .= " <revision>"; + $self->{options}{'_default_break'} .= " <revision>"; + + # revnumber; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <revnumber>"; + $self->{options}{'_default_inline'} .= " <revnumber>"; + + # revremark; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_translated'} .= " <revremark>"; + $self->{options}{'_default_break'} .= " <revremark>"; + + # rhs; contains text; Formatted as a displayed block. + # NOTE: it might be better to have the production as verbatim + # Keeping the constrainst inline to have it close to the + # lhs or rhs. + $self->{options}{'_default_translated'} .= " <rhs>"; + $self->{options}{'_default_break'} .= " <rhs>"; + + # row; does not contain text; + $self->{options}{'_default_untranslated'} .= " <row>"; + $self->{options}{'_default_break'} .= " <row>"; + +# SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS + + # sbr; does not contain text; line break + $self->{options}{'_default_untranslated'} .= " <sbr>"; + $self->{options}{'_default_break'} .= " <sbr>"; + + # screen; contains text; verbatim + $self->{options}{'_default_translated'} .= " W<screen>"; + $self->{options}{'_default_placeholder'} .= " <screen>"; + + # screenco; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <screenco>"; + $self->{options}{'_default_placeholder'} .= " <screenco>"; + + # screeninfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <screeninfo>"; + $self->{options}{'_default_placeholder'} .= " <screeninfo>"; + + # screenshot; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <screenshot>"; + $self->{options}{'_default_placeholder'} .= " <screenshot>"; + + # secondary; contains text; + $self->{options}{'_default_translated'} .= " <secondary>"; + $self->{options}{'_default_break'} .= " <secondary>"; + + # secondaryie; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <secondaryie>"; + $self->{options}{'_default_break'} .= " <secondaryie>"; + + # sect1; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <sect1>"; + $self->{options}{'_default_break'} .= " <sect1>"; + + # sect1info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sect1info>"; + $self->{options}{'_default_placeholder'} .= " <sect1info>"; + + # sect2; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <sect2>"; + $self->{options}{'_default_break'} .= " <sect2>"; + + # sect2info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sect2info>"; + $self->{options}{'_default_placeholder'} .= " <sect2info>"; + + # sect3; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <sect3>"; + $self->{options}{'_default_break'} .= " <sect3>"; + + # sect3info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sect3info>"; + $self->{options}{'_default_placeholder'} .= " <sect3info>"; + + # sect4; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <sect4>"; + $self->{options}{'_default_break'} .= " <sect4>"; + + # sect4info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sect4info>"; + $self->{options}{'_default_placeholder'} .= " <sect4info>"; + + # sect5; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <sect5>"; + $self->{options}{'_default_break'} .= " <sect5>"; + + # sect5info; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sect5info>"; + $self->{options}{'_default_placeholder'} .= " <sect5info>"; + + # section; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <section>"; + $self->{options}{'_default_break'} .= " <section>"; + + # sectioninfo; does not contain text; v3.1 -> v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sectioninfo>"; + $self->{options}{'_default_placeholder'} .= " <sectioninfo>"; + + # see; contains text; + $self->{options}{'_default_translated'} .= " <see>"; + $self->{options}{'_default_break'} .= " <see>"; + + # seealso; contains text; + $self->{options}{'_default_translated'} .= " <seealso>"; + $self->{options}{'_default_break'} .= " <seealso>"; + + # seealsoie; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <seealsoie>"; + $self->{options}{'_default_break'} .= " <seealsoie>"; + + # seeie; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <seeie>"; + $self->{options}{'_default_break'} .= " <seeie>"; + + # seg; contains text; + $self->{options}{'_default_translated'} .= " <seg>"; + $self->{options}{'_default_break'} .= " <seg>"; + + # seglistitem; does not contain text; + $self->{options}{'_default_untranslated'} .= " <seglistitem>"; + $self->{options}{'_default_break'} .= " <seglistitem>"; + + # segmentedlist; does not contain text; + $self->{options}{'_default_untranslated'} .= " <segmentedlist>"; + $self->{options}{'_default_break'} .= " <segmentedlist>"; + + # segtitle; contains text; + $self->{options}{'_default_translated'} .= " <segtitle>"; + $self->{options}{'_default_break'} .= " <segtitle>"; + + # seriesinfo; does not contain text; + # Removed in v4.0 + $self->{options}{'_default_untranslated'} .= " <seriesinfo>"; + $self->{options}{'_default_placeholder'} .= " <seriesinfo>"; + + # seriesvolnums; contains text; Formatted inline + # NOTE: could be in the break class + $self->{options}{'_default_translated'} .= " <seriesvolnums>"; + $self->{options}{'_default_inline'} .= " <seriesvolnums>"; + + # set; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <set>"; + $self->{options}{'_default_break'} .= " <set>"; + + # setindex; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <setindex>"; + $self->{options}{'_default_break'} .= " <setindex>"; + + # setindexinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <setindexinfo>"; + $self->{options}{'_default_placeholder'} .= " <setindexinfo>"; + + # setinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <setinfo>"; + $self->{options}{'_default_placeholder'} .= " <setinfo>"; + + # sgmltag; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <sgmltag>"; + $self->{options}{'_default_inline'} .= " <sgmltag>"; + + # shortaffil; contains text; Formatted inline or as a + # displayed block depending on context + $self->{options}{'_default_translated'} .= " <shortaffil>"; + $self->{options}{'_default_inline'} .= " <shortaffil>"; + + # shortcut; does not contain text; Formatted inline + $self->{options}{'_default_untranslated'} .= " <shortcut>"; + $self->{options}{'_default_inline'} .= " <shortcut>"; + + # sidebar; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <sidebar>"; + $self->{options}{'_default_break'} .= " <sidebar>"; + + # sidebarinfo; does not contain text; v4, not in v5 + $self->{options}{'_default_untranslated'} .= " <sidebarinfo>"; + $self->{options}{'_default_placeholder'} .= " <sidebarinfo>"; + + # simpara; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <simpara>"; + $self->{options}{'_default_break'} .= " <simpara>"; + + # simplelist; does not contain text; + $self->{options}{'_default_untranslated'} .= " <simplelist>"; + $self->{options}{'_default_inline'} .= " <simplelist>"; + + # simplemsgentry; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <simplemsgentry>"; + $self->{options}{'_default_break'} .= " <simplemsgentry>"; + + # simplesect; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <simplesect>"; + $self->{options}{'_default_break'} .= " <simplesect>"; + + # spanspec; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <spanspec>"; + $self->{options}{'_default_break'} .= " <spanspec>"; + + # state; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <state>"; + $self->{options}{'_default_inline'} .= " <state>"; + + # step; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <step>"; + $self->{options}{'_default_break'} .= " <step>"; + + # stepalternatives; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <stepalternatives>"; + $self->{options}{'_default_break'} .= " <stepalternatives>"; + + # street; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <street>"; + $self->{options}{'_default_inline'} .= " <street>"; + + # structfield; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <structfield>"; + $self->{options}{'_default_inline'} .= " <structfield>"; + + # structname; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <structname>"; + $self->{options}{'_default_inline'} .= " <structname>"; + + # subject; does not contain text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_untranslated'} .= " <subject>"; + $self->{options}{'_default_break'} .= " <subject>"; + + # subjectset; does not contain text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_untranslated'} .= " <subjectset>"; + $self->{options}{'_default_break'} .= " <subjectset>"; + + # subjectterm; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <subjectterm>"; + $self->{options}{'_default_break'} .= " <subjectterm>"; + + # subscript; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <subscript>"; + $self->{options}{'_default_inline'} .= " <subscript>"; + + # substeps; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <substeps>"; + $self->{options}{'_default_break'} .= " <substeps>"; + + # subtitle; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <subtitle>"; + $self->{options}{'_default_break'} .= " <subtitle>"; + + # superscript; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <superscript>"; + $self->{options}{'_default_inline'} .= " <superscript>"; + + # surname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <surname>"; + $self->{options}{'_default_inline'} .= " <surname>"; + +#svg:svg + + # symbol; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <symbol>"; + $self->{options}{'_default_inline'} .= " <symbol>"; + + # synopfragment; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <synopfragment>"; + $self->{options}{'_default_placeholder'} .= " <synopfragment>"; + + # synopfragmentref; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <synopfragmentref>"; + $self->{options}{'_default_inline'} .= " <synopfragmentref>"; + + # synopsis; contains text; verbatim + $self->{options}{'_default_translated'} .= " W<synopsis>"; + $self->{options}{'_default_placeholder'} .= " <synopsis>"; + + # systemitem; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <systemitem>"; + $self->{options}{'_default_inline'} .= " <systemitem>"; + +# TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT + + # table; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <table>"; + $self->{options}{'_default_placeholder'} .= " <table>"; + + # tag; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <tag>"; + $self->{options}{'_default_inline'} .= " <tag>"; + + # task; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <task>"; + $self->{options}{'_default_placeholder'} .= " <task>"; + + # taskprerequisites; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <taskprerequisites>"; + $self->{options}{'_default_break'} .= " <taskprerequisites>"; + + # taskrelated; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <taskrelated>"; + $self->{options}{'_default_break'} .= " <taskrelated>"; + + # tasksummary; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <tasksummary>"; + $self->{options}{'_default_break'} .= " <tasksummary>"; + + # tbody; does not contain text; + $self->{options}{'_default_untranslated'} .= " <tbody>"; + $self->{options}{'_default_break'} .= " <tbody>"; + + # td; contains text; + $self->{options}{'_default_translated'} .= " <td>"; + $self->{options}{'_default_break'} .= " <td>"; + + # term; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <term>"; + $self->{options}{'_default_break'} .= " <term>"; + + # termdef; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <termdef>"; + $self->{options}{'_default_inline'} .= " <termdef>"; + + # tertiary; contains text; Suppressed + $self->{options}{'_default_translated'} .= " <tertiary>"; + $self->{options}{'_default_placeholder'} .= " <tertiary>"; + + # tertiaryie; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <tertiaryie>"; + $self->{options}{'_default_break'} .= " <tertiaryie>"; + + # textdata; does not contain text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_untranslated'} .= " <textdata>"; + $self->{options}{'_default_break'} .= " <textdata>"; + $self->{options}{'_default_attributes'}.=' <textdata>fileref'; + + # textobject; does not contain text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_untranslated'} .= " <textobject>"; + $self->{options}{'_default_break'} .= " <textobject>"; + + # tfoot; does not contain text; + $self->{options}{'_default_untranslated'} .= " <tfoot>"; + $self->{options}{'_default_break'} .= " <tfoot>"; + + # tgroup; does not contain text; + $self->{options}{'_default_untranslated'} .= " <tgroup>"; + $self->{options}{'_default_break'} .= " <tgroup>"; + + # th; contains text; + $self->{options}{'_default_translated'} .= " <th>"; + $self->{options}{'_default_break'} .= " <th>"; + + # thead; does not contain text; + $self->{options}{'_default_untranslated'} .= " <thead>"; + $self->{options}{'_default_break'} .= " <thead>"; + + # tip; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <tip>"; + $self->{options}{'_default_break'} .= " <tip>"; + + # title; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <title>"; + $self->{options}{'_default_break'} .= " <title>"; + + # titleabbrev; contains text; Formatted inline or as a displayed block + # NOTE: could be in the inline class + $self->{options}{'_default_translated'} .= " <titleabbrev>"; + $self->{options}{'_default_break'} .= " <titleabbrev>"; + + # toc; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <toc>"; + $self->{options}{'_default_break'} .= " <toc>"; + + # tocback; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <tocback>"; + $self->{options}{'_default_break'} .= " <tocback>"; + + # tocchap; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <tocchap>"; + $self->{options}{'_default_break'} .= " <tocchap>"; + + # tocdiv; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <tocdiv>"; + $self->{options}{'_default_break'} .= " <tocdiv>"; + + # tocentry; contains text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <tocentry>"; + $self->{options}{'_default_break'} .= " <tocentry>"; + + # tocfront; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_translated'} .= " <tocfront>"; + $self->{options}{'_default_break'} .= " <tocfront>"; + + # toclevel1; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <toclevel1>"; + $self->{options}{'_default_break'} .= " <toclevel1>"; + + # toclevel2; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <toclevel2>"; + $self->{options}{'_default_break'} .= " <toclevel2>"; + + # toclevel3; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <toclevel3>"; + $self->{options}{'_default_break'} .= " <toclevel3>"; + + # toclevel4; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <toclevel4>"; + $self->{options}{'_default_break'} .= " <toclevel4>"; + + # toclevel5; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <toclevel5>"; + $self->{options}{'_default_break'} .= " <toclevel5>"; + + # tocpart; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <tocpart>"; + $self->{options}{'_default_break'} .= " <tocpart>"; + + # token; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <token>"; + $self->{options}{'_default_inline'} .= " <token>"; + + # tr; does not contain text; + $self->{options}{'_default_untranslated'} .= " <tr>"; + $self->{options}{'_default_break'} .= " <tr>"; + + # trademark; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <trademark>"; + $self->{options}{'_default_inline'} .= " <trademark>"; + + # type; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <type>"; + $self->{options}{'_default_inline'} .= " <type>"; + +# UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU + + # ulink; contains text; Formatted inline; v4, not in v5 + $self->{options}{'_default_translated'} .= " <ulink>"; + $self->{options}{'_default_inline'} .= " <ulink>"; + + # uri; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <uri>"; + $self->{options}{'_default_inline'} .= " <uri>"; + + # userinput; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <userinput>"; + $self->{options}{'_default_inline'} .= " <userinput>"; + +# VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + + # varargs; empty element; + $self->{options}{'_default_untranslated'} .= " <varargs>"; + $self->{options}{'_default_inline'} .= " <varargs>"; + + # variablelist; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <variablelist>"; + $self->{options}{'_default_placeholder'} .= " <variablelist>"; + + # varlistentry; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <varlistentry>"; + $self->{options}{'_default_break'} .= " <varlistentry>"; + + # varname; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <varname>"; + $self->{options}{'_default_inline'} .= " <varname>"; + + # videodata; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_untranslated'} .= " <videodata>"; + $self->{options}{'_default_break'} .= " <videodata>"; + $self->{options}{'_default_attributes'}.=' <videodata>fileref'; + + # videoobject; contains text; Formatted inline or as a displayed block + $self->{options}{'_default_untranslated'} .= " <videoobject>"; + $self->{options}{'_default_break'} .= " <videoobject>"; + + # void; empty element; + $self->{options}{'_default_untranslated'} .= " <void>"; + $self->{options}{'_default_inline'} .= " <void>"; + + # volumenum; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <volumenum>"; + $self->{options}{'_default_inline'} .= " <volumenum>"; + +# WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW + + # warning; does not contain text; Formatted as a displayed block. + $self->{options}{'_default_untranslated'} .= " <warning>"; + $self->{options}{'_default_break'} .= " <warning>"; + + # wordasword; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <wordasword>"; + $self->{options}{'_default_inline'} .= " <wordasword>"; + +# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + # xref; empty element; + $self->{options}{'_default_untranslated'} .= " <xref>"; + $self->{options}{'_default_inline'} .= " <xref>"; + +# YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY + + # year; contains text; Formatted inline + $self->{options}{'_default_translated'} .= " <year>"; + $self->{options}{'_default_inline'} .= " <year>"; + +# ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ + + $self->{options}{'_default_attributes'}.=' + lang + xml:lang'; + + $self->treat_options; +} Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Pod.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Pod.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Pod.pm (revision 1843) @@ -0,0 +1,323 @@ +# Locale::Po4a::Pod -- Convert POD data to PO file, for translation. +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING file). +# +# This module converts POD to PO file, so that it becomes possible to +# translate POD formatted documentation. See gettext documentation for +# more info about PO files. + +############################################################################ +# Modules and declarations +############################################################################ + +use Pod::Parser; +use Locale::Po4a::TransTractor qw(process new get_out_charset); + +package Locale::Po4a::Pod; + +use 5.006; +use strict; +use warnings; + +require Exporter; + +use vars qw(@ISA); +@ISA = qw(Locale::Po4a::TransTractor Pod::Parser); + +sub initialize {} + +sub translate { + my ($self,$str,$ref,$type) = @_; + my (%options)=@_; + + $str = $self->pre_trans($str,$ref,$type); + $str = $self->SUPER::translate($str, $ref, $type, %options); + $str = $self->post_trans($str,$ref,$type); + + return $str; +} + +sub pre_trans { + my ($self,$str,$ref,$type)=@_; + + return $str; +} + +sub post_trans { + my ($self,$str,$ref,$type)=@_; + + # Change ascii non-breaking space to POD one + my $nbs_out = "\xA0"; + my $enc_length = Encode::from_to($nbs_out, "latin1", + $self->get_out_charset); + if (defined $enc_length) { + while ($str =~ m/(^|.*\s)(\S+?)\Q$nbs_out\E(\S+?)(\s.*$|$)/s) { + my ($begin, $m1, $m2, $end) = ($1, $2, $3, $4); + $str = (defined $begin)?$begin:""; + # Remove the non-breaking spaces in the string that will be + # between S<...> + $m2 =~ s/\Q$nbs_out\E/ /g; + $str .= "S<$m1 $m2>"; + $str .= (defined $end)?$end:""; + } + } + + return $str; +} + + +sub command { + my ($self, $command, $paragraph, $line_num) = @_; +# print STDOUT "cmd: '$command' '$paragraph' at $line_num\n"; + if ($command eq 'back' + || $command eq 'cut' + || $command eq 'pod') { + $self->pushline("=$command\n\n"); + } elsif ($command eq 'over') { + $self->pushline("=$command $paragraph".(length($paragraph)?"":"\n\n")); + } elsif ($command eq 'encoding') { + my $charset = $paragraph; + $charset =~ s/^\s*(.*?)\s*$/$1/s; + $self->detected_charset($charset) + # The =encoding line will be added by docheader + } else { + $paragraph=$self->translate($paragraph, + $self->input_file().":$line_num", + "=$command", + "wrap"=>1); + $self->pushline("=$command $paragraph\n\n"); + } +} + +sub verbatim { + my ($self, $paragraph, $line_num) = @_; +# print "verb: '$paragraph' at $line_num\n"; + + if ($paragraph eq "\n") { + $self->pushline("$paragraph\n"); + return; + } + $paragraph=$self->translate($paragraph, + $self->input_file().":$line_num", + "verbatim"); + $paragraph =~ s/\n$//m; + $self->pushline("$paragraph\n"); +} + +sub textblock { + my ($self, $paragraph, $line_num) = @_; +# print "text: '$paragraph' at $line_num\n"; + + # Fix a pretty damned bug. + # Podlators don't wrap explicitelly the text, and groff won't seem to + # wrap any line begining with a space. So, we have to consider as + # verbatim not only the paragraphs whose first line is indented, but + # the paragraph containing an indented line. + # That way, we'll declare more paragraphs as verbatim than needed, but + # that's harmless (only less confortable for translators). + + if ($paragraph eq "\n") { + $self->pushline("$paragraph\n"); + return; + } + if ($paragraph =~ m/^[ \t]/m) { + $self->verbatim($paragraph, $line_num) ; + return; + } + + $paragraph=$self->translate($paragraph, + $self->input_file().":$line_num", + 'textblock', + "wrap"=>1); + $paragraph=~ s/ +\n/\n/gm; + $self->pushline("$paragraph\n\n"); +} + +sub end_pod {} + +sub read { + my ($self,$filename)=@_; + + push @{$self->{DOCPOD}{infile}}, $filename; + $self->Locale::Po4a::TransTractor::read($filename); +} + +sub parse { + my $self=shift; + map {$self->parse_from_file($_)} @{$self->{DOCPOD}{infile}}; +} + +sub docheader { + my $self=shift; + my $encoding = $self->get_out_charset(); + if ( (defined $encoding) + and (length $encoding) + and ($encoding ne "ascii")) { + $encoding = "\n=encoding $encoding\n"; + } else { + $encoding = ""; + } + + return <<EOT; + + ***************************************************** + * GENERATED FILE, DO NOT EDIT * + * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * + ***************************************************** + +This file was generated by po4a(7). Do not store it (in VCS, for example), +but store the PO file used as source file by po4a-translate. + +In fact, consider this as a binary, and the PO file as a regular .c file: +If the PO get lost, keeping this translation up-to-date will be harder. +$encoding +EOT +} +1; + +############################################################################## +# Module return value and documentation +############################################################################## + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Pod - convert POD data from/to PO files + +=head1 SYNOPSIS + + use Locale::Po4a::Pod; + my $parser = Locale::Po4a::Pod->new (sentence => 0, width => 78); + + # Read POD from STDIN and write to STDOUT. + $parser->parse_from_filehandle; + + # Read POD from file.pod and write to file.txt. + $parser->parse_from_file ('file.pod', 'file.txt'); + +=head1 DESCRIPTION + +Locale::Po4a::Pod is a module to help the translation of documentation in +the POD format (the preferred language for documenting Perl) into other +[human] languages. + +=head1 STATUS OF THIS MODULE + +I think that this module is rock stable, and there is only one known bug +with F</usr/lib/perl5/Tk/MainWindow.pod> (and some other +pages, see below) which contains: + + C<" #n"> + +Lack of luck, in the po4a version, this was split on the space by the +wrapping. As result, in the original version, the man page contains + + " #n" + +and mine contains + + "" #n"" + +which is logic since CE<lt>foobarE<gt> is rewritten "foobar". + +Complete list of pages having this problem on my box (from 564 pages; note +that it depends on the chosen wrapping column): +/usr/lib/perl5/Tk/MainWindow.pod +/usr/share/perl/5.8.0/overload.pod +/usr/share/perl/5.8.0/pod/perlapi.pod +/usr/share/perl/5.8.0/pod/perldelta.pod +/usr/share/perl/5.8.0/pod/perlfaq5.pod +/usr/share/perl/5.8.0/pod/perlpod.pod +/usr/share/perl/5.8.0/pod/perlre.pod +/usr/share/perl/5.8.0/pod/perlretut.pod + + + +=head1 INTERNALS + +As a derived class from Pod::Parser, Locale::Po4a::Pod supports the same +methods and interfaces. See L<Pod::Parser> for all the details; briefly, +one creates a new parser with C<< Locale::Po4a::Pod->new() >> and then +calls either parse_from_filehandle() or parse_from_file(). + +new() can take options, in the form of key/value pairs, that control the +behavior of the parser. The recognized options common to all Pod::Parser +children are: + +=over 4 + +=item B<alt> + +If set to a true value, selects an alternate output format that, among other +things, uses a different heading style and marks B<=item> entries with a +colon in the left margin. Defaults to false. + +=item B<code> + +If set to a true value, the non-POD parts of the input file will be included +in the output. Useful for viewing code documented with POD blocks with the +POD rendered and the code left intact. + +=item B<indent> + +The number of spaces to indent regular text, and the default indentation for +B<=over> blocks. Defaults to 4. + +=item B<loose> + +If set to a true value, a blank line is printed after a B<=head1> heading. +If set to false (the default), no blank line is printed after B<=head1>, +although one is still printed after B<=head2>. This is the default because +it's the expected formatting for manual pages; if you're formatting +arbitrary text documents, setting this to true may result in more pleasing +output. + +=item B<quotes> + +Sets the quote marks used to surround CE<lt>> text. If the value is a +single character, it is used as both the left and right quote; if it is two +characters, the first character is used as the left quote and the second as +the right quote; and if it is four characters, the first two are used as +the left quote and the second two as the right quote. + +This may also be set to the special value B<none>, in which case no quote +marks are added around CE<lt>> text. + +=item B<sentence> + +If set to a true value, Locale::Po4a::Pod will assume that each sentence +ends in two spaces, and will try to preserve that spacing. If set to +false, all consecutive whitespace in non-verbatim paragraphs is compressed +into a single space. Defaults to true. + +=item B<width> + +The column at which to wrap text on the right-hand side. Defaults to 76. + +=back + +=head1 SEE ALSO + +L<Pod::Parser>, +L<Locale::Po4a::Man(3pm)>, +L<Locale::Po4a::TransTractor(3pm)>, +L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Denis Barbier <barbier@linuxfr.org> + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Text.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Text.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Text.pm (revision 1843) @@ -0,0 +1,840 @@ +#!/usr/bin/perl -w + +# Po4a::Text.pm +# +# extract and translate translatable strings from a text documents +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Text - convert text documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Text is a module to help the translation of text documents into +other [human] languages. + +Paragraphs are split on empty lines (or lines containing only spaces or +tabulations). + +If a paragraph contains a line starting by a space (or tabulation), this +paragraph won't be rewrapped. + +=cut + +package Locale::Po4a::Text; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +These are this module's particular options: + +=over + +=item B<nobullets> + +Deactivate detection of bullets. + +By default, when a bullet is detected, the bullet paragraph is not considered +as a verbatim paragraph (with the no-wrap flag in the PO file), but the module +rewraps this paragraph in the generated PO file and in the translation. + +=cut + +my $bullets = 1; + +=item B<tabs=>I<mode> + +Specify how tabulations shall be handled. The I<mode> can be any of: + +=over + +=item B<split> + +Lines with tabulations introduce breaks in the current paragraph. + +=item B<verbatim> + +Paragraph containing tabulations will not be re-wrapped. + +=back + +By default, tabulations are considered as spaces. + +=cut + +my $tabs = ""; + +=item B<breaks=>I<regex> + +A regular expression matching lines which introduce breaks. +The regular expression will be anchored so that the whole line must match. + +=cut + +my $breaks; + +=item B<debianchangelog> + +Handle the header and footer of +released versions, which only contain non translatable informations. + +=cut + +my $debianchangelog = 0; + +=item B<fortunes> + +Handle the fortunes format, which separate fortunes with a line which +consists in '%' or '%%', and use '%%' as the beginning of a comment. + +=cut + +my $fortunes = 0; + +=item B<markdown> + +Handle some special markup in Markdown-formatted texts. + +=cut + +my $markdown = 0; + +=item B<asciidoc> + +Handle documents in the AsciiDoc format. + +=cut + +my $asciidoc = 0; + +=item B<control>[B<=>I<taglist>] + +Handle control files. +A comma-separated list of tags to be translated can be provided. + +=cut + +my %control = (); + +=back + +=cut + +sub initialize { + my $self = shift; + my %options = @_; + + $self->{options}{'control'} = ""; + $self->{options}{'asciidoc'} = 1; + $self->{options}{'breaks'} = 1; + $self->{options}{'debianchangelog'} = 1; + $self->{options}{'debug'} = 1; + $self->{options}{'fortunes'} = 1; + $self->{options}{'markdown'} = 1; + $self->{options}{'nobullets'} = 1; + $self->{options}{'tabs'} = 1; + $self->{options}{'verbose'} = 1; + + foreach my $opt (keys %options) { + die wrap_mod("po4a::text", + dgettext("po4a", "Unknown option: %s"), $opt) + unless exists $self->{options}{$opt}; + $self->{options}{$opt} = $options{$opt}; + } + + if (defined $options{'nobullets'}) { + $bullets = 0; + } + + if (defined $options{'tabs'}) { + $tabs = $options{'tabs'}; + } + + if (defined $options{'breaks'}) { + $breaks = $options{'breaks'}; + } + + if (defined $options{'debianchangelog'}) { + $debianchangelog=1; + } + + if (defined $options{'fortunes'}) { + $fortunes=1; + } + + if (defined $options{'markdown'}) { + $markdown=1; + } + + if (defined $options{'asciidoc'}) { + $asciidoc=1; + } + + if (defined $options{'control'}) { + if ($options{'control'} eq "1") { + $control{''}=1; + } else { + foreach my $tag (split(',',$options{'control'})) { + $control{$tag}=1; + } + } + } +} + +sub parse { + my $self = shift; + my ($line,$ref); + my $paragraph=""; + my $wrapped_mode = 1; + my $expect_header = 1; + my $end_of_paragraph = 0; + ($line,$ref)=$self->shiftline(); + my $file = $ref; + $file =~ s/:[0-9]+$// if defined($line); + while (defined($line)) { + $ref =~ m/^(.*):[0-9]+$/; + if ($1 ne $file) { + $file = $1; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $expect_header = 1; + } + + chomp($line); + $self->{ref}="$ref"; + if ($debianchangelog and + $expect_header and + $line =~ /^(\w[-+0-9a-z.]*)\ \(([^\(\) \t]+)\) # src, version + \s+([-+0-9a-z.]+); # distribution + \s*urgency\s*\=\s*(.*\S)\s*$/ix) { # + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $self->pushline("$line\n"); + $expect_header=0; + } elsif ($debianchangelog and + $line =~ m/^ \-\- (.*) <(.*)> ((\w+\,\s*)?\d{1,2}\s+\w+\s+\d{4}\s+\d{1,2}:\d\d:\d\d\s+[-+]\d{4}(\s+\([^\\\(\)]\))?)$/) { + # Found trailer + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $self->pushline("$line\n"); + $expect_header=1; + } elsif ($fortunes and + $line =~ m/^%%?\s*$/) { + # Found end of fortune + do_paragraph($self,$paragraph,$wrapped_mode); + $self->pushline("\n") unless ( $wrapped_mode == 0 + or $paragraph eq ""); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline("$line\n"); + } elsif ( $line =~ m/^([^ :]*): *(.*)$/ + and %control) { + warn "Unrecognized section: '$paragraph'\n" + unless $paragraph eq ""; + my $tag = $1; + my $val = $2; + my $t; + if ($control{''} or $control{$tag}) { + $t = $self->translate($val, + $self->{ref}, + $tag.(defined $self->{controlkey}?", ".$self->{controlkey}:""), + "wrap" => 0); + } else { + $t = $val; + } + if (not defined $self->{controlkey}) { + $self->{controlkey} = "$tag: $val"; + } + $self->pushline("$tag: $t\n"); + $paragraph=""; + $wrapped_mode = 1; + $self->{bullet} = ""; + $self->{indent} = " "; + } elsif (%control and + $line eq " .") { + do_paragraph($self,$paragraph,$wrapped_mode, + "Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:"")); + $paragraph=""; + $self->pushline($line."\n"); + $self->{bullet} = ""; + $self->{indent} = " "; + } elsif (%control and + $line =~ m/^ Link: +(.*)$/) { + do_paragraph($self,$paragraph,$wrapped_mode, + "Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:"")); + my $link=$1; + my $t1 = $self->translate("Link: ", + $self->{ref}, + "Link", + "wrap" => 0); + my $t2 = $self->translate($link, + $self->{ref}, + "Link".(defined $self->{controlkey}?", ".$self->{controlkey}:""), + "wrap" => 0); + $self->pushline(" $t1$t2\n"); + $paragraph=""; + } elsif (%control and + defined $self->{indent} and + $line =~ m/^$self->{indent}\S/) { + $paragraph .= $line."\n"; + $self->{type} = "Long Description".(defined $self->{controlkey}?", ".$self->{controlkey}:""); + } elsif ( (defined $self->{verbatim}) + and ($self->{verbatim} == 2)) { + # Untranslated blocks + $self->pushline($line."\n"); + if ($asciidoc and + ($line =~ m/^(\/{4,}|~{4,})$/)) { + undef $self->{verbatim}; + undef $self->{type}; + $wrapped_mode = 1; + } + } elsif ( ($line =~ /^\s*$/) + or ( defined $breaks + and $line =~ m/^$breaks$/)) { + # Break paragraphs on lines containing only spaces + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1 unless defined($self->{verbatim}); + $self->pushline($line."\n"); + undef $self->{controlkey}; + } elsif ($asciidoc and (not defined($self->{verbatim})) and + ($line =~ m/^(\+|--)$/)) { + # List Item Continuation or List Block + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $self->pushline($line."\n"); + } elsif ($asciidoc and (not defined($self->{verbatim})) and + ($line =~ m/^(={4,}|-{4,}|~{4,}|\^{4,}|\+{4,})$/) and + (defined($paragraph) )and + ($paragraph =~ m/^[^\n]*\n$/s) and + (length($paragraph) == (length($line)+1))) { + # Found title + $wrapped_mode = 0; + my $level = $line; + $level =~ s/^(.).*$/$1/; + $paragraph =~ s/\n$//s; + my $t = $self->translate($paragraph, + $self->{ref}, + "Title $level", + "wrap" => 0); + $self->pushline($t."\n"); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline(($level x (length($t)))."\n"); + } elsif ($asciidoc and + ($line =~ m/^(={1,5})( +)(.*?)( +\1)?$/)) { + my $titlelevel1 = $1; + my $titlespaces = $2; + my $title = $3; + my $titlelevel2 = $4||""; + # Found one line title + do_paragraph($self,$paragraph,$wrapped_mode); + $wrapped_mode = 0; + $paragraph=""; + my $t = $self->translate($title, + $self->{ref}, + "Title $titlelevel1", + "wrap" => 0); + $self->pushline($titlelevel1.$titlespaces.$t.$titlelevel2."\n"); + $wrapped_mode = 1; + } elsif ($asciidoc and + ($line =~ m/^(\/{4,}|\+{4,}|-{4,}|\.{4,}|\*{4,}|_{4,}|={4,}|~{4,})$/)) { + # Found one delimited block + my $t = $line; + $t =~ s/^(.).*$/$1/; + my $type = "delimited block $t"; + if (defined $self->{verbatim} and ($self->{type} ne $type)) { + $paragraph .= "$line\n"; + } else { + do_paragraph($self,$paragraph,$wrapped_mode); + if ( (defined $self->{type}) + and ($self->{type} eq $type)) { + undef $self->{type}; + undef $self->{verbatim}; + $wrapped_mode = 1; + } else { + if ($t eq "\/") { + # CommentBlock, should not be treated + $self->{verbatim} = 2; + } elsif ($t eq "+") { + # PassthroughBlock + $wrapped_mode = 0; + $self->{verbatim} = 1; + } elsif ($t eq "-") { + # ListingBlock + $wrapped_mode = 0; + $self->{verbatim} = 1; + } elsif ($t eq ".") { + # LiteralBlock + $wrapped_mode = 0; + $self->{verbatim} = 1; + } elsif ($t eq "*") { + # SidebarBlock + $wrapped_mode = 1; + } elsif ($t eq "_") { + # QuoteBlock + if ( (defined $self->{type}) + and ($self->{type} eq "verse")) { + $wrapped_mode = 0; + $self->{verbatim} = 1; + } else { + $wrapped_mode = 1; + } + } elsif ($t eq "=") { + # ExampleBlock + $wrapped_mode = 1; + } elsif ($t eq "~") { + # Filter blocks, TBC: not translated + $wrapped_mode = 0; + $self->{verbatim} = 2; + } + $self->{type} = $type; + } + $paragraph=""; + $self->pushline($line."\n"); + } + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^\[\[([^\]]*)\]\]$/)) { + # Found BlockId + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline($line."\n"); + undef $self->{bullet}; + undef $self->{indent}; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($paragraph eq "") and + ($line =~ m/^((?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):\s+)(.*)$/)) { + my $type = $1; + my $text = $2; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=$text."\n"; + $wrapped_mode = 1; + $self->pushline($type); + undef $self->{bullet}; + undef $self->{indent}; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^\[(NOTE|TIP|IMPORTANT|WARNING|CAUTION|verse|quote)\]$/)) { + my $type = $1; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline($line."\n"); + if ($type eq "verse") { + $wrapped_mode = 0; + } + undef $self->{bullet}; + undef $self->{indent}; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^\[(verse|quote), +(.*)\]$/)) { + my $type = $1; + my $arg = $2; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + my $t = $self->translate($arg, + $self->{ref}, + "$type", + "wrap" => 0); + $self->pushline("[$type, $t]\n"); + $wrapped_mode = 1; + if ($type eq "verse") { + $wrapped_mode = 0; + } + $self->{type} = $type; + undef $self->{bullet}; + undef $self->{indent}; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^\[icon="(.*)"\]$/)) { + my $arg = $1; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + my $t = $self->translate($arg, + $self->{ref}, + "icon", + "wrap" => 0); + $self->pushline("[icon=\"$t\"]\n"); + $wrapped_mode = 1; + undef $self->{bullet}; + undef $self->{indent}; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^\[icons=None, +caption="(.*)"\]$/)) { + my $arg = $1; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + my $t = $self->translate($arg, + $self->{ref}, + "caption", + "wrap" => 0); + $self->pushline("[icons=None, caption=\"$t\"]\n"); + $wrapped_mode = 1; + undef $self->{bullet}; + undef $self->{indent}; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^(\s*)([*_+`'#[:alnum:]].*)((?:::|;;|\?\?|:-)(?: *\\)?)$/)) { + my $indent = $1; + my $label = $2; + my $labelend = $3; + # Found labeled list + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $self->{bullet} = ""; + $self->{indent} = $indent; + my $t = $self->translate($label, + $self->{ref}, + "Labeled list", + "wrap" => 0); + $self->pushline("$indent$t$labelend\n"); + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^(\s*)(\S.*)((?:::|;;)\s+)(.*)$/)) { + my $indent = $1; + my $label = $2; + my $labelend = $3; + my $labeltext = $4; + # Found Horizontal Labeled Lists + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=$labeltext."\n"; + $wrapped_mode = 1; + $self->{bullet} = ""; + $self->{indent} = $indent; + my $t = $self->translate($label, + $self->{ref}, + "Labeled list", + "wrap" => 0); + $self->pushline("$indent$t$labelend"); + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^\:(\S.*?)(:\s*)(.*)$/)) { + my $attrname = $1; + my $attrsep = $2; + my $attrvalue = $3; + # Found a Attribute entry + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + undef $self->{bullet}; + undef $self->{indent}; + my $t = $self->translate($attrvalue, + $self->{ref}, + "Attribute :$attrname:", + "wrap" => 0); + $self->pushline(":$attrname$attrsep$t\n"); + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line !~ m/^\.\./) and ($line =~ m/^\.(\S.*)$/)) { + my $title = $1; + # Found block title + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + undef $self->{bullet}; + undef $self->{indent}; + my $t = $self->translate($title, + $self->{ref}, + "Block title", + "wrap" => 0); + $self->pushline(".$t\n"); + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^(\s*)((?:[-*o+]|(?:[0-9]+[.\)])|(?:[a-z][.\)])|\([0-9]+\)|\.|\.\.)\s+)(.*)$/)) { + my $indent = $1||""; + my $bullet = $2; + my $text = $3; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph = $text."\n"; + $self->{indent} = $indent; + $self->{bullet} = $bullet; + } elsif ($asciidoc and not defined $self->{verbatim} and + ($line =~ m/^((?:<?[0-9]+)?> +)(.*)$/)) { + my $bullet = $1; + my $text = $2; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph = $text."\n"; + $self->{indent} = ""; + $self->{bullet} = $bullet; + } elsif ($asciidoc and not defined $self->{verbatim} and + (defined $self->{bullet} and $line =~ m/^(\s+)(.*)$/)) { + my $indent = $1; + my $text = $2; + if (not defined $self->{indent}) { + $paragraph .= $text."\n"; + $self->{indent} = $indent; + } elsif (length($paragraph) and (length($self->{bullet}) + length($self->{indent}) == length($indent))) { + $paragraph .= $text."\n"; + } else { + + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph = $text."\n"; + $self->{indent} = $indent; + $self->{bullet} = ""; + } + } elsif ($markdown and + (not defined($self->{verbatim})) and + ($line =~ m/^(={4,}|-{4,})$/) and + (defined($paragraph) )and + ($paragraph =~ m/^[^\n]*\n$/s) and + (length($paragraph) == (length($line)+1))) { + # XXX: There can be any number of underlining according + # to the documentation. This detection, which avoid + # translating the formatting, is only supported if + # the underlining has the same size as the header text. + # Found title + $wrapped_mode = 0; + my $level = $line; + $level =~ s/^(.).*$/$1/; + my $t = $self->translate($paragraph, + $self->{ref}, + "Title $level", + "wrap" => 0); + $self->pushline($t); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline(($level x (length($t)-1))."\n"); + } elsif ($markdown and + ($line =~ m/^(#{1,6})( +)(.*?)( +\1)?$/)) { + my $titlelevel1 = $1; + my $titlespaces = $2; + my $title = $3; + my $titlelevel2 = $4||""; + # Found one line title + do_paragraph($self,$paragraph,$wrapped_mode); + $wrapped_mode = 0; + $paragraph=""; + my $t = $self->translate($title, + $self->{ref}, + "Title $titlelevel1", + "wrap" => 0); + $self->pushline($titlelevel1.$titlespaces.$t.$titlelevel2."\n"); + $wrapped_mode = 1; + } elsif ($markdown and + ($paragraph eq "") and + ($line =~ /^((\*\s*){3,}|(-\s*){3,}|(_\s*){3,})$/)) { + # Horizontal rule + $wrapped_mode = 1; + $self->pushline($line."\n"); + } elsif ($line =~ /^-- $/) { + # Break paragraphs on email signature hint + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline($line."\n"); + } elsif ( $line =~ /^=+$/ + or $line =~ /^_+$/ + or $line =~ /^-+$/) { + $wrapped_mode = 0; + $paragraph .= $line."\n"; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + } elsif ($markdown and + ( $line =~ /^\s*\[\[\!\S+\s*$/ # macro begin + or $line =~ /^\s*"""\s*\]\]\s*$/)) { # """ textblock inside macro end + # Avoid translating Markdown lines containing only markup + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $self->pushline("$line\n"); + } elsif ($markdown and + ( $line =~ /^#/ # headline + or $line =~ /^\s*\[\[\!\S[^\]]*\]\]\s*$/)) { # sole macro + # Preserve some Markdown markup as a single line + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph="$line\n"; + $wrapped_mode = 0; + $end_of_paragraph = 1; + } elsif ($markdown and + ( $line =~ /^"""/)) { # """ textblock inside macro end + # Markdown markup needing separation _before_ this line + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph="$line\n"; + $wrapped_mode = 1; + } elsif ($tabs eq "split" and $line =~ m/\t/ and $paragraph !~ m/\t/s) { + $wrapped_mode = 0; + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph = "$line\n"; + $wrapped_mode = 0; + } elsif ($tabs eq "split" and $line !~ m/\t/ and $paragraph =~ m/\t/s) { + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph = "$line\n"; + $wrapped_mode = 1; + } else { + if ($line =~ /^\s/) { + # A line starting by a space indicates a non-wrap + # paragraph + $wrapped_mode = 0; + } + if ($markdown and + ( $line =~ /\S $/ # explicit newline + or $line =~ /"""$/)) { # """ textblock inside macro begin + # Markdown markup needing separation _after_ this line + $end_of_paragraph = 1; + } else { + undef $self->{bullet}; + undef $self->{indent}; + } + if ($fortunes) { + $line =~ s/%%(.*)$//; + } +# TODO: comments + $paragraph .= $line."\n"; + } + # paragraphs starting by a bullet, or numbered + # or paragraphs with a line containing many consecutive spaces + # (more than 3) + # are considered as verbatim paragraphs + $wrapped_mode = 0 if ( $paragraph =~ m/^(\*|[0-9]+[.)] )/s + or $paragraph =~ m/[ \t][ \t][ \t]/s); + $wrapped_mode = 0 if ( $tabs eq "verbatim" + and $paragraph =~ m/\t/s); + if ($markdown) { + # Some Markdown markup can (or might) not survive wrapping + $wrapped_mode = 0 if ( + $paragraph =~ /^>/ms # blockquote + or $paragraph =~ /^( {8}|\t)/ms # monospaced + or $paragraph =~ /^\$(\S+[{}]\S*\s*)+/ms # Xapian macro + or $paragraph =~ /<(?![a-z]+[:@])/ms # maybe html (tags but not wiki <URI>) + or $paragraph =~ /^[^<]+>/ms # maybe html (tag with vertical space) + or $paragraph =~ /\S $/ms # explicit newline + or $paragraph =~ /\[\[\!\S[^\]]+$/ms # macro begin + ); + } + if ($end_of_paragraph) { + do_paragraph($self,$paragraph,$wrapped_mode); + $paragraph=""; + $wrapped_mode = 1; + $end_of_paragraph = 0; + } + ($line,$ref)=$self->shiftline(); + } + if (length $paragraph) { + do_paragraph($self,$paragraph,$wrapped_mode); + } +} + +sub do_paragraph { + my ($self, $paragraph, $wrap) = (shift, shift, shift); + my $type = shift || $self->{type} || "Plain text"; + return if ($paragraph eq ""); + +# DEBUG +# my $b; +# if (defined $self->{bullet}) { +# $b = $self->{bullet}; +# } else { +# $b = "UNDEF"; +# } +# $type .= " verbatim: '".($self->{verbatim}||"NONE")."' bullet: '$b' indent: '".($self->{indent}||"NONE")."' type: '".($self->{type}||"NONE")."'"; + + if ($bullets and not $wrap and not defined $self->{verbatim}) { + # Detect bullets + # | * blah blah + # |<spaces> blah + # | ^-- aligned + # <empty line> + # + # Other bullets supported: + # - blah o blah + blah + # 1. blah 1) blah (1) blah +TEST_BULLET: + if ($paragraph =~ m/^(\s*)((?:[-*o+]|([0-9]+[.\)])|\([0-9]+\))\s+)([^\n]*\n)(.*)$/s) { + my $para = $5; + my $bullet = $2; + my $indent1 = $1; + my $indent2 = "$1".(' ' x length $bullet); + my $text = $4; + while ($para !~ m/$indent2(?:[-*o+]|([0-9]+[.\)])|\([0-9]+\))\s+/ + and $para =~ s/^$indent2(\S[^\n]*\n)//s) { + $text .= $1; + } + # TODO: detect if a line starts with the same bullet + if ($text !~ m/\S[ \t][ \t][ \t]+\S/s) { + my $bullet_regex = quotemeta($indent1.$bullet); + $bullet_regex =~ s/[0-9]+/\\d\+/; + if ($para eq '' or $para =~ m/^$bullet_regex\S/s) { + my $trans = $self->translate($text, + $self->{ref}, + "Bullet: '$indent1$bullet'", + "wrap" => 1, + "wrapcol" => - (length $indent2)); + $trans =~ s/^/$indent1$bullet/s; + $trans =~ s/\n(.)/\n$indent2$1/sg; + $self->pushline( $trans."\n" ); + if ($para eq '') { + return; + } else { + # Another bullet + $paragraph = $para; + goto TEST_BULLET; + } + } + } + } + } + + my $end = ""; + if ($wrap) { + $paragraph =~ s/^(.*?)(\n*)$/$1/s; + $end = $2 || ""; + } + my $t = $self->translate($paragraph, + $self->{ref}, + $type, + "wrap" => $wrap); + if (defined $self->{bullet}) { + my $bullet = $self->{bullet}; + my $indent1 = $self->{indent}; + my $indent2 = $indent1.(' ' x length($bullet)); + $t =~ s/^/$indent1$bullet/s; + $t =~ s/\n(.)/\n$indent2$1/sg; + } + $self->pushline( $t.$end ); +} + +1; + +=head1 STATUS OF THIS MODULE + +Tested successfully on simple text files and NEWS.Debian files. + +=head1 AUTHORS + + Nicolas François <nicolas.francois@centraliens.net> + +=head1 COPYRIGHT AND LICENSE + + Copyright 2005-2008 by Nicolas FRANÇOIS <nicolas.francois@centraliens.net>. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/TransTractor.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/TransTractor.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/TransTractor.pm (revision 1843) @@ -0,0 +1,1122 @@ +#!/usr/bin/perl -w + +require Exporter; + +package Locale::Po4a::TransTractor; +use DynaLoader; + +use 5.006; +use strict; +use warnings; + +use subs qw(makespace); +use vars qw($VERSION @ISA @EXPORT); +$VERSION="0.41.1"; +@ISA = qw(DynaLoader); +@EXPORT = qw(new process translate + read write readpo writepo + getpoout setpoout get_out_charset); + +# Try to use a C extension if present. +eval("bootstrap Locale::Po4a::TransTractor $VERSION"); + +use Carp qw(croak); +use Locale::Po4a::Po; +use Locale::Po4a::Common; + +use File::Path; # mkdir before write + +use Encode; +use Encode::Guess; + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::TransTractor - generic trans(lator ex)tractor. + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +This class is the ancestor of every po4a parser used to parse a document, to +search translatable strings, to extract them to a PO file and to replace them by +their translation in the output document. + +More formally, it takes the following arguments as input: + +=over 2 + +=item - + +a document to translate; + +=item - + +a PO file containing the translations to use. + +=back + +As output, it produces: + +=over 2 + +=item - + +another PO file, resulting of the extraction of translatable strings from +the input document; + +=item - + +a translated document, with the same structure than the one in input, but +with all translatable strings replaced with the translations found in the +PO file provided in input. + +=back + +Here is a graphical representation of this: + + Input document --\ /---> Output document + \ / (translated) + +-> parse() function -----+ + / \ + Input PO --------/ \---> Output PO + (extracted) + +=head1 FUNCTIONS YOUR PARSER SHOULD OVERRIDE + +=over 4 + +=item parse() + +This is where all the work takes place: the parsing of input documents, the +generation of output, and the extraction of the translatable strings. This +is pretty simple using the provided functions presented in the section +B<INTERNAL FUNCTIONS> below. See also the B<SYNOPSIS>, which presents an +example. + +This function is called by the process() function below, but if you choose +to use the new() function, and to add content manually to your document, +you will have to call this function yourself. + +=item docheader() + +This function returns the header we should add to the produced document, +quoted properly to be a comment in the target language. See the section +B<Educating developers about translations>, from L<po4a(7)|po4a.7>, for what +it is good for. + +=back + +=cut + +sub docheader {} + +sub parse {} + +=head1 SYNOPSIS + +The following example parses a list of paragraphs beginning with "<p>". For the sake +of simplicity, we assume that the document is well formatted, i.e. that '<p>' +tags are the only tags present, and that this tag is at the very beginning +of each paragraph. + + sub parse { + my $self = shift; + + PARAGRAPH: while (1) { + my ($paragraph,$pararef)=("",""); + my $first=1; + my ($line,$lref)=$self->shiftline(); + while (defined($line)) { + if ($line =~ m/<p>/ && !$first--; ) { + # Not the first time we see <p>. + # Reput the current line in input, + # and put the built paragraph to output + $self->unshiftline($line,$lref); + + # Now that the document is formed, translate it: + # - Remove the leading tag + $paragraph =~ s/^<p>//s; + + # - push to output the leading tag (untranslated) and the + # rest of the paragraph (translated) + $self->pushline( "<p>" + . $document->translate($paragraph,$pararef) + ); + + next PARAGRAPH; + } else { + # Append to the paragraph + $paragraph .= $line; + $pararef = $lref unless(length($pararef)); + } + + # Reinit the loop + ($line,$lref)=$self->shiftline(); + } + # Did not get a defined line? End of input file. + return; + } + } + +Once you've implemented the parse function, you can use your document +class, using the public interface presented in the next section. + +=head1 PUBLIC INTERFACE for scripts using your parser + +=head2 Constructor + +=over 4 + +=item process(%) + +This function can do all you need to do with a po4a document in one +invocation. Its arguments must be packed as a hash. ACTIONS: + +=over 3 + +=item a. + +Reads all the PO files specified in po_in_name + +=item b. + +Reads all original documents specified in file_in_name + +=item c. + +Parses the document + +=item d. + +Reads and applies all the addenda specified + +=item e. + +Writes the translated document to file_out_name (if given) + +=item f. + +Writes the extracted PO file to po_out_name (if given) + +=back + +ARGUMENTS, beside the ones accepted by new() (with expected type): + +=over 4 + +=item file_in_name (@) + +List of filenames where we should read the input document. + +=item file_in_charset ($) + +Charset used in the input document (if it isn't specified, it will try +to detect it from the input document). + +=item file_out_name ($) + +Filename where we should write the output document. + +=item file_out_charset ($) + +Charset used in the output document (if it isn't specified, it will use +the PO file charset). + +=item po_in_name (@) + +List of filenames where we should read the input PO files from, containing +the translation which will be used to translate the document. + +=item po_out_name ($) + +Filename where we should write the output PO file, containing the strings +extracted from the input document. + +=item addendum (@) + +List of filenames where we should read the addenda from. + +=item addendum_charset ($) + +Charset for the addenda. + +=back + +=item new(%) + +Create a new po4a document. Accepted options (but be in a hash): + +=over 4 + +=item verbose ($) + +Sets the verbosity. + +=item debug ($) + +Sets the debugging. + +=back + +=cut + +sub process { + ## Determine if we were called via an object-ref or a classname + my $self = shift; + + ## Any remaining arguments are treated as initial values for the + ## hash that is used to represent this object. + my %params = @_; + + # Build the args for new() + my %newparams = (); + foreach (keys %params) { + next if ($_ eq 'po_in_name' || + $_ eq 'po_out_name' || + $_ eq 'file_in_name' || + $_ eq 'file_in_charset' || + $_ eq 'file_out_name' || + $_ eq 'file_out_charset' || + $_ eq 'addendum' || + $_ eq 'addendum_charset'); + $newparams{$_}=$params{$_}; + } + + $self->detected_charset($params{'file_in_charset'}); + $self->{TT}{'file_out_charset'}=$params{'file_out_charset'}; + if (defined($self->{TT}{'file_out_charset'}) and + length($self->{TT}{'file_out_charset'})) { + $self->{TT}{'file_out_encoder'} = find_encoding($self->{TT}{'file_out_charset'}); + } + $self->{TT}{'addendum_charset'}=$params{'addendum_charset'}; + + chdir $params{'srcdir'} + if (defined $params{'srcdir'}); + foreach my $file (@{$params{'po_in_name'}}) { + print STDERR "readpo($file)... " if $self->debug(); + $self->readpo($file); + print STDERR "done.\n" if $self->debug() + } + foreach my $file (@{$params{'file_in_name'}}) { + print STDERR "read($file)..." if $self->debug(); + $self->read($file); + print STDERR "done.\n" if $self->debug(); + } + print STDERR "parse..." if $self->debug(); + $self->parse(); + print STDERR "done.\n" if $self->debug(); + foreach my $file (@{$params{'addendum'}}) { + print STDERR "addendum($file)..." if $self->debug(); + $self->addendum($file) || die "An addendum failed\n"; + print STDERR "done.\n" if $self->debug(); + } + chdir $params{'destdir'} + if (defined $params{'destdir'}); + if (defined $params{'file_out_name'}) { + print STDERR "write(".$params{'file_out_name'}.")... " + if $self->debug(); + $self->write($params{'file_out_name'}); + print STDERR "done.\n" if $self->debug(); + } + chdir $params{'srcdir'} + if (defined $params{'srcdir'}); + if (defined $params{'po_out_name'}) { + print STDERR "writepo(".$params{'po_out_name'}.")... " + if $self->debug(); + $self->writepo($params{'po_out_name'}); + print STDERR "done.\n" if $self->debug(); + } + chdir $params{'calldir'} + if (defined $params{'calldir'}); + return $self; +} + +sub new { + ## Determine if we were called via an object-ref or a classname + my $this = shift; + my $class = ref($this) || $this; + my $self = { }; + my %options=@_; + ## Bless ourselves into the desired class and perform any initialization + bless $self, $class; + + ## initialize the plugin + # prevent the plugin from croaking on the options intended for Po.pm + $self->{options}{'porefs'} = ''; + $self->{options}{'copyright-holder'} = ''; + $self->{options}{'msgid-bugs-address'} = ''; + $self->{options}{'package-name'} = ''; + $self->{options}{'package-version'} = ''; + # let the plugin parse the options and such + $self->initialize(%options); + + ## Create our private data + my %po_options; + $po_options{'porefs'} = $self->{options}{'porefs'}; + $po_options{'copyright-holder'} = $options{'copyright-holder'}; + $po_options{'msgid-bugs-address'} = $options{'msgid-bugs-address'}; + $po_options{'package-name'} = $options{'package-name'}; + $po_options{'package-version'} = $options{'package-version'}; + + # private data + $self->{TT}=(); + $self->{TT}{po_in}=Locale::Po4a::Po->new(\%po_options); + $self->{TT}{po_out}=Locale::Po4a::Po->new(\%po_options); + # Warning, this is an array of array: + # The document is splited on lines, and for each + # [0] is the line content, [1] is the reference [2] the type + $self->{TT}{doc_in}=(); + $self->{TT}{doc_out}=(); + if (defined $options{'verbose'}) { + $self->{TT}{verbose} = $options{'verbose'}; + } + if (defined $options{'debug'}) { + $self->{TT}{debug} = $options{'debug'}; + } + # Input document is in ascii until we prove the opposite (in read()) + $self->{TT}{ascii_input}=1; + # We try not to use utf unless it's forced from the outside (in case the + # document isn't in ascii) + $self->{TT}{utf_mode}=0; + + + return $self; +} + +=back + +=head2 Manipulating document files + +=over 4 + +=item read($) + +Add another input document at the end of the existing one. The argument is +the filename to read. + +Please note that it does not parse anything. You should use the parse() +function when you're done with packing input files into the document. + +=cut + +#' +sub read() { + my $self=shift; + my $filename=shift + or croak wrap_msg(dgettext("po4a", "Can't read from file without having a filename")); + my $linenum=0; + + open INPUT,"<$filename" + or croak wrap_msg(dgettext("po4a", "Can't read from %s: %s"), $filename, $!); + while (defined (my $textline = <INPUT>)) { + $linenum++; + my $ref="$filename:$linenum"; + $textline =~ s/\r$//; + my @entry=($textline,$ref); + push @{$self->{TT}{doc_in}}, @entry; + + if (!defined($self->{TT}{'file_in_charset'})) { + # Detect if this file has non-ascii characters + if($self->{TT}{ascii_input}) { + my $decoder = guess_encoding($textline); + if (!ref($decoder) or $decoder !~ /Encode::XS=/) { + # We have detected a non-ascii line + $self->{TT}{ascii_input} = 0; + # Save the reference for future error message + $self->{TT}{non_ascii_ref} ||= $ref; + } + } + } + } + close INPUT + or croak wrap_msg(dgettext("po4a", "Can't close %s after reading: %s"), $filename, $!); + +} + +=item write($) + +Write the translated document to the given filename. + +=cut + +sub write { + my $self=shift; + my $filename=shift + or croak wrap_msg(dgettext("po4a", "Can't write to a file without filename")); + + my $fh; + if ($filename eq '-') { + $fh=\*STDOUT; + } else { + # make sure the directory in which we should write the localized file exists + my $dir = $filename; + if ($dir =~ m|/|) { + $dir =~ s|/[^/]*$||; + + File::Path::mkpath($dir, 0, 0755) # Croaks on error + if (length ($dir) && ! -e $dir); + } + open $fh,">$filename" + or croak wrap_msg(dgettext("po4a", "Can't write to %s: %s"), $filename, $!); + } + + map { print $fh $_ } $self->docheader(); + map { print $fh $_ } @{$self->{TT}{doc_out}}; + + if ($filename ne '-') { + close $fh or croak wrap_msg(dgettext("po4a", "Can't close %s after writing: %s"), $filename, $!); + } + +} + +=back + +=head2 Manipulating PO files + +=over 4 + +=item readpo($) + +Add the content of a file (which name is passed as argument) to the +existing input PO. The old content is not discarded. + +=item writepo($) + +Write the extracted PO file to the given filename. + +=item stats() + +Returns some statistics about the translation done so far. Please note that +it's not the same statistics than the one printed by msgfmt +--statistic. Here, it's stats about recent usage of the PO file, while +msgfmt reports the status of the file. It is a wrapper to the +Locale::Po4a::Po::stats_get function applied to the input PO file. Example +of use: + + [normal use of the po4a document...] + + ($percent,$hit,$queries) = $document->stats(); + print "We found translations for $percent\% ($hit from $queries) of strings.\n"; + +=back + +=cut + +sub getpoout { + return $_[0]->{TT}{po_out}; +} +sub setpoout { + $_[0]->{TT}{po_out} = $_[1]; +} +sub readpo { + $_[0]->{TT}{po_in}->read($_[1]); +} +sub writepo { + $_[0]->{TT}{po_out}->write( $_[1] ); +} +sub stats { + return $_[0]->{TT}{po_in}->stats_get(); +} + +=head2 Manipulating addenda + +=over 4 + +=item addendum($) + +Please refer to L<po4a(7)|po4a.7> for more information on what addenda are, +and how translators should write them. To apply an addendum to the translated +document, simply pass its filename to this function and you are done ;) + +This function returns a non-null integer on error. + +=cut + +# Internal function to read the header. +sub addendum_parse { + my ($filename,$header)=shift; + + my ($errcode,$mode,$position,$boundary,$bmode,$content)= + (1,"","","","",""); + + unless (open (INS, "<$filename")) { + warn wrap_msg(dgettext("po4a", "Can't read from %s: %s"), $filename, $!); + goto END_PARSE_ADDFILE; + } + + unless (defined ($header=<INS>) && $header) { + warn wrap_msg(dgettext("po4a", "Can't read po4a header from %s."), $filename); + goto END_PARSE_ADDFILE; + } + + unless ($header =~ s/PO4A-HEADER://i) { + warn wrap_msg(dgettext("po4a", "First line of %s does not look like a po4a header."), $filename); + goto END_PARSE_ADDFILE; + } + foreach my $part (split(/;/,$header)) { + unless ($part =~ m/^\s*([^=]*)=(.*)$/) { + warn wrap_msg(dgettext("po4a", "Syntax error in po4a header of %s, near \"%s\""), $filename, $part); + goto END_PARSE_ADDFILE; + } + my ($key,$value)=($1,$2); + $key=lc($key); + if ($key eq 'mode') { $mode=lc($value); + } elsif ($key eq 'position') { $position=$value; + } elsif ($key eq 'endboundary') { + $boundary=$value; + $bmode='after'; + } elsif ($key eq 'beginboundary') { + $boundary=$value; + $bmode='before'; + } else { + warn wrap_msg(dgettext("po4a", "Invalid argument in the po4a header of %s: %s"), $filename, $key); + goto END_PARSE_ADDFILE; + } + } + + unless (length($mode)) { + warn wrap_msg(dgettext("po4a", "The po4a header of %s does not define the mode."), $filename); + goto END_PARSE_ADDFILE; + } + unless ($mode eq "before" || $mode eq "after") { + warn wrap_msg(dgettext("po4a", "Mode invalid in the po4a header of %s: should be 'before' or 'after' not %s."), $filename, $mode); + goto END_PARSE_ADDFILE; + } + + unless (length($position)) { + warn wrap_msg(dgettext("po4a", "The po4a header of %s does not define the position."), $filename); + goto END_PARSE_ADDFILE; + } + unless ($mode eq "before" || length($boundary)) { + warn wrap_msg(dgettext("po4a", "No ending boundary given in the po4a header, but mode=after.")); + goto END_PARSE_ADDFILE; + } + + while (defined(my $line = <INS>)) { + $content .= $line; + } + close INS; + + $errcode=0; + END_PARSE_ADDFILE: + return ($errcode,$mode,$position,$boundary,$bmode,$content); +} + +sub mychomp { + my ($str) = shift; + chomp($str); + return $str; +} + +sub addendum { + my ($self,$filename) = @_; + + print STDERR "Apply addendum $filename..." if $self->debug(); + unless ($filename) { + warn wrap_msg(dgettext("po4a", + "Can't apply addendum when not given the filename")); + return 0; + } + die wrap_msg(dgettext("po4a", "Addendum %s does not exist."), $filename) + unless -e $filename; + + my ($errcode,$mode,$position,$boundary,$bmode,$content)= + addendum_parse($filename); + return 0 if ($errcode); + + print STDERR "mode=$mode;pos=$position;bound=$boundary;bmode=$bmode;ctn=$content\n" + if $self->debug(); + + # We only recode the addendum if an origin charset is specified, else we + # suppose it's already in the output document's charset + if (defined($self->{TT}{'addendum_charset'}) && + length($self->{TT}{'addendum_charset'})) { + Encode::from_to($content,$self->{TT}{'addendum_charset'}, + $self->get_out_charset); + } + + my $found = scalar grep { /$position/ } @{$self->{TT}{doc_out}}; + if ($found == 0) { + warn wrap_msg(dgettext("po4a", + "No candidate position for the addendum %s."), $filename); + return 0; + } + if ($found > 1) { + warn wrap_msg(dgettext("po4a", + "More than one candidate position found for the addendum %s."), $filename); + return 0; + } + + if ($mode eq "before") { + if ($self->verbose() > 1 || $self->debug() ) { + map { print STDERR wrap_msg(dgettext("po4a", "Addendum '%s' applied before this line: %s"), $filename, $_) if (/$position/); + } @{$self->{TT}{doc_out}}; + } + @{$self->{TT}{doc_out}} = map { /$position/ ? ($content,$_) : $_ + } @{$self->{TT}{doc_out}}; + } else { + my @newres=(); + + do { + # make sure it doesn't whine on empty document + my $line = scalar @{$self->{TT}{doc_out}} ? shift @{$self->{TT}{doc_out}} : ""; + push @newres,$line; + my $outline=mychomp($line); + $outline =~ s/^[ \t]*//; + + if ($line =~ m/$position/) { + while ($line=shift @{$self->{TT}{doc_out}}) { + last if ($line=~/$boundary/); + push @newres,$line; + } + if (defined $line) { + if ($bmode eq 'before') { + print wrap_msg(dgettext("po4a", + "Addendum '%s' applied before this line: %s"), + $filename, $outline) + if ($self->verbose() > 1 || $self->debug()); + push @newres,$content; + push @newres,$line; + } else { + print wrap_msg(dgettext("po4a", + "Addendum '%s' applied after the line: %s."), + $filename, $outline) + if ($self->verbose() > 1 || $self->debug()); + push @newres,$line; + push @newres,$content; + } + } else { + print wrap_msg(dgettext("po4a", "Addendum '%s' applied at the end of the file."), $filename) + if ($self->verbose() > 1 || $self->debug()); + push @newres,$content; + } + } + } while (scalar @{$self->{TT}{doc_out}}); + @{$self->{TT}{doc_out}} = @newres; + } + print STDERR "done.\n" if $self->debug(); + return 1; +} + +=back + +=head1 INTERNAL FUNCTIONS used to write derivated parsers + +=head2 Getting input, providing output + +Four functions are provided to get input and return output. They are very +similar to shift/unshift and push/pop. The first pair is about input, while +the second is about output. Mnemonic: in input, you are interested in the +first line, what shift gives, and in output you want to add your result at +the end, like push does. + +=over 4 + +=item shiftline() + +This function returns the next line of the doc_in to be parsed and its +reference (packed as an array). + +=item unshiftline($$) + +Unshifts a line of the input document and its reference. + +=item pushline($) + +Push a new line to the doc_out. + +=item popline() + +Pop the last pushed line from the doc_out. + +=back + +=cut + +sub shiftline { + my ($line,$ref)=(shift @{$_[0]->{TT}{doc_in}}, + shift @{$_[0]->{TT}{doc_in}}); + return ($line,$ref); +} +sub unshiftline { + my $self = shift; + unshift @{$self->{TT}{doc_in}},@_; +} + +sub pushline { push @{$_[0]->{TT}{doc_out}}, $_[1] if defined $_[1]; } +sub popline { return pop @{$_[0]->{TT}{doc_out}}; } + +=head2 Marking strings as translatable + +One function is provided to handle the text which should be translated. + +=over 4 + +=item translate($$$) + +Mandatory arguments: + +=over 2 + +=item - + +A string to translate + +=item - + +The reference of this string (i.e. position in inputfile) + +=item - + +The type of this string (i.e. the textual description of its structural role; +used in Locale::Po4a::Po::gettextization(); see also L<po4a(7)|po4a.7>, +section B<Gettextization: how does it work?>) + +=back + +This function can also take some extra arguments. They must be organized as +a hash. For example: + + $self->translate("string","ref","type", + 'wrap' => 1); + +=over + +=item B<wrap> + +boolean indicating whether we can consider that whitespaces in string are +not important. If yes, the function canonizes the string before looking for +a translation or extracting it, and wraps the translation. + +=item B<wrapcol> + +the column at which we should wrap (default: 76). + +=item B<comment> + +an extra comment to add to the entry. + +=back + +Actions: + +=over 2 + +=item - + +Pushes the string, reference and type to po_out. + +=item - + +Returns the translation of the string (as found in po_in) so that the +parser can build the doc_out. + +=item - + +Handles the charsets to recode the strings before sending them to +po_out and before returning the translations. + +=back + +=back + +=cut + +sub translate { + my $self=shift; + my ($string,$ref,$type)=(shift,shift,shift); + my (%options)=@_; + + # my $validoption="wrap wrapcol"; + # my %validoption; + + return "" unless defined($string) && length($string); + + # map { $validoption{$_}=1 } (split(/ /,$validoption)); + # foreach (keys %options) { + # Carp::confess "internal error: translate() called with unknown arg $_. Valid options: $validoption" + # unless $validoption{$_}; + # } + + my $in_charset; + if ($self->{TT}{ascii_input}) { + $in_charset = "ascii"; + } else { + if (defined($self->{TT}{'file_in_charset'}) and + length($self->{TT}{'file_in_charset'}) and + $self->{TT}{'file_in_charset'} !~ m/ascii/i) { + $in_charset=$self->{TT}{'file_in_charset'}; + } else { + # FYI, the document charset have to be determined *before* we see the first + # string to recode. + die wrap_mod("po4a", dgettext("po4a", "Couldn't determine the input document's charset. Please specify it on the command line. (non-ASCII char at %s)"), $self->{TT}{non_ascii_ref}) + } + } + + if ($self->{TT}{po_in}->get_charset ne "CHARSET") { + $string = encode_from_to($string, + $self->{TT}{'file_in_encoder'}, + $self->{TT}{po_in}{encoder}); + } + + if (defined $options{'wrapcol'} && $options{'wrapcol'} < 0) { +# FIXME: should be the parameter given with --width + $options{'wrapcol'} = 76 + $options{'wrapcol'}; + } + my $transstring = $self->{TT}{po_in}->gettext($string, + 'wrap' => $options{'wrap'}||0, + 'wrapcol' => $options{'wrapcol'}); + + if ($self->{TT}{po_in}->get_charset ne "CHARSET") { + my $out_encoder = $self->{TT}{'file_out_encoder'}; + unless (defined $out_encoder) { + $out_encoder = find_encoding($self->get_out_charset) + } + $transstring = encode_from_to($transstring, + $self->{TT}{po_in}{encoder}, + $out_encoder); + } + + # If the input document isn't completely in ascii, we should see what to + # do with the current string + unless ($self->{TT}{ascii_input}) { + my $out_charset = $self->{TT}{po_out}->get_charset; + # We set the output po charset + if ($out_charset eq "CHARSET") { + if ($self->{TT}{utf_mode}) { + $out_charset="UTF-8"; + } else { + $out_charset=$in_charset; + } + $self->{TT}{po_out}->set_charset($out_charset); + } + if ( $in_charset !~ /^$out_charset$/i ) { + Encode::from_to($string,$in_charset,$out_charset); + if (defined($options{'comment'}) and length($options{'comment'})) { + Encode::from_to($options{'comment'},$in_charset,$out_charset); + } + } + } + + # the comments provided by the modules are automatic comments from the PO point of view + $self->{TT}{po_out}->push('msgid' => $string, + 'reference' => $ref, + 'type' => $type, + 'automatic' => $options{'comment'}, + 'wrap' => $options{'wrap'}||0, + 'wrapcol' => $options{'wrapcol'}); + +# if ($self->{TT}{po_in}->get_charset ne "CHARSET") { +# Encode::from_to($transstring,$self->{TT}{po_in}->get_charset, +# $self->get_out_charset); +# } + + if ($options{'wrap'}||0) { + $transstring =~ s/( *)$//s; + my $trailing_spaces = $1||""; + $transstring =~ s/(?<!\\) +$//gm; + $transstring .= $trailing_spaces; + } + + return $transstring; +} + +=head2 Misc functions + +=over 4 + +=item verbose() + +Returns if the verbose option was passed during the creation of the +TransTractor. + +=cut + +sub verbose { + if (defined $_[1]) { + $_[0]->{TT}{verbose} = $_[1]; + } else { + return $_[0]->{TT}{verbose} || 0; # undef and 0 have the same meaning, but one generates warnings + } +} + +=item debug() + +Returns if the debug option was passed during the creation of the +TransTractor. + +=cut + +sub debug { + return $_[0]->{TT}{debug}; +} + +=item detected_charset($) + +This tells TransTractor that a new charset (the first argument) has been +detected from the input document. It can usually be read from the document +header. Only the first charset will remain, coming either from the +process() arguments or detected from the document. + +=cut + +sub detected_charset { + my ($self,$charset)=(shift,shift); + unless (defined($self->{TT}{'file_in_charset'}) and + length($self->{TT}{'file_in_charset'}) ) { + $self->{TT}{'file_in_charset'}=$charset; + if (defined $charset) { + $self->{TT}{'file_in_encoder'}=find_encoding($charset); + } else { + $self->{TT}{ascii_input}=1; + $self->{TT}{utf_mode}=0; + } + } + + if (defined $self->{TT}{'file_in_charset'} and + length $self->{TT}{'file_in_charset'} and + $self->{TT}{'file_in_charset'} !~ m/ascii/i) { + $self->{TT}{ascii_input}=0; + } +} + +=item get_out_charset() + +This function will return the charset that should be used in the output +document (usually useful to substitute the input document's detected charset +where it has been found). + +It will use the output charset specified in the command line. If it wasn't +specified, it will use the input PO's charset, and if the input PO has the +default "CHARSET", it will return the input document's charset, so that no +encoding is performed. + +=cut + +sub get_out_charset { + my $self=shift; + my $charset; + + # Use the value specified at the command line + if (defined($self->{TT}{'file_out_charset'}) and + length($self->{TT}{'file_out_charset'})) { + $charset=$self->{TT}{'file_out_charset'}; + } else { + if ($self->{TT}{utf_mode} && $self->{TT}{ascii_input}) { + $charset="UTF-8"; + } else { + $charset=$self->{TT}{po_in}->get_charset; + $charset=$self->{TT}{'file_in_charset'} + if $charset eq "CHARSET" and + defined($self->{TT}{'file_in_charset'}) and + length($self->{TT}{'file_in_charset'}); + $charset="ascii" + if $charset eq "CHARSET"; + } + } + return $charset; +} + +=item recode_skipped_text($) + +This function returns the recoded text passed as argument, from the input +document's charset to the output document's one. This isn't needed when +translating a string (translate() recodes everything itself), but it is when +you skip a string from the input document and you want the output document to +be consistent with the global encoding. + +=cut + +sub recode_skipped_text { + my ($self,$text)=(shift,shift); + unless ($self->{TT}{'ascii_input'}) { + if(defined($self->{TT}{'file_in_charset'}) and + length($self->{TT}{'file_in_charset'}) ) { + $text = encode_from_to($text, + $self->{TT}{'file_in_encoder'}, + find_encoding($self->get_out_charset)); + } else { + die wrap_mod("po4a", dgettext("po4a", "Couldn't determine the input document's charset. Please specify it on the command line. (non-ASCII char at %s)"), $self->{TT}{non_ascii_ref}) + } + } + return $text; +} + + +# encode_from_to($,$,$) +# +# Encode the given text from one encoding to another one. +# It differs from Encode::from_to because it does not take the name of the +# encoding in argument, but the encoders (as returned by the +# Encode::find_encoding(<name>) method). Thus it permits to save a bunch +# of call to find_encoding. +# +# If the "from" encoding is undefined, it is considered as UTF-8 (or +# ascii). +# If the "to" encoding is undefined, it is considered as UTF-8. +# +sub encode_from_to { + my ($text,$from,$to) = (shift,shift,shift); + + if (not defined $from) { + # for ascii and UTF-8, no conversion needed to get an utf-8 + # string. + } else { + $text = $from->decode($text, 0); + } + + if (not defined $to) { + # Already in UTF-8, no conversion needed + } else { + $text = $to->encode($text, 0); + } + + return $text; +} + +=back + +=head1 FUTURE DIRECTIONS + +One shortcoming of the current TransTractor is that it can't handle +translated document containing all languages, like debconf templates, or +.desktop files. + +To address this problem, the only interface changes needed are: + +=over 2 + +=item - + +take a hash as po_in_name (a list per language) + +=item - + +add an argument to translate to indicate the target language + +=item - + +make a pushline_all function, which would make pushline of its content for +all language, using a map-like syntax: + + $self->pushline_all({ "Description[".$langcode."]=". + $self->translate($line,$ref,$langcode) + }); + +=back + +Will see if it's enough ;) + +=head1 AUTHORS + + Denis Barbier <barbier@linuxfr.org> + Martin Quinson (mquinson#debian.org) + Jordi Vilalta <jvprat@gmail.com> + +=cut + +1; Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Common.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Common.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Common.pm (revision 1843) @@ -0,0 +1,247 @@ +# Locale::Po4a::Common -- Common parts of the po4a scripts and utils +# +# Copyright 2005 by Jordi Vilalta <jvprat@gmail.com> +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING). +# +# This module has common utilities for the various scripts of po4a + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Common - common parts of the po4a scripts and utils + +=head1 DESCRIPTION + +Locale::Po4a::Common contains common parts of the po4a scripts and some useful +functions used along the other modules. + +In order to use Locale::Po4a programatically, one may want to disable +the use of Text::WrapI18N, by writing e.g. + + use Locale::Po4a::Common qw(nowrapi18n); + use Locale::Po4a::Text; + +instead of: + + use Locale::Po4a::Text; + +Ordering is important here: as most Locale::Po4a modules themselves +load Locale::Po4a::Common, the first time this module is loaded +determines whether Text::WrapI18N is used. + +=cut + +package Locale::Po4a::Common; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Exporter); +@EXPORT = qw(wrap_msg wrap_mod wrap_ref_mod textdomain gettext dgettext); + +use 5.006; +use strict; +use warnings; + +sub import { + my $class=shift; + + my $wrapi18n=1; + if (exists $_[0] && defined $_[0] && $_[0] eq 'nowrapi18n') { + shift; + $wrapi18n=0; + } + $class->export_to_level(1, $class, @_); + + return if defined &wrapi18n; + + if ($wrapi18n && -t STDERR && -t STDOUT && eval { require Text::WrapI18N }) { + + # Don't bother determining the wrap column if we cannot wrap. + my $col=$ENV{COLUMNS}; + if (!defined $col) { + my @term=eval "use Term::ReadKey; Term::ReadKey::GetTerminalSize()"; + $col=$term[0] if (!$@); + # If GetTerminalSize() failed we will fallback to a safe default. + # This can happen if Term::ReadKey is not available + # or this is a terminal-less build or such strange condition. + } + $col=76 if (!defined $col); + + eval ' use Text::WrapI18N qw($columns); + $columns = $col; + '; + + eval ' sub wrapi18n($$$) { Text::WrapI18N::wrap($_[0],$_[1],$_[2]) } ' + } else { + + # If we cannot wrap, well, that's too bad. Survive anyway. + eval ' sub wrapi18n($$$) { $_[0].$_[2] } ' + } +} + +sub min($$) { + return $_[0] < $_[1] ? $_[0] : $_[1]; +} + +=head1 FUNCTIONS + +=head2 Showing output messages + +=over + +=item + +show_version($) + +Shows the current version of the script, and a short copyright message. It +takes the name of the script as an argument. + +=cut + +sub show_version { + my $name = shift; + + print sprintf(gettext( + "%s version %s.\n". + "written by Martin Quinson and Denis Barbier.\n\n". + "Copyright (C) 2002, 2003, 2004 Software in the Public Interest, Inc.\n". + "This is free software; see source code for copying\n". + "conditions. There is NO warranty; not even for\n". + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + ), $name, $Locale::Po4a::TransTractor::VERSION)."\n"; +} + +=item + +wrap_msg($@) + +This function displays a message the same way than sprintf() does, but wraps +the result so that they look nice on the terminal. + +=cut + +sub wrap_msg($@) { + my $msg = shift; + my @args = @_; + + return wrapi18n("", "", sprintf($msg, @args))."\n"; +} + +=item + +wrap_mod($$@) + +This function works like wrap_msg(), but it takes a module name as the first +argument, and leaves a space at the left of the message. + +=cut + +sub wrap_mod($$@) { + my ($mod, $msg) = (shift, shift); + my @args = @_; + + $mod .= ": "; + my $spaces = " " x min(length($mod), 15); + return wrapi18n($mod, $spaces, sprintf($msg, @args))."\n"; +} + +=item + +wrap_ref_mod($$$@) + +This function works like wrap_msg(), but it takes a file:line reference as the +first argument, a module name as the second one, and leaves a space at the left +of the message. + +=back + +=cut + +sub wrap_ref_mod($$$@) { + my ($ref, $mod, $msg) = (shift, shift, shift); + my @args = @_; + + if (!$mod) { + # If we don't get a module name, show the message like wrap_mod does + return wrap_mod($ref, $msg, @args); + } else { + $ref .= ": "; + my $spaces = " " x min(length($ref), 15); + $msg = "$ref($mod)\n$msg"; + return wrapi18n("", $spaces, sprintf($msg, @args))."\n"; + } +} + +=head2 Wrappers for other modules + +=over + +=item + +Locale::Gettext + +When the Locale::Gettext module cannot be loaded, this module provide dummy +(empty) implementation of the following functions. In that case, po4a +messages won't get translated but the program will continue to work. + +If Locale::gettext is present, this wrapper also calls +setlocale(LC_MESSAGES, "") so callers don't depend on the POSIX module +either. + +=over + +=item + +bindtextdomain($$) + +=item + +textdomain($) + +=item + +gettext($) + +=item + +dgettext($$) + +=back + +=back + +=cut + +BEGIN { + if (eval { require Locale::gettext }) { + import Locale::gettext; + require POSIX; + POSIX::setlocale(&POSIX::LC_MESSAGES, ''); + } else { + eval ' + sub bindtextdomain($$) { } + sub textdomain($) { } + sub gettext($) { shift } + sub dgettext($$) { return $_[1] } + ' + } +} + +1; +__END__ + +=head1 AUTHORS + + Jordi Vilalta <jvprat@gmail.com> + +=head1 COPYRIGHT AND LICENSE + +Copyright 2005 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Halibut.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Halibut.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Halibut.pm (revision 1843) @@ -0,0 +1,417 @@ +#!/usr/bin/perl -w + +# Copyright (c) 2004-2008 by Nicolas FRANÇOIS <nicolas.francois@centraliens.net> +# +# This file is part of po4a. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with po4a; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Halibut - convert Halibut documents and derivates from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Halibut is a module to help the translation of Halibut documents into +other [human] languages. + +This module contains the definitions of common Halibut commands and +environments. + +=head1 STATUS OF THIS MODULE + +This module is still beta. +Please send feedback and feature requests. + +=head1 CAVEAT + +Some constructs are badly supported. The known ones are documented below. + +=head2 Verbatim blocks + + \c foo + \c bar + +The verbatim block is not considered as a whole. Each line will be +translated separately. + +=head1 SEE ALSO + +L<Locale::Po4a::TeX(3pm)|Locale::Po4a::TeX>, +L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, +L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Nicolas François <nicolas.francois@centraliens.net> + +=head1 COPYRIGHT AND LICENSE + +Copyright 2004-2008 by Nicolas FRANÇOIS <nicolas.francois@centraliens.net>. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see COPYING file). + +=cut + +package Locale::Po4a::Halibut; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw($VERSION @ISA @EXPORT); +$VERSION= $Locale::Po4a::TeX::VERSION; +@ISA= qw(Locale::Po4a::TeX); +@EXPORT= qw(); + +use Locale::Po4a::Common; +use Locale::Po4a::TeX; +use subs qw(&parse_definition_file + ®ister_generic_command &is_closed &translate_buffer + ®ister_verbatim_environment + &generic_command + &in_verbatim + &get_leading_command); +*parse_definition_file = \&Locale::Po4a::TeX::parse_definition_file; +*get_leading_command = \&Locale::Po4a::TeX::get_leading_command; +*register_generic_command = \&Locale::Po4a::TeX::register_generic_command; +*register_verbatim_environment = \&Locale::Po4a::TeX::register_verbatim_environment; +*generic_command = \&Locale::Po4a::TeX::generic_command; +*is_closed = \&Locale::Po4a::TeX::is_closed; +*in_verbatim = \&Locale::Po4a::TeX::in_verbatim; +*translate_buffer = \&Locale::Po4a::TeX::translate_buffer; +use vars qw($RE_ESCAPE $ESCAPE + $RE_VERBATIM + $RE_COMMENT $RE_PRE_COMMENT + $no_wrap_environments $separated_commands + %commands %environments + %command_categories %separated + %env_separators %debug + %translate_buffer_env + @exclude_include @comments); +*RE_ESCAPE = \$Locale::Po4a::TeX::RE_ESCAPE; +*ESCAPE = \$Locale::Po4a::TeX::ESCAPE; +*RE_VERBATIM = \$Locale::Po4a::TeX::RE_VERBATIM; +*RE_COMMENT = \$Locale::Po4a::TeX::RE_COMMENT; +*RE_PRE_COMMENT = \$Locale::Po4a::TeX::RE_PRE_COMMENT; +*no_wrap_environments = \$Locale::Po4a::TeX::no_wrap_environments; +*separated_commands = \$Locale::Po4a::TeX::separated_commands; +*commands = \%Locale::Po4a::TeX::commands; +*environments = \%Locale::Po4a::TeX::environments; +*command_categories = \%Locale::Po4a::TeX::command_categories; +*separated = \%Locale::Po4a::TeX::separated; +*env_separators = \%Locale::Po4a::TeX::env_separators; +*debug = \%Locale::Po4a::TeX::debug; +*translate_buffer_env = \%Locale::Po4a::TeX::translate_buffer_env; +*exclude_include = \@Locale::Po4a::TeX::exclude_include; +*comments = \@Locale::Po4a::TeX::comments; + +#$ESCAPE = "\\"; +#$RE_ESCAPE = "\\\\"; +#$RE_VERBATIM = "\@example"; +$RE_VERBATIM = "PO4A_FAKE_VERBATIM"; +#$RE_COMMENT = "\\\@(?:c|comment)\\b"; +$RE_COMMENT = "PO4A_FAKE_COMMENT"; + +sub docheader { + return "\\# This file was generated with po4a. Translate the source file.\n". + "\n"; +} + +my %break_line = (); + +# translate_line_command indicate if the arguments to the command handled +# by line_command() should be translated: +# undefined: arguments are not translated +# 0: there should be no arguments +# 1: arguments should be translated +my %translate_line_command = (); + +sub parse { + my $self = shift; + my ($line,$ref); + my $paragraph = ""; # Buffer where we put the paragraph while building + my @env = (); # environment stack + my $t = ""; +# $docheader_pushed = 0; + + LINE: + undef $self->{type}; + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { + chomp($line); + $self->{ref}="$ref"; + + if ($line =~ /^\s*\\\s*po4a\s*:/) { + parse_definition_line($self, $line); + goto LINE; + } + + my $t; + ($paragraph, $t, @env) = parse_line($self, $line, $paragraph, \@env); + $self->pushline($t); + + + # Reinit the loop + ($line,$ref)=$self->shiftline(); + undef $self->{type}; + } + + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + } +} # end of parse + +sub parse_line { + my $self = shift; + my $line = shift; + my $paragraph = shift; + my $env = shift; + my @e = @$env; + my $translated = ""; + + my $closed = 1; + if (!in_verbatim(@e)) { + $closed = is_closed($paragraph); + } +# if (not $closed) { +# print "not closed. line: '$line'\n para: '$paragraph'\n"; +# } + +#warn "closed'$closed'$line'$paragraph'\n"; + if ($closed and $line =~ /^\s*$/) { + # An empty line. This indicates the end of the current + # paragraph. + $paragraph .= $line."\n"; + if (length($paragraph)) { + ($translated, @e) = translate_buffer($self,$paragraph,undef,@e); + $paragraph=""; + } + } elsif ($line =~ m/^\\input /) { + if (length($paragraph)) { + ($translated, @e) = translate_buffer($self,$paragraph,undef,@e); + $paragraph=""; + } + $translated .= $line."\n"; + } elsif ($line =~ m/^$RE_COMMENT/) { + $translated = $line."\n"; + } elsif ( $closed + and (is_closed($line) or $line =~ /^\\[ce] /) + and ($line =~ /^\\([^ ]*?)( +.*)?$/)) { + my ($command,$variant,$args,$buffer); + if ($break_line{$1}) { + my @a = (); + $variant = ""; + $args = \@a; + $command = $1; + $buffer = $2||""; + } else { + ($command,$variant,$args,$buffer) = get_leading_command($self, $line); + } + if ( $break_line{$command} + and not ( ($command eq "c" or $command eq "e") + and defined $args->[0])) { +# NOTE: This is just a workaround: "\c " is a verbatim line +# and \c{...} is just a verbatim block + my $t; + if (length($paragraph)) { + ($t, @e) = translate_buffer($self,$paragraph,undef,@e); + $translated .= $t; + $paragraph=""; + } + ($t, @e) = generic_command($self, $command, $variant, $args, \@e); + $translated .= $t; + + my $arg = $buffer; + my @args = (); + if (defined $arg and length $arg) { + # FIXME: keep the spaces ? + $arg =~ s/\s*$//s; + @args= (" ", $arg); + } + ($t, @e) = line_command($self, $command, "", \@args, \@e, 1); + $translated .= $t."\n"; + } else { + # continue the same paragraph + $paragraph .= $line."\n"; + } + } else { + # continue the same paragraph + $paragraph .= $line."\n"; + } + + return ($paragraph, $translated, @e); +} + +sub line_command { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "line_command($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'}); + + my $translated = ""; # $ESCAPE.$command; + my $line = $args->[1]; +#warn "line_command: '$line'\n"; + if (defined $line and length $line) { + if ( defined $translate_line_command{$command} + and $translate_line_command{$command}) { + # $no_wrap could be forced to 1, but it should already be set + $no_wrap = 1; + $line =~ s/^(\s*)//; + my $spaces = $1 || ""; + my ($t,$e) = $self->translate_buffer($line,$no_wrap,@$env,$command); +#warn "line_command: '$t'\n"; + $translated .= $spaces.$t; + } else { + $translated .= $line; + } + } + print "($translated,@$env)\n" + if ($debug{'commands'}); + return ($translated,@$env); +} + + +# 3.2 Simple inline formatting commands +# 3.2.1 `\e': Emphasising text +# inline. extract only if alone +register_generic_command("-e,{_}"); +$translate_line_command{e} = 1; +$break_line{e} = 1; +# 3.2.2 `\c' and `\cw': Displaying computer code inline +# inline. extract only if alone +# NOTE: \c and \c{...} differs. +# \c is marked as a break_line command, but this is reversed in +# parse_line when the \c{...} form is used. +register_generic_command("-c,{_}"); +$translate_line_command{c} = 1; +$break_line{c} = 1; +register_generic_command("-cw,{_}"); +# 3.2.3 `\q': Quotation marks +# inline. extract only if alone +register_generic_command("-q,{_}"); +# 3.2.4 `\-' and `\_': Non-breaking hyphens and spaces +# inline. + +# 3.2.5 `\date': Automatic date generation +# inline. + +# 3.2.6 `\W': WWW hyperlinks +# inline. extract only if alone +register_generic_command("-W,{_}"); +# 3.2.7 `\u': Specifying arbitrary Unicode characters +# inline. + +# 3.2.8 `\k' and `\K': Cross-references to other sections +# inline. They should not be translated. extract only if alone +# FIXME: it will expand to "Section ..." or "section ..." +# Section and section should be translated. +register_generic_command("-k,{}"); +register_generic_command("-K,{}"); +# 3.2.9 `\#': Inline comments +# inline. But can be removed from the head or tail. +register_generic_command("-#,{}"); +$translate_line_command{"#"} = 0; +$break_line{"#"} = 1; +# 3.3 Paragraph-level commands +# 3.3.1 `\c': Displaying whole paragraphs of computer code +# see above +# 3.3.2 `\b', `\n', `\dt', `\dd', `\lcont': Lists +register_generic_command("*b,"); +register_generic_command("*n,"); # FIXME: \n{this-one} not supported? +register_generic_command("*dd,"); +register_generic_command("*dt,"); +# 3.3.2.4 Continuing list items into further paragraphs +register_generic_command("*lcont,{_}"); # registered, but redefined +$commands{lcont} = sub { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + my ($t,@e)=("",@$env); + my $translated = $ESCAPE.$command.$variant."{"; + my $text = $args->[1]; + my $paragraph = ""; + while ( $text =~ s/^(.*?)\n(.*)$/$2/s + or $text =~ s/^([^\n]+)$//s) { + ($paragraph, $t, @e) = parse_line($self, $1, $paragraph, \@e); + $translated .= $t; + } + ($t, @e) = translate_buffer ($self, $paragraph, $no_wrap, @e); + $translated .= $t; + $translated .= "}"; + + return ($translated, @$env); +}; +# 3.3.3 `\rule': Horizontal rules +register_generic_command("rule,"); # TODO: TBC does it break paragraphs +# 3.3.4 `\quote': Indenting multiple paragraphs as a long quotation +register_generic_command("*quote,{_}"); # TODO: TBC +# 3.3.5 `\C', `\H', `\S', `\A', `\U': Chapter and section headings +# FIXME: What happens if the the line is rewrapped? +# NOTE: The name of the section is not translated. +register_generic_command("*C,{}"); +register_generic_command("*S0,{}"); # Synonym for \H +register_generic_command("*H,{}"); +register_generic_command("*S,{}"); +register_generic_command("*S1,{}"); # Synonym for \S +register_generic_command("*S2,{}"); +register_generic_command("*S3,{}"); # FIXME: and so on +# FIXME: \S{question-about-fish}{Question} +register_generic_command("*A,{}"); +register_generic_command("*U,{}"); +# 3.3.6 `\copyright', `\title', `\versionid': Miscellaneous blurb commands +register_generic_command("*title,"); +register_generic_command("*copyright,"); +register_generic_command("*versionid,"); +# 3.4 Creating a bibliography +# nocite +register_generic_command("*nocite,{}"); +# B +register_generic_command("*B,{}"); +# BR +register_generic_command("*BR,{}"); # FIXME: \BR{freds-book} [Fred1993] +# 3.5 Creating an index +# 3.5.1 Simple indexing +# \i: inline \i{index} or \i\x{grep} +# \ii +register_generic_command("-ii,{_}"); +# \IM: inline. Variable number of arguments +register_generic_command("*IM,{_}"); +$translate_line_command{IM} = 1; +$break_line{IM} = 1; +# 3.6 Configuring Halibut +# \cfg +register_generic_command("+cfg,{}{_}"); # NOTE: the new command is not registered +# 3.7 Defining macros +register_generic_command("*define,{}"); # FIXME: line +$translate_line_command{define} = 1; +$break_line{define} = 1; + +1; Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/KernelHelp.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/KernelHelp.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/KernelHelp.pm (revision 1843) @@ -0,0 +1,175 @@ +# Locale::Po4a::KernelHelp -- Convert kernel configuration help from/to PO files +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING). +# +# This module converts POD to PO file, so that it becomes possible to +# translate POD formatted documentation. See gettext documentation for +# more info about PO files. + +############################################################################ +# Modules and declarations +############################################################################ + +use Pod::Parser; +use Locale::Po4a::TransTractor qw(process new); +use Locale::Po4a::Common; + +package Locale::Po4a::KernelHelp; + +use 5.006; +use strict; +use warnings; + +require Exporter; + +use vars qw(@ISA @EXPORT $AUTOLOAD); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); # new process write read writepo readpo); + +my $debug=0; + +sub initialize {} + +sub parse { + my $self=shift; + my ($line,$ref); + my $paragraph=""; # Buffer where we put the paragraph while building + my ($status)=0; # Syntax of KH is: + # description<nl>variable<nl>help text<nl><nl> + # Status will be: + # 0 1 2 3 0 + + my ($desc,$variable); + + LINE: + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { + chomp($line); + print STDERR "status=$status;Seen >>$line<<:" if $debug; + + if ($line =~ /^\#/) { + print STDERR "comment.\n" if $debug; + $self->pushline("$line\n"); + } elsif ($status == 0) { + if ($line =~ /\S/) { + print STDERR "short desc.\n" if $debug; + $desc=$line; + $status ++; + } else { + print STDERR "empty line.\n" if $debug; + $self->pushline("$line\n"); + } + } elsif ($status == 1) { + print STDERR "var name.\n" if $debug; + $variable=$line; + $status++; + + $self->pushline($self->translate($desc,$ref,"desc_$variable"). + "\n$variable\n"); + + } elsif ($status == 2) { + $line =~ s/^ //; + if ($line =~ /\S/) { + print STDERR "paragraph line.\n" if $debug; + $paragraph .= $line."\n"; + } else { + print STDERR "end of paragraph.\n" if $debug; + $status++; + $paragraph=$self->translate($paragraph, + $ref, + "helptxt_$variable"); + $paragraph =~ s/^/ /gm; + $self->pushline("$paragraph\n"); + $paragraph =""; + } + } elsif ($status == 3) { + if ($line =~ s/^ //) { + if ($line =~ /\S/) { + print "begin of paragraph.\n" if $debug; + $paragraph = $line."\n"; + $status--; + } else { + print "end of config option.\n" if $debug; + $status=0; + $self->pushline("\n"); + } + } else { + $self->unshiftline($line,$ref); + $status=0; + } + } else { + die wrap_ref_mod($ref, "po4a::kernelhelp", gettext("Syntax error")); + } + + # Reinit the loop + ($line,$ref)=$self->shiftline(); + } +} + +sub docheader { + return <<EOT; +# +# ***************************************************** +# * GENERATED FILE, DO NOT EDIT * +# * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * +# ***************************************************** +# +# This file was generated by po4a(7). Do not store it (in VCS, for example), +# but store the PO file used as source file by pod-translate. +# +# In fact, consider this as a binary, and the PO file as a regular .c file: +# If the PO get lost, keeping this translation up-to-date will be harder. +# +EOT +} +1; + +############################################################################## +# Module return value and documentation +############################################################################## + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::KernelHelp - convert kernel configuration help from/to PO files + +=head1 DESCRIPTION + +Locale::Po4a::KernelHelp is a module to help the translation of +documentation for the Linux kernel configuration options into other [human] +languages. + +=head1 STATUS OF THIS MODULE + +This module is just written, and needs more tests. Most of the needed work +will concern the tools used to parse this file (and configure the kernel), +so that they accept to read the documentation from another (translated) +file. + +=head1 SEE ALSO + +L<Pod::Parser>, +L<Locale::Po4a::Man(3pm)>, +L<Locale::Po4a::Pod(3pm)>, +L<Locale::Po4a::TransTractor(3pm)>, +L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Denis Barbier <barbier@linuxfr.org> + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Xhtml.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Xhtml.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Xhtml.pm (revision 1843) @@ -0,0 +1,237 @@ +#!/usr/bin/perl + +# Po4a::Xhtml.pm +# +# extract and translate translatable strings from XHTML documents. +# +# This code extracts plain text from tags and attributes from strict XHTML +# documents. +# +# Copyright (c) 2005 by Yves Rütschlé <po4a@rutschle.net> +# Copyright (c) 2007-2008 by Nicolas François <nicolas.francois@centraliens.net> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Xhtml - convert XHTML documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Xhtml is a module to help the translation of XHTML documents into +other [human] languages. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +These are this module's particular options: + +=over 4 + +=item B<includessi>[B<=>I<rootpath>] + +Include files specified by an include SSI (Server Side Includes) element +(e.g. <!--#include virtual="/foo/bar.html" -->). + +B<Note:> You should use it only for static files. + +An additional I<rootpath> parameter can be specified. It specifies the root +path to find files included by a B<virtual> attribute. + +=back + +=head1 STATUS OF THIS MODULE + +This module is fully functional, as it relies in the L<Locale::Po4a::Xml> +module. This only defines the translatable tags and attributes. + +"It works for me", which means I use it successfully on my personal Web site. +However, YMMV: please let me know if something doesn't work for you. In +particular, tables are getting no testing whatsoever, as we don't use them. + +=head1 SEE ALSO + +L<Locale::Po4a::TransTractor(3pm)>, L<Locale::Po4a::Xml(3pm)>, L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Yves Rütschlé <po4a@rutschle.net> + Nicolas François <nicolas.francois@centraliens.net> + +=head1 COPYRIGHT AND LICENSE + + Copyright (c) 2004 by Yves Rütschlé <po4a@rutschle.net> + Copyright (c) 2007-2008 by Nicolas François <nicolas.francois@centraliens.net> + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +package Locale::Po4a::Xhtml; + +use 5.006; +use strict; +use warnings; + +use Locale::Po4a::Xml; +use vars qw(@tag_types); +*tag_types = \@Locale::Po4a::Xml::tag_types; + +use Locale::Po4a::Common; +use Carp qw(croak); + +use vars qw(@ISA); +@ISA = qw(Locale::Po4a::Xml); + +sub tag_extract_SSI { + my ($self,$remove)=(shift,shift); + my ($eof,@tag)=$self->get_string_until("-->", + {include=>1, + remove=>$remove, + unquoted=>1}); + my ($t,$r) = @tag; + if ($t =~ m/<!--#include (file|virtual)="(.*?)"\s-->/s) { + my $includefile; + if ($1 eq "file") { + $includefile = "."; + } else { + $includefile = $self->{options}{'includessi'}; + } + $includefile .= $2; + if (!$remove) { + $self->get_string_until("-->", + {include=>1, + remove=>1, + unquoted=>1}); + } + my $linenum=0; + my @include; + + open (my $in, $includefile) + or croak wrap_mod("po4a::xml", + dgettext("po4a", "Can't read from %s: %s"), + $includefile, $!); + while (defined (my $includeline = <$in>)) { + $linenum++; + my $includeref=$includefile.":$linenum"; + push @include, ($includeline,$includeref); + } + close $in + or croak wrap_mod("po4a::xml", + dgettext("po4a", "Can't close %s after reading: %s"), + $includefile, $!); + + while (@include) { + my ($ir, $il) = (pop @include, pop @include); + $self->unshiftline($il,$ir); + } + $t =~ s/<!--#include/<!-- SSI included by po4a: /; + $self->unshiftline($t, $r); + } + return ($eof,@tag); +} + +sub initialize { + my $self = shift; + my %options = @_; + + $self->{options}{'includessi'}=''; + + $self->SUPER::initialize(%options); + + $self->{options}{'wrap'}=1; + $self->{options}{'doctype'}=$self->{options}{'doctype'} || 'html'; + + # Default tags are translated (text rewrapped), and introduce a + # break. + # The following list indicates the list of tags which should be + # translated without rewrapping. + $self->{options}{'_default_translated'}.=' + W<pre> + '; + + # The following list indicates the list of tags which should be + # translated inside the current block, whithout introducing a + # break. + $self->{options}{'_default_inline'}.=' + <a> + <abbr> + <acronym> + <b> + <big> + <bdo> + <button> + <cite> + <code> + <del> + <dfn> + <em> + <i> + <ins> + <input> + <kbd> + <label> + <object> + <q> + <samp> + <select> + <small> + <span> + <strong> + <sub> + <sup> + <textarea> + <tt> + <u> + <var> + '; + + # Ignored tags: <img> + # Technically, <img> is an inline tag, but setting it as such is + # annoying, and not usually useful, unless you use images to + # write text (in which case you have bigger problems than this + # program not inlining img: you now have to translate all your + # images. That'll teach you). + # If you choose to translate images, you may also want to set + # <map> as placeholder and <area> as inline. + + $self->{options}{'_default_attributes'}.=' + alt + lang + title + '; + $self->treat_options; + + if ( defined $self->{options}{'includessi'} + and length $self->{options}{'includessi'}) { + foreach (@tag_types) { + if ($_->{beginning} eq "!--#") { + $_->{f_extract} = \&tag_extract_SSI; + } + } + # FIXME: the directory may be named "1" ;( + if ($self->{options}{'includessi'} eq "1") { + $self->{options}{'includessi'} = "."; + } + } +} Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Guide.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Guide.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Guide.pm (revision 1843) @@ -0,0 +1,151 @@ +#!/usr/bin/perl + +# Po4a::Guide.pm +# +# extract and translate translatable strings from Guide XML documents. +# +# This code extracts plain text from tags and attributes on Guide XML +# documents. +# +# Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Guide - convert Guide XML documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Guide is a module to help in the translation of the Gentoo +Linux documentation in the Guide XML format into other [human] languages. + +This format is documented here: http://www.gentoo.org/doc/en/xml-guide.xml + +=head1 STATUS OF THIS MODULE + +This module is fully functional, as it relies in the L<Locale::Po4a::Xml> +module. This only defines the translatable tags and attributes. + +The only known issue is that it doesn't include files with the <include +href="..."> tag, but you can translate all those files alone, and it's usually +better to have them separated. + +=head1 SEE ALSO + +L<Locale::Po4a::TransTractor(3pm)>, L<Locale::Po4a::Xml(3pm)>, L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Jordi Vilalta <jvprat@gmail.com> + +=head1 COPYRIGHT AND LICENSE + +Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +package Locale::Po4a::Guide; + +use 5.006; +use strict; +use warnings; + +use Locale::Po4a::Xml; + +use vars qw(@ISA); +@ISA = qw(Locale::Po4a::Xml); + +sub initialize { + my $self = shift; + my %options = @_; + +#TODO: <include href="..."> includes a file + $self->SUPER::initialize(%options); + $self->{options}{'_default_translated'}.=' + w<abstract> + <author> + <b> + <brite> + <c> + <codenote> + <comment> + <const> + <date> + w<dd> + w<dt> + <e> + <i> + <ident> + w<impo> + <keyword> + w<li> + <mail> + w<note> + w<p> + <path> + W<pre> + <stmt> + <sub> + w<subtitle> + w<summary> + <sup> + w<th> + w<ti> + w<title> + <uri> + <var> + <version> + w<warn>'; + $self->{options}{'_default_attributes'}.=' + <author>title + <figure>caption + <figure>link + <figure>short + <guide>lang + <guide>link + <p>by + <pre>caption'; + $self->{options}{'_default_inline'}.=' + <b> + <brite> + <c> + <const> + <e> + <i> + <ident> + <img> + <keyword> + <mail> + <path> + <stmt> + <sub> + <sup> + <uri> + <var>'; + $self->treat_options; +} Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Dia.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Dia.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Dia.pm (revision 1843) @@ -0,0 +1,113 @@ +#!/usr/bin/perl + +# Po4a::Dia.pm +# +# extract and translate translatable strings from Dia diagrams. +# +# This code extracts plain text from string tags on uncompressed Dia +# diagrams. +# +# Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Dia - convert uncompressed Dia diagrams from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Dia is a module to help the translation of diagrams in the +uncompressed Dia format into other [human] languages. + +You can get Dia (the graphical editor for these diagrams) from: + http://www.gnome.org/projects/dia/ + +=head1 TRANSLATING WITH PO4A::DIA + +This module only translates uncompressed Dia diagrams. You can save your +uncompressed diagrams with Dia itself, unchecking the "Compress diagram +files" at the "Save Diagram" dialog. + +Another way is to uncompress the dia files from command line with: + gunzip < original.dia > uncompressed.dia + +=head1 STATUS OF THIS MODULE + +This module is fully functional, as it relies in the L<Locale::Po4a::Xml> +module. This only defines the translatable tags (E<lt>dia:stringE<gt>), and +filters the internal strings (the content of the E<lt>dia:diagramdataE<gt> +tag), not interesting for translation. + +=head1 SEE ALSO + +L<Locale::Po4a::TransTractor(3pm)>, L<Locale::Po4a::Xml(3pm)>, L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Jordi Vilalta <jvprat@gmail.com> + +=head1 COPYRIGHT AND LICENSE + +Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +package Locale::Po4a::Dia; + +use 5.006; +use strict; +use warnings; + +use Locale::Po4a::Xml; + +use vars qw(@ISA); +@ISA = qw(Locale::Po4a::Xml); + +sub initialize { + my $self = shift; + my %options = @_; + + $self->SUPER::initialize(%options); + $self->{options}{'nostrip'}=1; + $self->{options}{'_default_translated'}.=' <dia:string>'; + $self->treat_options; +} + +sub found_string { + my ($self,$text,$ref,$options)=@_; + return $text if $text =~ m/^\s*$/s; + + #We skip the paper type string + if ( $self->get_path() !~ /<dia:diagramdata>/ ) { + $text =~ /^#(.*)#$/s; + $text = "#".$self->translate($1,$ref,"String", + 'wrap'=>$self->{options}{'wrap'})."#"; + } + + return $text; +} Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Wml.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Wml.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Wml.pm (revision 1843) @@ -0,0 +1,172 @@ +#!/usr/bin/perl -w + +# Po4a::Wml.pm +# +# extract and translate translatable strings from a WML (web markup language) documents +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Wml - convert WML (web markup language) documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Wml is a module to help the translation of WML documents into +other [human] languages. Do not mixup the WML we are speaking about here +(web markup language) and the WAP crap used on cell phones. + +Please note that this module relies upon the Locale::Po4a::Xhtml +module, which also relies upon the Locale::Po4a::Xml module. This +means that all tags for web page expressions are assumed to be written +in the XHTML syntax. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +NONE. + +=head1 STATUS OF THIS MODULE + +This module works for some simple documents, but is still young. +Currently, the biggest issue of the module is probably that it cannot +handle documents that contain non-XML inline tags such as <email +"foo@example.org">, which are often defined in the WML. Improvements +will be added in the future releases. + +=cut + +package Locale::Po4a::Wml; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::Xhtml); +@EXPORT = qw(); + +use Locale::Po4a::Xhtml; +use File::Temp; + +sub initialize { + my $self = shift; + my %options = @_; + + $self->SUPER::initialize(%options); + + $self->treat_options; +} + +sub read { + my ($self,$filename)=@_; + my $tmp_filename; + (undef,$tmp_filename)=File::Temp->tempfile("po4aXXXX", + DIR => "/tmp", + SUFFIX => ".xml", + OPEN => 0, + UNLINK => 0) + or die wrap_msg(gettext("Can't create a temporary XML file: %s"), $!); + my $file; + open FILEIN,"$filename" or die "Cannot read $filename: $!\n"; + { + $/ = undef; + $file=<FILEIN>; + } + $/ = "\n"; + + # Mask perl cruft out of XML sight + while ( ($file =~ m|^(.*?)<perl>(.*?)</perl>(.*?)$|ms) + or ($file =~ m|^(.*?)<:(.*?):>(.*)$|ms)) { + my ($pre,$in,$post) = ($1,$2,$3); + $in =~ s/</PO4ALT/g; + $in =~ s/>/PO4AGT/g; + $file = "${pre}<!--PO4ABEGINPERL${in}PO4AENDPERL-->$post"; + } + + # Mask mp4h cruft + while ($file =~ s|^#(.*)$|<!--PO4ASHARPBEGIN$1PO4ASHARPEND-->|m) { + my $line = $1; + print STDERR "PROTECT HEADER: $line\n" + if $self->debug(); + if ($line =~ m/title="([^"]*)"/) { #) {#"){ + warn "FIXME: We should translate the page title: $1\n"; + } + } + + # Validate define-tag tag's argument + $file =~ s|(<define-tag\s+)([^\s>]+)|$1PO4ADUMMYATTR="$2"|g; + + # Flush the result to disk + open OUTFILE,">$tmp_filename"; + print OUTFILE $file; + close INFILE; + close OUTFILE or die "Cannot write $tmp_filename: $!\n"; + + push @{$self->{DOCXML}{infile}}, $tmp_filename; + $self->{DOCWML}{$tmp_filename} = $filename; + $self->Locale::Po4a::TransTractor::read($tmp_filename); + unlink "$tmp_filename"; +} + +sub parse { + my $self = shift; + + foreach my $filename (@{$self->{DOCXML}{infile}}) { + $self->Locale::Po4a::Xml::parse_file($filename); + my $org_filename = $self->{DOCWML}{$filename}; + + # Fix the references + foreach my $msgid (keys %{$self->{TT}{po_out}{po}}) { + $self->{TT}{po_out}{po}{$msgid}{'reference'} =~ + s|$filename(:\d+)|$org_filename$1|o; + } + + # Get the document back (undoing our WML masking) + # FIXME: need to join the file first, and then split? + my @doc_out; + foreach my $line (@{$self->{TT}{doc_out}}) { + $line =~ s/^<!--PO4ASHARPBEGIN(.*?)PO4ASHARPEND-->/#$1/mg; + $line =~ s/<!--PO4ABEGINPERL(.*?)PO4AENDPERL-->/<:$1:>/sg; + $line =~ s/(<define-tag\s+)PO4ADUMMYATTR="([^"]*)"/$1$2/g; + $line =~ s/PO4ALT/</sg; + $line =~ s/PO4AGT/>/sg; + push @doc_out, $line; + } + $self->{TT}{doc_out} = \@doc_out; + } +} + +1; + +=head1 AUTHORS + + Martin Quinson (mquinson#debian.org) + Noriada Kobayashi <nori1@dolphin.c.u-tokyo.ac.jp> + +=head1 COPYRIGHT AND LICENSE + + Copyright 2005 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Debconf.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Debconf.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Debconf.pm (revision 1843) @@ -0,0 +1,221 @@ +#!/usr/bin/perl -w + +# Po4a::Debconf.pm +# +# extract and translate translatable strings from debconf templates +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Debconf - convert debconf templates from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Debconf is a module to help the translation of the debconf +templates into other [human] languages. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +NONE. + +=head1 STATUS OF THIS MODULE + +Not tested. + + +DO NOT USE THIS MODULE TO PRODUCE TEMPLATES. It's only good to extract data. + + +=cut + +# Note that the following works. It may help to write a multi-translate + +# sub toto { +# do shift; +# } +# toto({print "ok"}); + + +package Locale::Po4a::Debconf; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + + +sub initialize {} + +sub parse { + my $self = shift; + + my ($line,$lref); + + my ($field, $value, $extended,$ref,$type)=('', '', '', '',''); + my $verb = 0; # whether we are in verbatim mode + + my $escape = sub { + my $str=shift; + $str =~ s/"/\\"/g; + return $str; + }; + + # function in charge of pushing the accumulated material to output + my $handle_field = sub { + my $field=shift; + my $value=shift; + my $extended=shift; + my $ref = shift; + my $type = shift; + + $field =~ s/^(_*)(.*)$/$2/; + my $undercount = length($1) || 0; # number of _ leading the field name + + # Only one leading _: regular translated field + if ($undercount == 1) { + + # the untranslated field + $self->pushline("$field: $value"); + map {$self->pushline(' '.($_||'.'))} split (/\n/,$extended); + + + my $eval='$self->pushline("'.$field.'[FIXME:LANGCODE.ENCODING]: "'; # what to multi-eval + $eval .= '.$self->translate("'.$escape->($value)."\",\"$ref\",\"$type/$field\",wrap=>1)".'."\n".'."\n"; + + my $count = 0; + foreach my $para (split(/\n\n/, $extended)) { + my $wrap = 1; + if ($para =~ /(^|\n)\s/m) { + $wrap = 0; + } + $eval .= ($count?'.':''); + $count ++; + $eval .= '$self->translate("'.$escape->($para)."\",\"$ref\",\"$type/$field\[$count\]\",wrap=>$wrap)"."\n"; + } + + $eval .= ")\n"; + print STDERR $eval if $self->debug(); + eval $eval; + print STDERR "XXXXXXXXXXXXXXXXX\n" if $self->debug(); + + + # two leading _: split on coma and multi-translate each part. No extended value. + } elsif ($undercount == 2) { + $self->pushline("$field: $value"); # the untranslated field + + my $eval='$self->pushline("'.$field.'FIXME[LANGCODE]: "'; # what to multi-eval + + my $first = 1; + for my $part (split(/(?<!\\), */, $value, 0)) + { + $part =~ s/\\,/,/g; + $eval .= ($first?'':'.", "').'.$self->translate("'.$escape->($part)."\",\"$ref\",\"$type/$field chunk\",wrap=>1)"; + $first = 0; + } + $eval .= ")\n"; + + print $eval if $self->debug(); + eval $eval; + + # no leading _: don't touch it + } else { + $self->pushline("$field: $value"); + map {$self->pushline(' '.($_||'.'))} split (/\n/,$extended); + } + }; + + # main loop + ($line,$lref)=$self->shiftline(); + + while (defined($line)) { + # a new field (within a stanza) + if ($line=~/^([-_.A-Za-z0-9]*):\s?(.*)/) { + + $handle_field->($field, $value, $extended, $ref,$type); # deal with previously accumulated + ($field, $value, $extended,$verb)=('', '', '', 0); + + $field=$1; + $value=$2; + $value=~s/\s*$//; + $extended=''; + $ref=$lref; + + $type = $value if $field eq 'Type'; + + die wrap_mod("po4a::debconf", dgettext("po4a", "Translated field in master document: %s"), $field) + if $field =~ m/-/; + + # paragraph separator within extended value + } elsif ($line=~/^\s\.$/) { + $extended.="\n\n"; + + # continuation of extended value + } elsif ($line=~/^\s(.*)/) { + + my $bit=$1; + $verb = 1 if ($bit =~ m/^\s/); + + $bit=~s/\s*$//; + + $extended .= ($verb ? "\n" : ' ') if length $extended && $extended !~ /[\n ]$/; + $extended .= $bit.($verb ? "\n" : ""); + + # this may be an empty line closing the stanza, a comment or even a parse error (if file not DebConf-clean). + } else { + + $handle_field->($field, $value, $extended, $ref,$type); + ($field, $value, $extended,$verb)=('', '', '', 0); + + $self->pushline($line); + + } + + ($line,$lref)=$self->shiftline(); + } + + $handle_field->($field, $value, $extended, $ref,$type); +} + +1; + +=head1 AUTHORS + +This module is loosely inspired from both po-debconf and debconf code. The +adaptation for po4a was done by: + + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + + Copyright 2005 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/TeX.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/TeX.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/TeX.pm (revision 1843) @@ -0,0 +1,1730 @@ +#!/usr/bin/perl -w + +# Copyright (c) 2004, 2005 by Nicolas FRANÇOIS <nicolas.francois@centraliens.net> +# +# This file is part of po4a. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with po4a; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::TeX - convert TeX documents and derivates from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::TeX is a module to help the translation of TeX documents into +other [human] languages. It can also be used as a base to build modules for +TeX-based documents. + +Users should probably use the LaTeX module, which inherite from the TeX module +and contains the definitions of common LaTeX commands. + +=head1 TRANSLATING WITH PO4A::TEX + +This module can be used directly to handle generic TeX documents. +This will split your document in smaller blocks (paragraphs, verbatim +blocks, or even smaller like titles or indexes). + +There are some options (described in the next section) that can customize +this behavior. If this doesn't fit to your document format you're encouraged +to write your own module derived from this, to describe your format's details. +See the section B<WRITING DERIVATE MODULES> below, for the process description. + +This module can also be customized by lines starting with "% po4a:" in the +TeX file. +These customizations are described in the B<INLINE CUSTOMIZATION> section. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +These are this module's particular options: + +=over 4 + +=cut + +package Locale::Po4a::TeX; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(%commands %environments + $RE_ESCAPE $ESCAPE $RE_VERBATIM + $no_wrap_environments + $verbatim_environments + %separated_command + %separated_environment + %translate_buffer_env + &generic_command + ®ister_generic_command + ®ister_generic_environment); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; +use File::Basename qw(dirname); +use Carp qw(croak); + +use Encode; +use Encode::Guess; + +# hash of known commands and environments, with parsing sub. +# See end of this file +use vars qw(%commands %environments); +# hash to describe the number of parameters and which one have to be +# translated. Used by generic commands +our %command_parameters = (); +our %environment_parameters = (); +# hash to describe the separators of environments. +our %env_separators =(); + +# The escape character used to introduce commands. +our $RE_ESCAPE = "\\\\"; +our $ESCAPE = "\\"; +# match the beginning of a verbatim block +our $RE_VERBATIM = "\\\\begin\\{(?:verbatim)\\*?\\}"; +# match the beginning of a comment. +# NOTE: It must contain a group, with chars preceding the comment +our $RE_PRE_COMMENT= "(?<!\\\\)(?:\\\\\\\\)*"; +our $RE_COMMENT= "\\\%"; + +# Space separated list of environments that should not be re-wrapped. +our $no_wrap_environments = "verbatim"; +our $verbatim_environments = "verbatim"; +# hash with the commands that have to be separated (or have to be joined). +# 3 modes are currently used: +# '*' The command is separated if it appear at an extremity of a +# paragraph +# '+' The command is separated, but its arguments are joined together +# with the command name for the translation +# '-' The command is not separated, unless it appear alone on a paragraph +# (e.g. \strong) +our %separated_command = (); +our %separated_environment = (); + +=item B<debug> + +Activate debugging for some internal mechanisms of this module. +Use the source to see which parts can be debugged. + +=item B<no_wrap> + +Comma-separated list of environments which should not be re-wrapped. + +Note that there is a difference between verbatim and no_wrap environments. +There is no command and comments analysis in verbatim blocks. + +If this environment was not already registered, po4a will consider that +this environment does not take any parameters. + +=item B<exclude_include> + +Colon-separated list of files that should not be included by \input and +\include. + +=item B<definitions> + +The name of a file containing definitions for po4a, as defined in the +B<INLINE CUSTOMIZATION> section. +You can use this option if it is not possible to put the definitions in +the document being translated. + +=item B<verbatim> + +Comma-separated list of environments which should be taken as verbatim. + +If this environment was not already registered, po4a will consider that +this environment does not take any parameters. + +=back + +Using these options permits to override the behaviour of the commands defined +in the default lists. + +=head1 INLINE CUSTOMIZATION + +The TeX module can be customized with lines starting by B<% po4a:>. +These lines are interpreted as commands to the parser. +The following commands are recognized: + +=over 4 + +=item B<% po4a: command> I<command1> B<alias> I<command2> + +Indicates that the arguments of the I<command1> command should be +treated as the arguments of the I<command2> command. + +=item B<% po4a: command> I<command1> I<parameters> + +This permit to describe in detail the parameters of the I<command1> +command. +This information will be used to check the number of arguments and their +types. + +You can precede the I<command1> command by + +=over 4 + +=item an asterisk (B<*>) + +po4a will extract this command from paragraphs (if it is located at +the beginning or the end of a paragraph). +The translators will then have to translate the parameters that are marked +as translatable. + +=item a plus (B<+>) + +As for an asterisk, the command will be extracted if it appear at an +extremity of a block, but the parameters won't be translated separately. +The translator will have to translate the command concatenated to all its +parameters. +This permits to keep more context, and is useful for commands with small +words in parameter, which can have multiple meanings (and translations). + +Note: In this case you don't have to specify which parameters are +translatable, but po4a must know the type and number of parameters. + +=item a minus (B<->) + +In this case, the command won't be extracted from any block. +But if it appears alone on a block, then only the parameters marked as +translatable will be presented to the translator. +This is useful for font commands. These commands should generally not be +separated from their paragraph (to keep the context), but there is no +reason to annoy the translator with them if a whole string is enclosed in +such a command. + +=back + +The I<parameters> argument is a set of [] (to indicate an optional +argument) or {} (to indicate a mandatory argument). +You can place an underscore (_) between these brackets to indicate that +the parameter must be translated. For example: + % po4a: command *chapter [_]{_} + +This indicates that the chapter command has two parameters: an optional +(short title) and a mandatory one, which must both be translated. +If you want to specify that the href command has two mandatory parameters, +that you don't want to translate the URL (first parameter), and that you +don't want this command to be separated from its paragraph (which allow +the translator to move the link in the sentence), you can use: + % po4a: command -href {}{_} + +In this case, the information indicating which arguments must be +translated is only used if a paragraph is only composed of this href +command. + +=item B<% po4a: environment> I<env> I<parameters> + +This permits to define the parameters accepted by the I<env> environment. +This information is latter used to check the number of arguments of the +\begin command, and permit to specify which one must be translated. +The syntax of the I<parameters> argument is the same as described for the +commands. +The first parameter of the \begin command is the name of the environment. +This parameter must not be specified in the list of parameters. Here are +some examples: + % po4a: environment multicols {} + % po4a: environment equation + +As for the commands, I<env> can be preceded by a plus (+) to indicate +that the \begin command must be translated with all its arguments. + +=item B<% po4a: separator> I<env> B<">I<regex>B<"> + +Indicates that an environment should be split according to the given +regular expression. + +The regular expression is delimited by quotes. +It should not create any backreference. +You should use (?:) if you need a group. +It may also need some escapes. + +For example, the LaTeX module uses the "(?:&|\\\\)" regular expression to +translate separately each cell of a table (lines are separated by '\\' and +cells by '&'). + +The notion of environment is expended to the type displayed in the PO file. +This can be used to split on "\\\\" in the first mandatory argument of the +title command. In this case, the environment is title{#1}. + +=item B<% po4a: verbatim environment> I<env> + +Indicate that I<env> is a verbatim environment. +Comments and commands will be ignored in this environment. + +If this environment was not already registered, po4a will consider that +this environment does not take any parameters. + +=back + +=cut + +# Directory name of the main file. +# It is the directory where included files will be searched. +# See read_file. +my $my_dirname; + +# Array of files that should not be included by read_file. +# See read_file. +our @exclude_include; + +my %type_end=('{'=>'}', '['=>']', ' '=>''); + +######################### +#### DEBUGGING STUFF #### +######################### +my %debug=('pretrans' => 0, # see pre-conditioning of translation + 'postrans' => 0, # see post-conditioning of translation + 'translate' => 0, # see translation + 'extract_commands' => 0, # see commands extraction + 'commands' => 0, # see command subroutines + 'environments' => 0, # see environment subroutines + 'translate_buffer' => 0 # see buffer translation + ); + +=head1 WRITING DERIVATE MODULES + +=over 4 + +=item B<pre_trans> + +=cut + +sub pre_trans { + my ($self,$str,$ref,$type)=@_; + # Preformatting, so that translators don't see + # strange chars + my $origstr=$str; + print STDERR "pre_trans($str)=" + if ($debug{'pretrans'}); + + # Accentuated characters + # FIXME: only do this if the encoding is UTF-8? +# $str =~ s/${RE_ESCAPE}`a/à/g; +## $str =~ s/${RE_ESCAPE}c{c}/ç/g; # not in texinfo: @,{c} +# $str =~ s/${RE_ESCAPE}^e/ê/g; +# $str =~ s/${RE_ESCAPE}'e/é/g; +# $str =~ s/${RE_ESCAPE}`e/è/g; +# $str =~ s/${RE_ESCAPE}`u/ù/g; +# $str =~ s/${RE_ESCAPE}"i/ï/g; +# # Non breaking space. FIXME: should we change $\sim$ to ~ +# $str =~ s/~/\xA0/g; # FIXME: not in texinfo: @w{ } + + print STDERR "$str\n" if ($debug{'pretrans'}); + return $str; +} + +=item B<post_trans> + +=cut + +sub post_trans { + my ($self,$str,$ref,$type)=@_; + my $transstr=$str; + + print STDERR "post_trans($str)=" + if ($debug{'postrans'}); + + # Accentuated characters +# $str =~ s/à/${ESCAPE}`a/g; +## $str =~ s/ç/$ESCAPEc{c}/g; # FIXME: not in texinfo +# $str =~ s/ê/${ESCAPE}^e/g; +# $str =~ s/é/${ESCAPE}'e/g; +# $str =~ s/è/${ESCAPE}`e/g; +# $str =~ s/ù/${ESCAPE}`u/g; +# $str =~ s/ï/${ESCAPE}"i/g; +# # Non breaking space. FIXME: should we change ~ to $\sim$ +# $str =~ s/\xA0/~/g; # FIXME: not in texinfo + + print STDERR "$str\n" if ($debug{'postrans'}); + return $str; +} + +# Comments are extracted in the parse function. +# They are stored in the @comments array, and then displayed as a PO +# comment with the first translated string of the paragraph. +my @comments = (); + +=item B<translate> + +Wrapper around Transtractor's translate, with pre- and post-processing +filters. + +Comments of a paragraph are inserted as a PO comment for the first +translated string of this paragraph. + +=cut + +sub translate { + my ($self,$str,$ref,$type) = @_; + my (%options)=@_; + my $origstr=$str; + print STDERR "translate($str)=" + if ($debug{'translate'}); + + return $str unless (defined $str) && length($str); + return $str if ($str eq "\n"); + + $str=pre_trans($self,$str,$ref||$self->{ref},$type); + + # add comments (if any and not already added to the PO) + if (@comments) { + $options{'comment'} .= join('\n', @comments); + + @comments = (); + } + +# FIXME: translate may append a newline, keep the trailing spaces so we can +# recover them. + my $spaces = ""; + if ($options{'wrap'} and $str =~ m/^(.*?)(\s+)$/s) { + $str = $1; + $spaces = $2; + } + + # Translate this + $str = $self->SUPER::translate($str, + $ref||$self->{ref}, + $type || $self->{type}, + %options); + +# FIXME: translate may append a newline, see above + if ($options{'wrap'}) { + chomp $str; + $str .= $spaces; + } + + $str=post_trans($self,$str,$ref||$self->{ref},$type); + + print STDERR "'$str'\n" if ($debug{'translate'}); + return $str; +} + +########################### +### COMMANDS SEPARATION ### +########################### + +=item B<get_leading_command>($buffer) + +This function returns: + +=over 4 + +=item A command name + +If no command is found at the beginning of the given buffer, this string +will be empty. Only commands that can be separated are considered. +The %separated_command hash contains the list of these commands. + +=item A variant + +This indicates if a variant is used. For example, an asterisk (*) can +be added at the end of sections command to specify that they should +not be numbered. In this case, this field will contain "*". If there +is no variant, the field is an empty string. + +=item An array of tuples (type of argument, argument) + +The type of argument can be either '{' (for mandatory arguments) or '[' +(for optional arguments). + +=item The remaining buffer + +The rest of the buffer after the removal of this leading command and +its arguments. If no command is found, the original buffer is not +touched and returned in this field. + +=back + +=cut + +sub get_leading_command { + my ($self, $buffer) = (shift,shift); + my $command = ""; # the command name + my $variant = ""; # a varriant for the command (e.g. an asterisk) + my @args; # array of arguments + print STDERR "get_leading_command($buffer)=" + if ($debug{'extract_commands'}); + + if ($buffer =~ m/^$RE_ESCAPE([[:alnum:]]+)(\*?)(.*)$/s + && defined $separated_command{$1}) { + # The buffer begin by a comand (possibly preceded by some + # whitespaces). + $command = $1; + $variant = $2; + $buffer = $3; + # read the arguments (if any) + while ($buffer =~ m/^\s*$RE_PRE_COMMENT([\[\{])(.*)$/s) { + my $type = $1; + my $arg = ""; + my $count = 1; + $buffer = $2; + # stop reading the buffer when the number of ] (or }) matches the + # the number of [ (or {). + while ($count > 0) { + if ($buffer =~ m/^(.*?$RE_PRE_COMMENT)([\[\]\{\}])(.*)$/s) { + $arg .= $1; + $buffer = $3; + if ($2 eq $type) { + $count++; + } elsif ($2 eq $type_end{$type}) { + $count--; + } + if ($count > 0) { + $arg .= $2 + } + } else { + die wrap_ref_mod($self->{ref}, + "po4a::tex", + dgettext("po4a", "un-balanced %s in '%s'"), + $type, + $buffer); + } + } + push @args, ($type,$arg); + } + } + if (defined $command and length $command) { + # verify the number of arguments + my($check,$reason,$remainder) = check_arg_count($self,$command,\@args); + if (not $check) { + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", + "Error while checking the number of ". + "arguments of the '%s' command: %s")."\n", + $command, $reason); + } + + if (@$remainder) { + # FIXME: we should also keep the spaces to be idempotent + my ($temp,$type,$arg); + while (@$remainder) { + $type = shift @$remainder; + $arg = shift @$remainder; + $temp .= $type.$arg.$type_end{$type}; + # And remove the same number of arguments from @args + pop @args; + pop @args; + } + $buffer = $temp.$buffer; + } + } + + print STDERR "($command,$variant,@args,$buffer)\n" + if ($debug{'extract_commands'}); + return ($command,$variant,\@args,$buffer); +} + +=item B<get_trailing_command>($buffer) + +The same as B<get_leading_command>, but for commands at the end of a buffer. + +=cut + +sub get_trailing_command { + my ($self, $buffer) = (shift,shift); + my $orig_buffer = $buffer; + print STDERR "get_trailing_command($buffer)=" + if ($debug{'extract_commands'}); + + my @args; + my $command = ""; + my $variant = ""; + + # While the buffer ends by }, consider it is a mandatory argument + # and extract this argument. + while ( $buffer =~ m/^(.*$RE_PRE_COMMENT(\{).*)$RE_PRE_COMMENT\}$/s + or $buffer =~ m/^(.*$RE_PRE_COMMENT(\[).*)$RE_PRE_COMMENT\]$/s) { + my $arg = ""; + my $count = 1; + $buffer = $1; + my $type = $2; + # stop reading the buffer when the number of } (or ]) matches the + # the number of { (or [). + while ($count > 0) { + if ($buffer =~ m/^(.*$RE_PRE_COMMENT)([\{\}\[\]])(.*)$/s) { + $arg = $3.$arg; + $buffer = $1; + if ($2 eq $type) { + $count--; + } elsif ($2 eq $type_end{$type}) { + $count++; + } + if ($count > 0) { + $arg = $2.$arg; + } + } else { + die wrap_ref_mod($self->{ref}, + "po4a::tex", + dgettext("po4a", "un-balanced %s in '%s'"), + $type_end{$type}, + $buffer); + } + } + unshift @args, ($type,$arg); + } + + # There should now be a command, maybe followed by an asterisk. + if ($buffer =~ m/^(.*$RE_PRE_COMMENT)$RE_ESCAPE([[:alnum:]]+)(\*?)\s*$/s + && defined $separated_command{$2}) { + $buffer = $1; + $command = $2; + $variant = $3; + my($check,$reason,$remainder) = check_arg_count($self,$command,\@args); + if (not $check) { + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", + "Error while checking the number of ". + "arguments of the '%s' command: %s")."\n", + $command, $reason); + } + if (@$remainder) { + # There are some arguments after the command. + # We can't extract this comand. + $command = ""; + } + } + + # sanitize return values if no command was found. + if (!length($command)) { + $command = ""; + $variant = ""; + undef @args; + $buffer = $orig_buffer; + } +# verify the number of arguments + + print STDERR "($command,$variant,@args,$buffer)\n" + if ($debug{'extract_commands'}); + return ($command,$variant,\@args,$buffer); +} + +=item B<translate_buffer> + +Recursively translate a buffer by separating leading and trailing +commands (those which should be translated separately) from the +buffer. + +If a function is defined in %translate_buffer_env for the current +environment, this function will be used to translate the buffer instead of +translate_buffer(). + +=cut + +our %translate_buffer_env = (); +sub translate_buffer { + my ($self,$buffer,$no_wrap,@env) = (shift,shift,shift,@_); + + if (@env and defined $translate_buffer_env{$env[-1]}) { + return &{$translate_buffer_env{$env[-1]}}($self,$buffer,$no_wrap,@env); + } + + print STDERR "translate_buffer($buffer,$no_wrap,@env)=" + if ($debug{'translate_buffer'}); + + my ($command,$variant) = ("",""); + my $args; + my $translated_buffer = ""; + my $orig_buffer = $buffer; + my $t = ""; # a temporary string + + if ($buffer =~ /^\s*$/s) { + print STDERR "($buffer,@env)\n" + if ($debug{'translate_buffer'}); + return ($buffer, @env); + } + # verbatim blocks. + # Buffers starting by \end{verbatim} are handled after. + if (in_verbatim(@env) and $buffer !~ m/^\n?\Q$ESCAPE\Eend\{$env[-1]\*?\}/) { + if($buffer =~ m/^(.*?)(\n?\Q$ESCAPE\Eend\{$env[-1]\*?\}.*)$/s) { + # end of a verbatim block + my ($begin, $end) = ($1?$1:"", $2); + my ($t1, $t2) = ("", ""); + if (defined $begin) { + $t1 = $self->translate($begin,$self->{ref}, + $env[-1], + "wrap" => 0); + } + ($t2, @env) = translate_buffer($self, $end, $no_wrap, @env); + print STDERR "($t1$t2,@env)\n" + if ($debug{'translate_buffer'}); + return ($t1.$t2, @env); + } else { + $translated_buffer = $self->translate($buffer,$self->{ref}, + $env[-1], + "wrap" => 0); + print STDERR "($translated_buffer,@env)\n" + if ($debug{'translate_buffer'}); + return ($translated_buffer, @env); + } + } + # early detection of verbatim environment + if ($buffer =~ /^($RE_VERBATIM\n?)(.*)$/s and length $2) { + my ($begin, $end) = ($1, $2); + my ($t1, $t2) = ("", ""); + ($t1, @env) = translate_buffer($self, $begin, $no_wrap, @env); + ($t2, @env) = translate_buffer($self, $end, $no_wrap, @env); + + print STDERR "($t1$t2,@env)\n" + if ($debug{'translate_buffer'}); + return ($t1.$t2, @env); + } + # detect \begin and \end (if they are not commented) + if ($buffer =~ /^((?:.*?\n)? # $1 is + (?:[^%] # either not a % + | # or + (?<!\\)(?:\\\\)*\\%)*? # a % preceded by an odd nb of \ + ) # $2 is a \begin{ with the end of the line + (${RE_ESCAPE}(?:begin|end)\{.*)$/sx + and length $1) { + my ($begin, $end) = ($1, $2); + my ($t1, $t2) = ("", ""); + if (is_closed($begin)) { + ($t1, @env) = translate_buffer($self, $begin, $no_wrap, @env); + ($t2, @env) = translate_buffer($self, $end, $no_wrap, @env); + + print STDERR "($t1$t2,@env)\n" + if ($debug{'translate_buffer'}); + return ($t1.$t2, @env); + } + } + + # remove comments from the buffer. + # Comments are stored in an array and shown as comments in the PO. + while ($buffer =~ m/($RE_PRE_COMMENT)$RE_COMMENT([^\n]*)(\n[ \t]*)(.*)$/s) { + my $comment = $2; + my $end = ""; + if ($4 =~ m/^\n/s and $buffer !~ m/^$RE_COMMENT/s) { + # a line with comments, followed by an empty line. + # Keep the empty line, but remove the comment. + # This is an empirical heuristic, but seems to work;) + $end = "\n"; + } + if (defined $comment and $comment !~ /^\s*$/s) { + push @comments, $comment; + } + $buffer =~ s/($RE_PRE_COMMENT)$RE_COMMENT([^\n]*)(\n[ \t]*)/$1$end/s; + } + + + # translate leading commands. + do { + # keep the leading space to put them back after the translation of + # the command. + my $spaces = ""; + if ($buffer =~ /^(\s+)(.*?)$/s) { + $spaces = $1; +# $buffer = $2; # FIXME: this also remove trailing spaces!! + $buffer =~ s/^\s*//s; + } + my $buffer_save = $buffer; + ($command, $variant, $args, $buffer) = + get_leading_command($self,$buffer); + if ( (length $command) + and (defined $separated_command{$command}) + and ($separated_command{$command} eq '-') + and ( (not (defined($buffer))) + or ($buffer !~ m/^\s*$/s) )) { + # This command can be separated only if alone on a buffer. + # We need to remove the trailing commands first, and see if it + # will be alone on this buffer. + $buffer = $buffer_save; + $command = ""; + } + if (length($command)) { + # call the command subroutine. + # These command subroutines will probably call translate_buffer + # with the content of each argument that need a translation. + if (defined ($commands{$command})) { + ($t,@env) = &{$commands{$command}}($self,$command,$variant, + $args,\@env,$no_wrap); + $translated_buffer .= $spaces.$t; + # Handle spaces after a command. + $spaces = ""; + if ($buffer =~ /^(\s+)(.*?)$/s) { + $spaces = $1; +# $buffer = $2; # FIXME: this also remove trailing spaces!! + $buffer =~ s/^\s*//s; + } + $translated_buffer .= $spaces; + } else { + die wrap_ref_mod($self->{ref}, + "po4a::tex", + dgettext("po4a", "Unknown command: '%s'"), + $command); + } + } else { + $buffer = $spaces.$buffer; + } + } while (length($command)); + + # array of trailing commands, which will be translated later. + my @trailing_commands = (); + do { + my $spaces = ""; + if ($buffer =~ /^(.*?)(\s+)$/s) { + $buffer = $1; + $spaces = $2; + } + my $buffer_save = $buffer; + ($command, $variant, $args, $buffer) = + get_trailing_command($self,$buffer); + if ( (length $command) + and (defined $separated_command{$command}) + and ($separated_command{$command} eq '-') + and ( (not defined $buffer) + or ($buffer !~ m/^\s*$/s))) { + # We can extract this command. + $command = ""; + $buffer = $buffer_save; + } + if (length($command)) { + unshift @trailing_commands, ($command, $variant, $args, $spaces); + } else { + $buffer .= $spaces; + } + } while (length($command)); + + # Now, $buffer is just a block that can be translated. + + # environment specific treatment + if (@env and defined $env_separators{$env[-1]}) { + my $re_separator = $env_separators{$env[-1]}; + my $buf_begin = ""; +# FIXME: the separator may have to be translated. + while ($buffer =~ m/^(.*?)(\s*$re_separator\s*)(.*)$/s) { + my ($begin, $sep, $end) = ($1, $2, $3); + $buf_begin .= $begin; + if (is_closed($buf_begin)) { + my $t = ""; + ($t, @env) = translate_buffer($self,$buf_begin,$no_wrap,@env); + $translated_buffer .= $t.$sep; + $buf_begin = ""; + } else { + # the command is in a command argument + $buf_begin .= $sep; + } + $buffer = $end; + } + $buffer = $buf_begin . $buffer; + } + + # finally, translate + if (length($buffer)) { + my $wrap = 1; + my ($e1, $e2); + NO_WRAP_LOOP: foreach $e1 (@env) { + foreach $e2 (split(' ', $no_wrap_environments)) { + if ($e1 eq $e2) { + $wrap = 0; + last NO_WRAP_LOOP; + } + } + } + $wrap = 0 if (defined $no_wrap and $no_wrap == 1); + # Keep spaces at the end of the buffer. + my $spaces_end = ""; + if ($buffer =~ /^(.*?)(\s+)$/s) { + $spaces_end = $2; + $buffer = $1; + } + if ($wrap and $buffer =~ s/^(\s+)//s) { + $translated_buffer .= $1; + } + $translated_buffer .= $self->translate($buffer,$self->{ref}, + @env?$env[-1]:"Plain text", + "wrap" => $wrap); + # Restore spaces at the end of the buffer. + $translated_buffer .= $spaces_end; + } + + # append the translation of the trailing commands + while (@trailing_commands) { + my $command = shift @trailing_commands; + my $variant = shift @trailing_commands; + my $args = shift @trailing_commands; + my $spaces = shift @trailing_commands; + if (defined ($commands{$command})) { + ($t,@env) = &{$commands{$command}}($self,$command,$variant, + $args,\@env,$no_wrap); + $translated_buffer .= $t.$spaces; + } else { + die wrap_ref_mod($self->{ref}, + "po4a::tex", + dgettext("po4a", "Unknown command: '%s'"), + $command); + } + } + + print STDERR "($translated_buffer,@env)\n" + if ($debug{'translate_buffer'}); + return ($translated_buffer,@env); +} + +################################ +#### EXTERNAL CUSTOMIZATION #### +################################ + +=item B<read> + +Overload Transtractor's read + +=cut + +sub read { + my $self=shift; + my $filename=shift; + + # keep the directory name of the main file. + $my_dirname = dirname($filename); + + push @{$self->{TT}{doc_in}}, read_file($self, $filename); +} + +=item B<read_file> + +Recursively read a file, appending included files which are not listed in the +@exclude_include array. Included files are searched using the B<kpsewhich> +command from the Kpathsea library. + +Except from the file inclusion part, it is a cut and paste from +Transtractor's read. + +=cut + +# TODO: fix DOS end of lines +sub read_file { + my $self=shift; + my $filename=shift + or croak wrap_mod("po4a::tex", + dgettext("po4a", "Can't read from file without having a filename")); + my $linenum=0; + my @entries=(); + + open (my $in, $filename) + or croak wrap_mod("po4a::tex", + dgettext("po4a", "Can't read from %s: %s"), $filename, $!); + while (defined (my $textline = <$in>)) { + $linenum++; + my $ref="$filename:$linenum"; + # TODO: add support for includeonly + # The next regular expression matches \input or \includes that are + # not commented (but can be preceded by a \%. + while ($textline =~ /^((?:[^%]|(?<!\\)(?:\\\\)*\\%)*) + \\(include|input) + \{([^\{]*)\}(.*)$/x) { + my ($begin,$newfilename,$end) = ($1,$3,$4); + my $tag = $2; + my $include = 1; + foreach my $f (@exclude_include) { + if ($f eq $newfilename) { + $include = 0; + $begin .= "\\$tag"."{$newfilename}"; + $textline = $end; + last; + } + } + if ($include and ($tag eq "include")) { + $begin .= "\\clearpage"; + } + if ($begin !~ /^\s*$/) { + push @entries, ($begin,$ref); + } + if ($include) { + # search the file + open (KPSEA, "kpsewhich " . $newfilename . " |"); + my $newfilepath = <KPSEA>; + + if ($newfilename ne "" and $newfilepath eq "") { + die wrap_mod("po4a::tex", + dgettext("po4a", + "Can't find %s with kpsewhich"), + $filename); + } + + push @entries, read_file($self, + $newfilepath); + if ($tag eq "include") { + $textline = "\\clearpage".$end; + } else { + $textline = $end; + } + } + } + if (length($textline)) { + my @entry=($textline,$ref); + push @entries, @entry; + + # Detect if this file has non-ascii characters + if($self->{TT}{ascii_input}) { + + my $decoder = guess_encoding($textline); + if (!ref($decoder) or $decoder !~ /Encode::XS=/) { + # We have detected a non-ascii line + $self->{TT}{ascii_input} = 0; + # Save the reference for future error message + $self->{TT}{non_ascii_ref} ||= $ref; + } + } + } + } + close $in + or croak wrap_mod("po4a::tex", + dgettext("po4a", "Can't close %s after reading: %s"), $filename, $!); + + return @entries; +} + +=back + + +=over 4 + +=item B<parse_definition_file> + +Subroutine for parsing a file with po4a directives (definitions for +new commands). + +=cut + +sub parse_definition_file { + my ($self,$filename,$only_try)=@_; + my $filename_org = $filename; + + open (KPSEA, "kpsewhich " . $filename . " |"); + $filename = <KPSEA>; + + if (not defined $filename) { + warn wrap_mod("po4a::tex", + dgettext("po4a", "kpsewhich cannot find %s"), $filename_org); + if (defined $only_try && $only_try) { + return; + } else { + exit 1; + } + } + + if (! open (IN,"<$filename")) { + warn wrap_mod("po4a::tex", + dgettext("po4a", "Can't open %s: %s"), $filename, $!); + if (defined $only_try && $only_try) { + return; + } else { + exit 1; + } + } + while (<IN>) { + if (/^\s*%\s*po4a\s*:/) { + parse_definition_line($self, $_); + } + } +} + +=item B<parse_definition_line> + +Parse a definition line of the form "% po4a: ". + +See the B<INLINE CUSTOMIZATION> section for more details. + +=cut + +sub parse_definition_line { + my ($self,$line)=@_; + $line =~ s/^\s*%\s*po4a\s*:\s*//; + + if ($line =~ /^command\s+([-*+]?)(\w+)\s+(.*)$/) { + my $command = $2; + $line = $3; + if ($1) { + $separated_command{$command} = $1; + } + if ($line =~ /^alias\s+(\w+)\s*$/) { + if (defined ($commands{$1})) { + $commands{$command} = $commands{$1}; + $command_parameters{$command} = $command_parameters{$1}; + } else { + die wrap_mod("po4a::tex", + dgettext("po4a", "Cannot use an alias to the unknown command '%s'"), + $2); + } + } elsif ($line =~ /^(-1|\d+),(-1|\d+),(-1|[ 0-9]*),(-1|[ 0-9]*?)\s*$/) { + die wrap_ref_mod($self->{ref}, + "po4a::tex", + dgettext("po4a", "You are using the old ". + "definitions format (%s). ". + "Please update this definition line."), + $_[1]) + } elsif ($line =~ m/^((?:\{_?\}|\[_?\])*)\s*$/) { + register_generic_command("$command,$1"); + } + } elsif ($line =~ /^environment\s+([+]?\w+\*?)(.*)$/) { + my $env = $1; + $line = $2; + if ($line =~ m/^\s*((?:\{_?\}|\[_?\])*)\s*$/) { + register_generic_environment("$env,$1"); + } + } elsif ($line =~ /^separator\s+(\w+(?:\[#[0-9]+\])?)\s+\"(.*)\"\s*$/) { + my $env = $1; # This is not necessarily an environment. + # It can also be smth like 'title[#1]'. + $env_separators{$env} = $2; + } elsif ($line =~ /^verbatim\s+environment\s+(\w+)\s+$/) { + register_verbatim_environment($1); + } +} + +=item B<is_closed> + +=cut + +sub is_closed { + my $paragraph = shift; +# FIXME: [ and ] are more difficult to handle, because it is not easy to detect if it introduce an optional argument + my $tmp = $paragraph; + my $closing = 0; + my $opening = 0; + # FIXME: { and } should not be counted in verbatim blocks + # Remove comments + $tmp =~ s/$RE_PRE_COMMENT$RE_COMMENT.*//mg; + while ($tmp =~ /^.*?$RE_PRE_COMMENT\{(.*)$/s) { + $opening += 1; + $tmp = $1; + } + $tmp = $paragraph; + # Remove comments + $tmp =~ s/$RE_PRE_COMMENT$RE_COMMENT.*//mg; + while ($tmp =~ /^.*?$RE_PRE_COMMENT\}(.*)$/s) { + $closing += 1; + $tmp = $1; + } + return $opening eq $closing; +} + +sub in_verbatim { + foreach my $e1 (@_) { + foreach my $e2 (split(' ', $verbatim_environments)) { + if ($e1 eq $e2) { + return 1; + } + } + } + + return 0; +} + +############################# +#### MAIN PARSE FUNCTION #### +############################# +=item B<parse> + +=cut + +sub parse { + my $self = shift; + my ($line,$ref); + my $paragraph = ""; # Buffer where we put the paragraph while building + my @env = (); # environment stack + my $t = ""; + + LINE: + undef $self->{type}; + ($line,$ref)=$self->shiftline(); + + while (defined($line)) { + chomp($line); + $self->{ref}="$ref"; + + if ($line =~ /^\s*%\s*po4a\s*:/) { + parse_definition_line($self, $line); + goto LINE; + } + + my $closed = is_closed($paragraph); + +#FIXME: what happens if a \begin{verbatim} or \end{verbatim} is in the +# middle of a line. (This is only an issue if the verbatim +# environment contains an un-closed bracket) + if ( ($closed and ($line =~ /^\s*$/ or + $line =~ /^\s*$RE_VERBATIM\s*$/)) + or (in_verbatim(@env) and $line =~ /^\s*\Q$ESCAPE\Eend{$env[-1]}\s*$/) + ) { + # An empty line. This indicates the end of the current + # paragraph. + $paragraph .= $line."\n"; + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + @comments = (); + } + } else { + # continue the same paragraph + $paragraph .= $line."\n"; + } + + # Reinit the loop + ($line,$ref)=$self->shiftline(); + undef $self->{type}; + } + + if (length($paragraph)) { + ($t, @env) = translate_buffer($self,$paragraph,undef,@env); + $self->pushline($t); + $paragraph=""; + } +} # end of parse + +=item B<docheader> + +=back + +=cut + +sub docheader { + return "% This file was generated with po4a. Translate the source file.\n". + "%\n"; +} + + +#################################### +#### DEFINITION OF THE COMMANDS #### +#################################### + +=head1 INTERNAL FUNCTIONS used to write derivated parsers + +Command and environment functions take the following arguments (in +addition to the $self object): + +=over + +=item A command name + +=item A variant + +=item An array of (type, argument) tuples + +=item The current environment + +=back + +The first 3 arguments are extracted by get_leading_command or +get_trailing_command. + +Command and environment functions return the translation of the command +with its arguments and a new environment. + +Environment functions are called when a \begin command is found. They are +called with the \begin command and its arguments. + +The TeX module only proposes one command function and one environment +function: generic_command and generic_environment. + +generic_command uses the information specified by +register_generic_command or by adding definition to the TeX file: + % po4a: command I<command1> I<parameters> + +generic_environment uses the information specified by +register_generic_environment or by adding definition to the TeX file: + % po4a: environment I<env> I<parameters> + +Both functions will only translate the parameters that were specified as +translatable (with a '_'). +generic_environment will append the name of the environment to the +environment stack and generic_command will append the name of the command +followed by an identifier of the parameter (like {#7} or [#2]). + +=cut + +# definition of environment related commands + +$commands{'begin'}= sub { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "begin($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'} || $debug{'environments'}); + my ($t,@e) = ("",()); + + my $envir = $args->[1]; + if (defined($envir) and $envir =~ /^(.*)\*$/) { + $envir = $1; + } + + if (defined($envir) && defined($environments{$envir})) { + ($t, @e) = &{$environments{$envir}}($self,$command,$variant, + $args,$env,$no_wrap); + } else { + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", "unknown environment: '%s'"), + $args->[1]); + } + + print "($t, @e)\n" + if ($debug{'commands'} || $debug{'environments'}); + return ($t, @e); +}; +# Use register_generic to set the type of arguments. The function is then +# overwritten: +register_generic_command("*end,{}"); +$commands{'end'}= sub { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "end($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'} || $debug{'environments'}); + + # verify that this environment was the last pushed environment. + if (!@$env || @$env[-1] ne $args->[1]) { + # a begin may have been hidden in the middle of a translated + # buffer. FIXME: Just warn for now. + warn wrap_ref_mod($self->{'ref'}, "po4a::tex", + dgettext("po4a", "unmatched end of environment '%s'"), + $args->[1]); + } else { + pop @$env; + } + + my ($t,@e) = generic_command($self,$command,$variant,$args,$env,$no_wrap); + + print "($t, @$env)\n" + if ($debug{'commands'} || $debug{'environments'}); + return ($t, @$env); +}; +$separated_command{'begin'} = '*'; + +sub generic_command { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "generic_command($command,$variant,@$args,@$env,$no_wrap)=" + if ($debug{'commands'} || $debug{'environments'}); + + my ($t,@e)=("",()); + my $translated = ""; + + # the number of arguments is checked during the extraction of the + # arguments + + if ( (not (defined $separated_command{$command})) + or $separated_command{$command} ne '+') { + # Use the information from %command_parameters to only translate + # the needed parameters + $translated = "$ESCAPE$command$variant"; + # handle arguments + my @arg_types = @{$command_parameters{$command}{'types'}}; + my @arg_translated = @{$command_parameters{$command}{'translated'}}; + my ($type, $opt); + my @targs = @$args; + my $count = 0; + while (@targs) { + $type = shift @targs; + $opt = shift @targs; + my $have_to_be_translated = 0; +TEST_TYPE: + if ($count >= scalar @arg_types) { + # The number of arguments does not match, + # and a variable number of arguments was not specified + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", + "Wrong number of arguments for ". + "the '%s' command.")."\n", + $command); + } elsif ($type eq $arg_types[$count]) { + $have_to_be_translated = $arg_translated[$count]; + $count ++; + } elsif ($type eq '{' and $arg_types[$count] eq '[') { + # an optionnal argument was not provided, + # try with the next argument. + $count++; + goto TEST_TYPE; + } else { + my $reason = dgettext("po4a", + "An optional argument ". + "was provided, but a mandatory one ". + "is expected."); + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", "Command '%s': %s")."\n", + $command, $reason); + } + if ($have_to_be_translated) { + ($t, @e) = translate_buffer($self,$opt,$no_wrap,(@$env,$command.$type."#".$count.$type_end{$type})); + } else { + $t = $opt; + } + $translated .= $type.$t.$type_end{$type}; + } + } else { + # Translate the command with all its arguments joined + my $tmp = "$ESCAPE$command$variant"; + my ($type, $opt); + while (@$args) { + $type = shift @$args; + $opt = shift @$args; + $tmp .= $type.$opt.$type_end{$type}; + } + @e = @$env; + my $wrap = 1; + $wrap = 0 if (defined $no_wrap and $no_wrap == 1); + $translated = $self->translate($tmp,$self->{ref}, + @e?$e[-1]:"Plain text", + "wrap" => $wrap); + } + + print "($translated, @$env)\n" + if ($debug{'commands'} || $debug{'environments'}); + return ($translated, @$env); +} + +sub register_generic_command { + if ($_[0] =~ m/^(.*),((\{_?\}|\[_?\]| _? )*)$/) { + my $command = $1; + my $arg_types = $2; + if ($command =~ /^([-*+])(.*)$/) { + $command = $2; + $separated_command{$command}=$1; + } + my @types = (); + my @translated = (); + while ( defined $arg_types + and length $arg_types + and $arg_types =~ m/^(?:([\{\[ ])(_?)[\}\] ])(.*)$/) { + push @types, $1; + push @translated, ($2 eq "_")?1:0; + $arg_types = $3; + } + $command_parameters{$command}{'types'} = \@types; + $command_parameters{$command}{'translated'} = \@translated; + $command_parameters{$command}{'nb_args'} = ""; + $commands{$command} = \&generic_command; + } else { + die wrap_mod("po4a::tex", + dgettext("po4a", + "register_generic_command: unsupported ". + "format: '%s'.")."\n", + $_[0]); + } +} + +######################################## +#### DEFINITION OF THE ENVIRONMENTS #### +######################################## +sub generic_environment { + my $self = shift; + my ($command,$variant,$args,$env) = (shift,shift,shift,shift); + my $no_wrap = shift; + print "generic_environment($command,$variant,$args,$env,$no_wrap)=" + if ($debug{'environments'}); + my ($t,@e)=("",()); + my $translated = ""; + + # The first argument (the name of the environment is never translated) + # For the others, @types and @translated are used. + $translated = "$ESCAPE$command$variant"; + my @targs = @$args; + my $type = shift @targs; + my $opt = shift @targs; + my $new_env = $opt; + $translated .= $type.$new_env.$type_end{$type}; + if ( (not (defined $separated_environment{$new_env})) + or $separated_environment{$new_env} ne '+') { + # Use the information from %command_parameters to only translate + # the needed parameters + my @arg_types = @{$environment_parameters{$new_env}{'types'}}; + my @arg_translated = @{$environment_parameters{$new_env}{'translated'}}; + + my $count = 0; + while (@targs) { + $type = shift @targs; + $opt = shift @targs; + my $have_to_be_translated = 0; +TEST_TYPE: + if ($count >= scalar @arg_types) { + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", + "Wrong number of arguments for ". + "the '%s' command.")."\n", + $command); + } elsif ($type eq $arg_types[$count]) { + $have_to_be_translated = $arg_translated[$count]; + $count ++; + } elsif ($type eq '{' and $arg_types[$count] eq '[') { + # an optionnal argument was not provided, + # try with the next argument. + $count++; + goto TEST_TYPE; + } else { + my $reason = dgettext("po4a", + "An optional argument ". + "was provided, but a mandatory one ". + "is expected."); + die wrap_ref_mod($self->{ref}, "po4a::tex", + dgettext("po4a", "Command '%s': %s")."\n", + $command, $reason); + } + + if ($have_to_be_translated) { + ($t, @e) = translate_buffer($self,$opt,$no_wrap,(@$env,$new_env.$type."#".$count.$type_end{$type})); + } else { + $t = $opt; + } + $translated .= $type.$t.$type_end{$type}; + + } + } else { + # Translate the \begin command with all its arguments joined + my ($type, $opt); + my $buf = $translated; + while (@targs) { + $type = shift @targs; + $opt = shift @targs; + $buf .= $type.$opt.$type_end{$type}; + } + @e = @$env; + my $wrap = 1; + $wrap = 0 if $no_wrap == 1; + $translated = $self->translate($buf,$self->{ref}, + @e?$e[-1]:"Plain text", + "wrap" => $wrap); + } + @e = (@$env, $new_env); + + print "($translated,@e)\n" + if ($debug{'environments'}); + return ($translated,@e); +} + + +sub check_arg_count { + my $self = shift; + my $command = shift; + my $args = shift; + my @targs = @$args; + my $check = 1; + my @remainder = (); + my $reason = ""; + my ($type, $arg); + my @arg_types; + + if ($command eq 'begin') { + $type = shift @targs; + # The name of the environment is mandatory + if ( (not defined $type) + or ($type ne '{')) { + $reason = dgettext("po4a", + "The first argument of \\begin is mandatory."); + $check = 0; + } + my $env = shift @targs; + if (not defined $environment_parameters{$env}) { + die wrap_ref_mod($self->{ref},"po4a::tex", + dgettext("po4a", "unknown environment: '%s'"), + $env); + } + @arg_types = @{$environment_parameters{$env}{'types'}}; + } else { + @arg_types = @{$command_parameters{$command}{'types'}}; + } + + my $count = 0; + while ($check and @targs) { + $type = shift @targs; + $arg = shift @targs; +TEST_TYPE: + if ($count >= scalar @arg_types) { + # Too many arguments some will remain + @remainder = ($type, $arg, @targs); + last; + } elsif ($type eq $arg_types[$count]) { + $count ++; + } elsif ($type eq '{' and $arg_types[$count] eq '[') { + # an optionnal argument was not provided, + # try with the next argument. + $count++; + goto TEST_TYPE; + } else { + $check = 0; + $reason = dgettext("po4a", + "An optional argument was ". + "provided, but a mandatory one is expected."); + } + } + + return ($check, $reason, \@remainder); +} + +sub register_generic_environment { + print "register_generic_environment($_[0])\n" + if ($debug{'environments'}); + if ($_[0] =~ m/^(.*),((?:\{_?\}|\[_?\])*)$/) { + my $env = $1; + my $arg_types = $2; + if ($env =~ /^([+])(.*)$/) { + $separated_environment{$2} = $1; + $env = $2; + } + my @types = (); + my @translated = (); + while ( defined $arg_types + and length $arg_types + and $arg_types =~ m/^(?:([\{\[])(_?)[\}\]])(.*)$/) { + push @types, $1; + push @translated, ($2 eq "_")?1:0; + $arg_types = $3; + } + $environment_parameters{$env} = { + 'types' => \@types, + 'translated' => \@translated + }; + $environments{$env} = \&generic_environment; + } +} + +sub register_verbatim_environment { + my $env = shift; + $no_wrap_environments .= " $env"; + $verbatim_environments .= " $env"; + $RE_VERBATIM = "\\\\begin\\{(?:". + join("|", split(/ /, $verbatim_environments)). + ")\\*?\\}"; + register_generic_environment("$env,") + unless (defined $environments{$env}); +} + +#################################### +### INITIALIZATION OF THE PARSER ### +#################################### +sub initialize { + my $self = shift; + my %options = @_; + + $self->{options}{'definitions'}=''; + $self->{options}{'exclude_include'}=''; + $self->{options}{'no_wrap'}=''; + $self->{options}{'verbatim'}=''; + $self->{options}{'debug'}=''; + $self->{options}{'verbose'}=''; + + %debug = (); + # FIXME: %commands and %separated_command should also be restored to their + # default values. + + foreach my $opt (keys %options) { + if ($options{$opt}) { + die wrap_mod("po4a::tex", + dgettext("po4a", "Unknown option: %s"), $opt) + unless exists $self->{options}{$opt}; + $self->{options}{$opt} = $options{$opt}; + } + } + + if ($options{'debug'}) { + foreach ($options{'debug'}) { + $debug{$_} = 1; + } + } + + if ($options{'exclude_include'}) { + foreach (split(/:/, $options{'exclude_include'})) { + push @exclude_include, $_; + } + } + + if ($options{'no_wrap'}) { + foreach (split(/,/, $options{'no_wrap'})) { + $no_wrap_environments .= " $_"; + register_generic_environment("$_,") + unless (defined $environments{$_}); + } + } + + if ($options{'verbatim'}) { + foreach (split(/,/, $options{'verbatim'})) { + register_verbatim_environment($_); + } + } + + if ($options{'definitions'}) { + $self->parse_definition_file($options{'definitions'}) + } +} + +=head1 STATUS OF THIS MODULE + +This module needs more tests. + +It was tested on a book and with the Python documentation. + +=head1 TODO LIST + +=over 4 + +=item Automatic detection of new commands + +The TeX module could parse the newcommand arguments and try to guess the +number of arguments, their type and whether or not they should be +translated. + +=item Translation of the environment separator + +When \item is used as an environment separator, the item argument is +attached to the following string. + +=item Some commands should be added to the environment stack + +These commands should be specified by couples. +This could allow to specify commands beginning or ending a verbatim +environment. + +=item Others + +Various other points are tagged TODO in the source. + +=back + +=head1 KNOWN BUGS + +Various points are tagged FIXME in the source. + +=head1 SEE ALSO + +L<Locale::Po4a::LaTeX(3pm)|Locale::Po4a::LaTeX>, +L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, +L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Nicolas François <nicolas.francois@centraliens.net> + +=head1 COPYRIGHT AND LICENSE + +Copyright 2004, 2005 by Nicolas FRANÇOIS <nicolas.francois@centraliens.net>. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +1; Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Xml.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Xml.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Xml.pm (revision 1843) @@ -0,0 +1,2082 @@ +#!/usr/bin/perl + +# Po4a::Xml.pm +# +# extract and translate translatable strings from XML documents. +# +# This code extracts plain text from tags and attributes from generic +# XML documents, and it can be used as a base to build modules for +# XML-based documents. +# +# Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> +# Copyright (c) 2008-2009 by Nicolas François <nicolas.francois@centraliens.net> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Xml - convert XML documents and derivates from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Xml is a module to help the translation of XML documents into +other [human] languages. It can also be used as a base to build modules for +XML-based documents. + +=cut + +package Locale::Po4a::Xml; + +use 5.006; +use strict; +use warnings; + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(new initialize @tag_types); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; +use Carp qw(croak); +use File::Basename; +use File::Spec; + +#It will mantain the path from the root tag to the current one +my @path; + +#It will contain a list of external entities and their attached paths +my %entities; + +my @comments; +my %translate_options_cache; + +my $_shiftline_in_comment = 0; +sub shiftline { + my $self = shift; + # call Transtractor's shiftline + my ($line,$ref) = $self->SUPER::shiftline(); + return ($line,$ref) if (not defined $line); + + if ($self->{options}{'includeexternal'}) { + my $tmp; + + for my $k (keys %entities) { + if ($line =~ m/^(.*?)&$k;(.*)$/s) { + my ($before, $after) = ($1, $2); + my $linenum=0; + my @textentries; + + $tmp = $before; + my $tmp_in_comment = 0; + if ($_shiftline_in_comment) { + if ($before =~ m/^.*?-->(.*)$/s) { + $tmp = $1; + $tmp_in_comment = 0; + } else { + $tmp_in_comment = 1; + } + } + if ($tmp_in_comment == 0) { + while ($tmp =~ m/^.*?<!--.*?-->(.*)$/s) { + $tmp = $1; + } + if ($tmp =~ m/<!--/s) { + $tmp_in_comment = 1; + } + } + next if ($tmp_in_comment); + + open (my $in, $entities{$k}) + or croak wrap_mod("po4a::xml", + dgettext("po4a", "Can't read from %s: %s"), + $entities{$k}, $!); + while (defined (my $textline = <$in>)) { + $linenum++; + my $textref=$entities{$k}.":$linenum"; + push @textentries, ($textline,$textref); + } + close $in + or croak wrap_mod("po4a::xml", + dgettext("po4a", "Can't close %s after reading: %s"), + $entities{$k}, $!); + + push @textentries, ($after, $ref); + $line = $before.(shift @textentries); + $ref .= " ".(shift @textentries); + $self->unshiftline(@textentries); + } + } + + $tmp = $line; + if ($_shiftline_in_comment) { + if ($line =~ m/^.*?-->(.*)$/s) { + $tmp = $1; + $_shiftline_in_comment = 0; + } else { + $_shiftline_in_comment = 1; + } + } + if ($_shiftline_in_comment == 0) { + while ($tmp =~ m/^.*?<!--.*?-->(.*)$/s) { + $tmp = $1; + } + if ($tmp =~ m/<!--/s) { + $_shiftline_in_comment = 1; + } + } + } + + return ($line,$ref); +} + +sub read { + my ($self,$filename)=@_; + push @{$self->{DOCPOD}{infile}}, $filename; + $self->Locale::Po4a::TransTractor::read($filename); +} + +sub parse { + my $self=shift; + map {$self->parse_file($_)} @{$self->{DOCPOD}{infile}}; +} + +# @save_holders is a stack of references to ('paragraph', 'translation', +# 'sub_translations', 'open', 'close', 'folded_attributes') hashes, where: +# paragraph is a reference to an array (see paragraph in the +# treat_content() subroutine) of strings followed by +# references. It contains the @paragraph array as it was +# before the processing was interrupted by a tag instroducing +# a placeholder. +# translation is the translation of this level up to now +# sub_translations is a reference to an array of strings containing the +# translations which must replace the placeholders. +# open is the tag which opened the placeholder. +# close is the tag which closed the placeholder. +# folded_attributes is an hash of tags with their attributes (<tag attrs=...> +# strings), referenced by the folded tag id, which should +# replace the <tag po4a-id=id> strings in the current +# translation. +# +# If @save_holders only has 1 holder, then we are not processing the +# content of an holder, we are translating the document. +my @save_holders; + + +# If we are at the bottom of the stack and there is no <placeholder ...> in +# the current translation, we can push the translation in the translated +# document. +# Otherwise, we keep the translation in the current holder. +sub pushline { + my ($self, $line) = (shift, shift); + + my $holder = $save_holders[$#save_holders]; + my $translation = $holder->{'translation'}; + $translation .= $line; + + while ( %{$holder->{folded_attributes}} + and $translation =~ m/^(.*)<([^>]+?)\s+po4a-id=([0-9]+)>(.*)$/s) { + my $begin = $1; + my $tag = $2; + my $id = $3; + my $end = $4; + if (defined $holder->{folded_attributes}->{$id}) { + # TODO: check if the tag is the same + $translation = $begin.$holder->{folded_attributes}->{$id}.$end; + delete $holder->{folded_attributes}->{$id}; + } else { + # TODO: It will be hard to identify the location. + # => find a way to retrieve the reference. + die wrap_mod("po4a::xml", dgettext("po4a", "'po4a-id=%d' in the translation does not exist in the original string (or 'po4a-id=%d' used twice in the translation)."), $id, $id); + } + } +# TODO: check that %folded_attributes is empty at some time +# => in translate_paragraph? + + if ( ($#save_holders > 0) + or ($translation =~ m/<placeholder\s+type="[^"]+"\s+id="(\d+)"\s*\/>/s)) { + $holder->{'translation'} = $translation; + } else { + $self->SUPER::pushline($translation); + $holder->{'translation'} = ''; + } +} + +=head1 TRANSLATING WITH PO4A::XML + +This module can be used directly to handle generic XML documents. This will +extract all tag's content, and no attributes, since it's where the text is +written in most XML based documents. + +There are some options (described in the next section) that can customize +this behavior. If this doesn't fit to your document format you're encouraged +to write your own module derived from this, to describe your format's details. +See the section B<WRITING DERIVATE MODULES> below, for the process description. + +=cut + +# +# Parse file and translate it +# +sub parse_file { + my ($self,$filename) = @_; + my $eof = 0; + + while (!$eof) { + # We get all the text until the next breaking tag (not + # inline) and translate it + $eof = $self->treat_content; + if (!$eof) { + # And then we treat the following breaking tag + $eof = $self->treat_tag; + } + } +} + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +The global debug option causes this module to show the excluded strings, in +order to see if it skips something important. + +These are this module's particular options: + +=over 4 + +=item B<nostrip> + +Prevents it to strip the spaces around the extracted strings. + +=item B<wrap> + +Canonizes the string to translate, considering that whitespaces are not +important, and wraps the translated document. This option can be overridden +by custom tag options. See the "tags" option below. + +=item B<caseinsensitive> + +It makes the tags and attributes searching to work in a case insensitive +way. If it's defined, it will treat E<lt>BooKE<gt>laNG and E<lt>BOOKE<gt>Lang as E<lt>bookE<gt>lang. + +=item B<includeexternal> + +When defined, external entities are included in the generated (translated) +document, and for the extraction of strings. If it's not defined, you +will have to translate external entities separately as independent +documents. + +=item B<ontagerror> + +This option defines the behavior of the module when it encounter a invalid +XML syntax (a closing tag which does not match the last opening tag, or a +tag's attribute without value). +It can take the following values: + +=over + +=item I<fail> + +This is the default value. +The module will exit with an error. + +=item I<warn> + +The module will continue, and will issue a warning. + +=item I<silent> + +The module will continue without any warnings. + +=back + +Be careful when using this option. +It is generally recommended to fix the input file. + +=item B<tagsonly> + +Extracts only the specified tags in the "tags" option. Otherwise, it +will extract all the tags except the ones specified. + +Note: This option is deprecated. + +=item B<doctype> + +String that will try to match with the first line of the document's doctype +(if defined). If it doesn't, a warning will indicate that the document +might be of a bad type. + +=item B<addlang> + +String indicating the path (e.g. E<lt>bbbE<gt>E<lt>aaaE<gt>) of a tag +where a lang="..." attribute shall be added. The language will be defined +as the basename of the PO file without any .po extension. + +=item B<tags> + +Space-separated list of tags you want to translate or skip. By default, +the specified tags will be excluded, but if you use the "tagsonly" option, +the specified tags will be the only ones included. The tags must be in the +form E<lt>aaaE<gt>, but you can join some (E<lt>bbbE<gt>E<lt>aaaE<gt>) to say that the content of +the tag E<lt>aaaE<gt> will only be translated when it's into a E<lt>bbbE<gt> tag. + +You can also specify some tag options putting some characters in front of +the tag hierarchy. For example, you can put 'w' (wrap) or 'W' (don't wrap) +to override the default behavior specified by the global "wrap" option. + +Example: WE<lt>chapterE<gt>E<lt>titleE<gt> + +Note: This option is deprecated. +You should use the B<translated> and B<untranslated> options instead. + +=item B<attributes> + +Space-separated list of tag's attributes you want to translate. You can +specify the attributes by their name (for example, "lang"), but you can +prefix it with a tag hierarchy, to specify that this attribute will only be +translated when it's into the specified tag. For example: E<lt>bbbE<gt>E<lt>aaaE<gt>lang +specifies that the lang attribute will only be translated if it's into an +E<lt>aaaE<gt> tag, and it's into a E<lt>bbbE<gt> tag. + +=item B<foldattributes> + +Do not translate attributes in inline tags. +Instead, replace all attributes of a tag by po4a-id=<id>. + +This is useful when attributes shall not be translated, as this simplifies the +strings for translators, and avoids typos. + +=item B<customtag> + +Space-separated list of tags which should not be treated as tags. +These tags are treated as inline, and do not need to be closed. + +=item B<break> + +Space-separated list of tags which should break the sequence. +By default, all tags break the sequence. + +The tags must be in the form <aaa>, but you can join some +(<bbb><aaa>), if a tag (<aaa>) should only be considered +when it's into another tag (<bbb>). + +=item B<inline> + +Space-separated list of tags which should be treated as inline. +By default, all tags break the sequence. + +The tags must be in the form <aaa>, but you can join some +(<bbb><aaa>), if a tag (<aaa>) should only be considered +when it's into another tag (<bbb>). + +=item B<placeholder> + +Space-separated list of tags which should be treated as placeholders. +Placeholders do not break the sequence, but the content of placeholders is +translated separately. + +The location of the placeholder in its block will be marked with a string +similar to: + + <placeholder type=\"footnote\" id=\"0\"/> + +The tags must be in the form <aaa>, but you can join some +(<bbb><aaa>), if a tag (<aaa>) should only be considered +when it's into another tag (<bbb>). + +=item B<nodefault> + +Space separated list of tags that the module should not try to set by +default in any category. + +=item B<cpp> + +Support C preprocessor directives. +When this option is set, po4a will consider preprocessor directives as +paragraph separators. +This is important if the XML file must be preprocessed because otherwise +the directives may be inserted in the middle of lines if po4a consider it +belong to the current paragraph, and they won't be recognized by the +preprocessor. +Note: the preprocessor directives must only appear between tags +(they must not break a tag). + +=item B<translated> + +Space-separated list of tags you want to translate. + +The tags must be in the form <aaa>, but you can join some +(<bbb><aaa>), if a tag (<aaa>) should only be considered +when it's into another tag (<bbb>). + +You can also specify some tag options putting some characters in front of +the tag hierarchy. For example, you can put 'w' (wrap) or 'W' (don't wrap) +to overide the default behavior specified by the global "wrap" option. + +Example: WE<lt>chapterE<gt>E<lt>titleE<gt> + +=item B<untranslated> + +Space-separated list of tags you do not want to translate. + +The tags must be in the form <aaa>, but you can join some +(<bbb><aaa>), if a tag (<aaa>) should only be considered +when it's into another tag (<bbb>). + +=item B<defaulttranslateoption> + +The default categories for tags that are not in any of the translated, +untranslated, break, inline, or placeholder. + +This is a set of letters: + +=over + +=item I<w> + +Tags should be translated and content can be re-wrapped. + +=item I<W> + +Tags should be translated and content should not be re-wrapped. + +=item I<i> + +Tags should be translated inline. + +=item I<p> + +Tags should be translated as placeholders. + +=back + +=back + +=cut +# TODO: defaulttranslateoption +# w => indicate that it is only valid for translatable tags and do not +# care about inline/break/placeholder? +# ... + +sub initialize { + my $self = shift; + my %options = @_; + + # Reset the path + @path = (); + + # Initialize the stack of holders + my @paragraph = (); + my @sub_translations = (); + my %folded_attributes; + my %holder = ('paragraph' => \@paragraph, + 'translation' => "", + 'sub_translations' => \@sub_translations, + 'folded_attributes' => \%folded_attributes); + @save_holders = (\%holder); + + $self->{options}{'addlang'}=0; + $self->{options}{'nostrip'}=0; + $self->{options}{'wrap'}=0; + $self->{options}{'caseinsensitive'}=0; + $self->{options}{'tagsonly'}=0; + $self->{options}{'tags'}=''; + $self->{options}{'break'}=''; + $self->{options}{'translated'}=''; + $self->{options}{'untranslated'}=''; + $self->{options}{'defaulttranslateoption'}=''; + $self->{options}{'attributes'}=''; + $self->{options}{'foldattributes'}=0; + $self->{options}{'inline'}=''; + $self->{options}{'placeholder'}=''; + $self->{options}{'customtag'}=''; + $self->{options}{'doctype'}=''; + $self->{options}{'nodefault'}=''; + $self->{options}{'includeexternal'}=0; + $self->{options}{'ontagerror'}="fail"; + $self->{options}{'cpp'}=0; + + $self->{options}{'verbose'}=''; + $self->{options}{'debug'}=''; + + foreach my $opt (keys %options) { + if ($options{$opt}) { + die wrap_mod("po4a::xml", + dgettext("po4a", "Unknown option: %s"), $opt) + unless exists $self->{options}{$opt}; + $self->{options}{$opt} = $options{$opt}; + } + } + # Default options set by modules. Forbidden for users. + $self->{options}{'_default_translated'}=''; + $self->{options}{'_default_untranslated'}=''; + $self->{options}{'_default_break'}=''; + $self->{options}{'_default_inline'}=''; + $self->{options}{'_default_placeholder'}=''; + $self->{options}{'_default_attributes'}=''; + $self->{options}{'_default_customtag'}=''; + + #It will maintain the list of the translatable tags + $self->{tags}=(); + $self->{translated}=(); + $self->{untranslated}=(); + #It will maintain the list of the translatable attributes + $self->{attributes}=(); + #It will maintain the list of the breaking tags + $self->{break}=(); + #It will maintain the list of the inline tags + $self->{inline}=(); + #It will maintain the list of the placeholder tags + $self->{placeholder}=(); + #It will maintain the list of the customtag tags + $self->{customtag}=(); + #list of the tags that must not be set in the tags or inline category + #by this module or sub-module (unless specified in an option) + $self->{nodefault}=(); + + $self->treat_options; + + # Clear cache + %translate_options_cache=(); +} + +=head1 WRITING DERIVATE MODULES + +=head2 DEFINE WHAT TAGS AND ATTRIBUTES TO TRANSLATE + +The simplest customization is to define which tags and attributes you want +the parser to translate. This should be done in the initialize function. +First you should call the main initialize, to get the command-line options, +and then, append your custom definitions to the options hash. If you want +to treat some new options from command line, you should define them before +calling the main initialize: + + $self->{options}{'new_option'}=''; + $self->SUPER::initialize(%options); + $self->{options}{'_default_translated'}.=' <p> <head><title>'; + $self->{options}{'attributes'}.=' <p>lang id'; + $self->{options}{'_default_inline'}.=' <br>'; + $self->treat_options; + +You should use the B<_default_inline>, B<_default_break>, +B<_default_placeholder>, B<_default_translated>, B<_default_untranslated>, +and B<_default_attributes> options in derivated modules. This allow users +to override the default behavior defined in your module with command line +options. + +=head2 OVERRIDING THE found_string FUNCTION + +Another simple step is to override the function "found_string", which +receives the extracted strings from the parser, in order to translate them. +There you can control which strings you want to translate, and perform +transformations to them before or after the translation itself. + +It receives the extracted text, the reference on where it was, and a hash +that contains extra information to control what strings to translate, how +to translate them and to generate the comment. + +The content of these options depends on the kind of string it is (specified in an +entry of this hash): + +=over + +=item type="tag" + +The found string is the content of a translatable tag. The entry "tag_options" +contains the option characters in front of the tag hierarchy in the module +"tags" option. + +=item type="attribute" + +Means that the found string is the value of a translatable attribute. The +entry "attribute" has the name of the attribute. + +=back + +It must return the text that will replace the original in the translated +document. Here's a basic example of this function: + + sub found_string { + my ($self,$text,$ref,$options)=@_; + $text = $self->translate($text,$ref,"type ".$options->{'type'}, + 'wrap'=>$self->{options}{'wrap'}); + return $text; + } + +There's another simple example in the new Dia module, which only filters +some strings. + +=cut + +sub found_string { + my ($self,$text,$ref,$options)=@_; + + if ($text =~ m/^\s*$/s) { + return $text; + } + + my $comment; + my $wrap = $self->{options}{'wrap'}; + + if ($options->{'type'} eq "tag") { + $comment = "Content of: ".$self->get_path; + + if($options->{'tag_options'} =~ /w/) { + $wrap = 1; + } + if($options->{'tag_options'} =~ /W/) { + $wrap = 0; + } + } elsif ($options->{'type'} eq "attribute") { + $comment = "Attribute '".$options->{'attribute'}."' of: ".$self->get_path; + } elsif ($options->{'type'} eq "CDATA") { + $comment = "CDATA"; + $wrap = 0; + } else { + die wrap_ref_mod($ref, "po4a::xml", dgettext("po4a", "Internal error: unknown type identifier '%s'."), $options->{'type'}); + } + $text = $self->translate($text,$ref,$comment,'wrap'=>$wrap, comment => $options->{'comments'}); + return $text; +} + +=head2 MODIFYING TAG TYPES (TODO) + +This is a more complex one, but it enables a (almost) total customization. +It's based in a list of hashes, each one defining a tag type's behavior. The +list should be sorted so that the most general tags are after the most +concrete ones (sorted first by the beginning and then by the end keys). To +define a tag type you'll have to make a hash with the following keys: + +=over 4 + +=item B<beginning> + +Specifies the beginning of the tag, after the "E<lt>". + +=item B<end> + +Specifies the end of the tag, before the "E<gt>". + +=item B<breaking> + +It says if this is a breaking tag class. A non-breaking (inline) tag is one +that can be taken as part of the content of another tag. It can take the +values false (0), true (1) or undefined. If you leave this undefined, you'll +have to define the f_breaking function that will say whether a concrete tag of +this class is a breaking tag or not. + +=item B<f_breaking> + +It's a function that will tell if the next tag is a breaking one or not. It +should be defined if the B<breaking> option is not. + +=item B<f_extract> + +If you leave this key undefined, the generic extraction function will have to +extract the tag itself. It's useful for tags that can have other tags or +special structures in them, so that the main parser doesn't get mad. This +function receives a boolean that says if the tag should be removed from the +input stream or not. + +=item B<f_translate> + +This function receives the tag (in the get_string_until() format) and returns +the translated tag (translated attributes or all needed transformations) as a +single string. + +=back + +=cut + +##### Generic XML tag types #####' + +our @tag_types = ( + { beginning => "!--#", + end => "--", + breaking => 0, + f_extract => \&tag_extract_comment, + f_translate => \&tag_trans_comment}, + { beginning => "!--", + end => "--", + breaking => 0, + f_extract => \&tag_extract_comment, + f_translate => \&tag_trans_comment}, + { beginning => "?xml", + end => "?", + breaking => 1, + f_translate => \&tag_trans_xmlhead}, + { beginning => "?", + end => "?", + breaking => 1, + f_translate => \&tag_trans_procins}, + { beginning => "!DOCTYPE", + end => "", + breaking => 1, + f_extract => \&tag_extract_doctype, + f_translate => \&tag_trans_doctype}, + { beginning => "![CDATA[", + end => "]]", + breaking => 1, + f_extract => \&CDATA_extract, + f_translate => \&CDATA_trans}, + { beginning => "/", + end => "", + f_breaking => \&tag_break_close, + f_translate => \&tag_trans_close}, + { beginning => "", + end => "/", + f_breaking => \&tag_break_alone, + f_translate => \&tag_trans_alone}, + { beginning => "", + end => "", + f_breaking => \&tag_break_open, + f_translate => \&tag_trans_open} +); + +sub tag_extract_comment { + my ($self,$remove)=(shift,shift); + my ($eof,@tag)=$self->get_string_until('-->',{include=>1,remove=>$remove}); + return ($eof,@tag); +} + +sub tag_trans_comment { + my ($self,@tag)=@_; + return $self->join_lines(@tag); +} + +sub tag_trans_xmlhead { + my ($self,@tag)=@_; + + # We don't have to translate anything from here: throw away references + my $tag = $self->join_lines(@tag); + $tag =~ /encoding=(("|')|)(.*?)(\s|\2)/s; + my $in_charset=$3; + $self->detected_charset($in_charset); + my $out_charset=$self->get_out_charset; + + if (defined $in_charset) { + $tag =~ s/$in_charset/$out_charset/; + } else { + if ($tag =~ m/standalone/) { + $tag =~ s/(standalone)/encoding="$out_charset" $1/; + } else { + $tag.= " encoding=\"$out_charset\""; + } + } + + return $tag; +} + +sub tag_trans_procins { + my ($self,@tag)=@_; + return $self->join_lines(@tag); +} + +sub tag_extract_doctype { + my ($self,$remove)=(shift,shift); + + # Check if there is an internal subset (between []). + my ($eof,@tag)=$self->get_string_until('>',{include=>1,unquoted=>1}); + my $parity = 0; + my $paragraph = ""; + map { $parity = 1 - $parity; $paragraph.= $parity?$_:""; } @tag; + my $found = 0; + if ($paragraph =~ m/<.*\[.*</s) { + $found = 1 + } + + if (not $found) { + ($eof,@tag)=$self->get_string_until('>',{include=>1,remove=>$remove,unquoted=>1}); + } else { + ($eof,@tag)=$self->get_string_until(']\s*>',{include=>1,remove=>$remove,unquoted=>1,regex=>1}); + } + return ($eof,@tag); +} + +sub tag_trans_doctype { +# This check is not really reliable. There are system and public +# identifiers. Only the public one could be checked reliably. + my ($self,@tag)=@_; + if (defined $self->{options}{'doctype'} ) { + my $doctype = $self->{options}{'doctype'}; + if ( $tag[0] !~ /\Q$doctype\E/i ) { + warn wrap_ref_mod($tag[1], "po4a::xml", dgettext("po4a", "Bad document type. '%s' expected. You can fix this warning with a -o doctype option, or ignore this check with -o doctype=\"\"."), $doctype); + } + } + my $i = 0; + my $basedir = $tag[1]; + $basedir =~ s/:[0-9]+$//; + $basedir = dirname($basedir); + + while ( $i < $#tag ) { + my $t = $tag[$i]; + my $ref = $tag[$i+1]; + if ( $t =~ /^(\s*<!ENTITY\s+)(.*)$/is ) { + my $part1 = $1; + my $part2 = $2; + my $includenow = 0; + my $file = 0; + my $name = ""; + if ($part2 =~ /^(%\s+)(.*)$/s ) { + $part1.= $1; + $part2 = $2; + $includenow = 1; + } + $part2 =~ /^(\S+)(\s+)(.*)$/s; + $name = $1; + $part1.= $1.$2; + $part2 = $3; + if ( $part2 =~ /^(SYSTEM\s+)(.*)$/is ) { + $part1.= $1; + $part2 = $2; + $file = 1; + if ($self->{options}{'includeexternal'}) { + $entities{$name} = $part2; + $entities{$name} =~ s/^"?(.*?)".*$/$1/s; + $entities{$name} = File::Spec->catfile($basedir, $entities{$name}); + } + } + if ((not $file) and (not $includenow)) { + if ($part2 =~ m/^\s*(["'])(.*)\1(\s*>.*)$/s) { + my $comment = "Content of the $name entity"; + my $quote = $1; + my $text = $2; + $part2 = $3; + $text = $self->translate($text, + $ref, + $comment, + 'wrap'=>1); + $t = $part1."$quote$text$quote$part2"; + } + } +# print $part1."\n"; +# print $name."\n"; +# print $part2."\n"; + } + $tag[$i] = $t; + $i += 2; + } + return $self->join_lines(@tag); +} + +sub tag_break_close { + my ($self,@tag)=@_; + my $struct = $self->get_path; + my $options = $self->get_translate_options($struct); + if ($options =~ m/[ip]/) { + return 0; + } else { + return 1; + } +} + +sub tag_trans_close { + my ($self,@tag)=@_; + my $name = $self->get_tag_name(@tag); + + my $test = pop @path; + if (!defined($test) || $test ne $name ) { + my $ontagerror = $self->{options}{'ontagerror'}; + if ($ontagerror eq "warn") { + warn wrap_ref_mod($tag[1], "po4a::xml", dgettext("po4a", "Unexpected closing tag </%s> found. The main document may be wrong. Continuing..."), $name); + } elsif ($ontagerror ne "silent") { + die wrap_ref_mod($tag[1], "po4a::xml", dgettext("po4a", "Unexpected closing tag </%s> found. The main document may be wrong."), $name); + } + } + return $self->join_lines(@tag); +} + +sub CDATA_extract { + my ($self,$remove)=(shift,shift); + my ($eof, @tag) = $self->get_string_until(']]>',{include=>1,unquoted=>0,remove=>$remove}); + + return ($eof, @tag); +} + +sub CDATA_trans { + my ($self,@tag)=@_; + return $self->found_string($self->join_lines(@tag), + $tag[1], + {'type' => "CDATA"}); +} + +sub tag_break_alone { + my ($self,@tag)=@_; + my $struct = $self->get_path($self->get_tag_name(@tag)); + if ($self->get_translate_options($struct) =~ m/i/) { + return 0; + } else { + return 1; + } +} + +sub tag_trans_alone { + my ($self,@tag)=@_; + my $name = $self->get_tag_name(@tag); + push @path, $name; + + $name = $self->treat_attributes(@tag); + + pop @path; + return $name; +} + +sub tag_break_open { + my ($self,@tag)=@_; + my $struct = $self->get_path($self->get_tag_name(@tag)); + my $options = $self->get_translate_options($struct); + if ($options =~ m/[ip]/) { + return 0; + } else { + return 1; + } +} + +sub tag_trans_open { + my ($self,@tag)=@_; + my $name = $self->get_tag_name(@tag); + push @path, $name; + + $name = $self->treat_attributes(@tag); + + if (defined $self->{options}{'addlang'}) { + my $struct = $self->get_path(); + if ($struct eq $self->{options}{'addlang'}) { + $name .= ' lang="'.$self->{TT}{po_in}->{lang}.'"'; + } + } + + return $name; +} + +##### END of Generic XML tag types ##### + +=head1 INTERNAL FUNCTIONS used to write derivated parsers + +=head2 WORKING WITH TAGS + +=over 4 + +=item get_path() + +This function returns the path to the current tag from the document's root, +in the form E<lt>htmlE<gt>E<lt>bodyE<gt>E<lt>pE<gt>. + +An additional array of tags (without brackets) can be passed as argument. +These path elements are added to the end of the current path. + +=cut + +sub get_path { + my $self = shift; + my @add = @_; + if ( @path > 0 or @add > 0 ) { + return "<".join("><",@path,@add).">"; + } else { + return "outside any tag (error?)"; + } +} + +=item tag_type() + +This function returns the index from the tag_types list that fits to the next +tag in the input stream, or -1 if it's at the end of the input file. + +=cut + +sub tag_type { + my $self = shift; + my ($line,$ref) = $self->shiftline(); + my ($match1,$match2); + my $found = 0; + my $i = 0; + + if (!defined($line)) { return -1; } + + $self->unshiftline($line,$ref); + my ($eof,@lines) = $self->get_string_until(">",{include=>1,unquoted=>1}); + my $line2 = $self->join_lines(@lines); + while (!$found && $i < @tag_types) { + ($match1,$match2) = ($tag_types[$i]->{beginning},$tag_types[$i]->{end}); + if ($line =~ /^<\Q$match1\E/) { + if (!defined($tag_types[$i]->{f_extract})) { +#print substr($line2,length($line2)-1-length($match2),1+length($match2))."\n"; + if (defined($line2) and $line2 =~ /\Q$match2\E>$/) { + $found = 1; +#print "YES: <".$match1." ".$match2.">\n"; + } else { +#print "NO: <".$match1." ".$match2.">\n"; + $i++; + } + } else { + $found = 1; + } + } else { + $i++; + } + } + if (!$found) { + #It should never enter here, unless you undefine the most + #general tags (as <...>) + die "po4a::xml: Unknown tag type: ".$line."\n"; + } else { + return $i; + } +} + +=item extract_tag($$) + +This function returns the next tag from the input stream without the beginning +and end, in an array form, to maintain the references from the input file. It +has two parameters: the type of the tag (as returned by tag_type) and a +boolean, that indicates if it should be removed from the input stream. + +=cut + +sub extract_tag { + my ($self,$type,$remove) = (shift,shift,shift); + my ($match1,$match2) = ($tag_types[$type]->{beginning},$tag_types[$type]->{end}); + my ($eof,@tag); + if (defined($tag_types[$type]->{f_extract})) { + ($eof,@tag) = &{$tag_types[$type]->{f_extract}}($self,$remove); + } else { + ($eof,@tag) = $self->get_string_until($match2.">",{include=>1,remove=>$remove,unquoted=>1}); + } + $tag[0] =~ /^<\Q$match1\E(.*)$/s; + $tag[0] = $1; + $tag[$#tag-1] =~ /^(.*)\Q$match2\E>$/s; + $tag[$#tag-1] = $1; + return ($eof,@tag); +} + +=item get_tag_name(@) + +This function returns the name of the tag passed as an argument, in the array +form returned by extract_tag. + +=cut + +sub get_tag_name { + my ($self,@tag)=@_; + $tag[0] =~ /^(\S*)/; + return $1; +} + +=item breaking_tag() + +This function returns a boolean that says if the next tag in the input stream +is a breaking tag or not (inline tag). It leaves the input stream intact. + +=cut + +sub breaking_tag { + my $self = shift; + my $break; + + my $type = $self->tag_type; + if ($type == -1) { return 0; } + +#print "TAG TYPE = ".$type."\n"; + $break = $tag_types[$type]->{breaking}; + if (!defined($break)) { + # This tag's breaking depends on its content + my ($eof,@lines) = $self->extract_tag($type,0); + $break = &{$tag_types[$type]->{f_breaking}}($self,@lines); + } +#print "break = ".$break."\n"; + return $break; +} + +=item treat_tag() + +This function translates the next tag from the input stream. Using each +tag type's custom translation functions. + +=cut + +sub treat_tag { + my $self = shift; + my $type = $self->tag_type; + + my ($match1,$match2) = ($tag_types[$type]->{beginning},$tag_types[$type]->{end}); + my ($eof,@lines) = $self->extract_tag($type,1); + + $lines[0] =~ /^(\s*)(.*)$/s; + my $space1 = $1; + $lines[0] = $2; + $lines[$#lines-1] =~ /^(.*?)(\s*)$/s; + my $space2 = $2; + $lines[$#lines-1] = $1; + + # Calling this tag type's specific handling (translation of + # attributes...) + my $line = &{$tag_types[$type]->{f_translate}}($self,@lines); + $self->pushline("<".$match1.$space1.$line.$space2.$match2.">"); + return $eof; +} + +=item tag_in_list($@) + +This function returns a string value that says if the first argument (a tag +hierarchy) matches any of the tags from the second argument (a list of tags +or tag hierarchies). If it doesn't match, it returns 0. Else, it returns the +matched tag's options (the characters in front of the tag) or 1 (if that tag +doesn't have options). + +=back + +=cut +sub tag_in_list ($$$) { + my ($self,$path,$list) = @_; + if ($self->{options}{'caseinsensitive'}) { + $path = lc $path; + } + + while (1) { + if (defined $list->{$path}) { + if (length $list->{$path}) { + return $list->{$path}; + } else { + return 1; + } + } + last unless ($path =~ m/</); + $path =~ s/^<.*?>//; + } + + return 0; +} + +=head2 WORKING WITH ATTRIBUTES + +=over 4 + +=item treat_attributes(@) + +This function handles the translation of the tags' attributes. It receives the tag +without the beginning / end marks, and then it finds the attributes, and it +translates the translatable ones (specified by the module option "attributes"). +This returns a plain string with the translated tag. + +=back + +=cut + +sub treat_attributes { + my ($self,@tag)=@_; + + $tag[0] =~ /^(\S*)(.*)/s; + my $text = $1; + $tag[0] = $2; + + while (@tag) { + my $complete = 1; + + $text .= $self->skip_spaces(\@tag); + if (@tag) { + # Get the attribute's name + $complete = 0; + + $tag[0] =~ /^([^\s=]+)(.*)/s; + my $name = $1; + my $ref = $tag[1]; + $tag[0] = $2; + $text .= $name; + $text .= $self->skip_spaces(\@tag); + if (@tag) { + # Get the '=' + if ($tag[0] =~ /^=(.*)/s) { + $tag[0] = $1; + $text .= "="; + $text .= $self->skip_spaces(\@tag); + if (@tag) { + # Get the value + my $value=""; + $ref=$tag[1]; + my $quot=substr($tag[0],0,1); + if ($quot ne "\"" and $quot ne "'") { + # Unquoted value + $quot=""; + $tag[0] =~ /^(\S+)(.*)/s; + $value = $1; + $tag[0] = $2; + } else { + # Quoted value + $text .= $quot; + $tag[0] =~ /^\Q$quot\E(.*)/s; + $tag[0] = $1; + while ($tag[0] !~ /\Q$quot\E/) { + $value .= $tag[0]; + shift @tag; + shift @tag; + } + $tag[0] =~ /^(.*?)\Q$quot\E(.*)/s; + $value .= $1; + $tag[0] = $2; + } + $complete = 1; + if ($self->tag_in_list($self->get_path.$name,$self->{attributes})) { + $text .= $self->found_string($value, $ref, { type=>"attribute", attribute=>$name }); + } else { + print wrap_ref_mod($ref, "po4a::xml", dgettext("po4a", "Content of attribute %s excluded: %s"), $self->get_path.$name, $value) + if $self->debug(); + $text .= $self->recode_skipped_text($value); + } + $text .= $quot; + } + } + } + + unless ($complete) { + my $ontagerror = $self->{options}{'ontagerror'}; + if ($ontagerror eq "warn") { + warn wrap_ref_mod($ref, "po4a::xml", dgettext ("po4a", "Bad attribute syntax. Continuing...")); + } elsif ($ontagerror ne "silent") { + die wrap_ref_mod($ref, "po4a::xml", dgettext ("po4a", "Bad attribute syntax")); + } + } + } + } + return $text; +} + +# Returns an empty string if the content in the $path should not be +# translated. +# +# Otherwise, returns the set of options for translation: +# w: the content shall be re-wrapped +# W: the content shall not be re-wrapped +# i: the tag shall be inlined +# p: a placeholder shall replace the tag (and its content) +# n: a custom tag +# +# A translatable inline tag in an untranslated tag is treated as a translatable breaking tag. +sub get_translate_options { + my $self = shift; + my $path = shift; + + if (defined $translate_options_cache{$path}) { + return $translate_options_cache{$path}; + } + + my $options = ""; + my $translate = 0; + my $usedefault = 1; + + my $inlist = 0; + my $tag = $self->get_tag_from_list($path, $self->{tags}); + if (defined $tag) { + $inlist = 1; + } + if ($self->{options}{'tagsonly'} eq $inlist) { + $usedefault = 0; + if (defined $tag) { + $options = $tag; + $options =~ s/<.*$//; + } else { + if ($self->{options}{'wrap'}) { + $options = "w"; + } else { + $options = "W"; + } + } + $translate = 1; + } + +# TODO: a less precise set of tags should not override a more precise one + # The tags and tagsonly options are deprecated. + # The translated and untranslated options have an higher priority. + $tag = $self->get_tag_from_list($path, $self->{translated}); + if (defined $tag) { + $usedefault = 0; + $options = $tag; + $options =~ s/<.*$//; + $translate = 1; + } + + if ($translate and $options !~ m/w/i) { + $options .= ($self->{options}{'wrap'})?"w":"W"; + } + + if (not defined $tag) { + $tag = $self->get_tag_from_list($path, $self->{untranslated}); + if (defined $tag) { + $usedefault = 0; + $options = ""; + $translate = 0; + } + } + + $tag = $self->get_tag_from_list($path, $self->{inline}); + if (defined $tag) { + $usedefault = 0; + $options .= "i"; + } else { + $tag = $self->get_tag_from_list($path, $self->{placeholder}); + if (defined $tag) { + $usedefault = 0; + $options .= "p"; + } + } + + $tag = $self->get_tag_from_list($path, $self->{customtag}); + if (defined $tag) { + $usedefault = 0; + $options = "in"; # This erase any other setting + } + + if ($usedefault) { + $options = $self->{options}{'defaulttranslateoption'}; + } + + # A translatable inline tag in an untranslated tag is treated as a + # translatable breaking tag. + if ($options =~ m/i/) { + my $ppath = $path; + $ppath =~ s/<[^>]*>$//; + my $poptions = $self->get_translate_options ($ppath); + if ($poptions eq "") { + $options =~ s/i//; + } + } + + if ($options =~ m/i/ and $self->{options}{'foldattributes'}) { + $options .= "f"; + } + + $translate_options_cache{$path} = $options; + return $options; +} + + +# Return the tag (or biggest set of tags) of a list which matches with the +# given path. +# +# The tag (or set of tags) is returned with its options. +# +# If no tags could match the path, undef is returned. +sub get_tag_from_list ($$$) { + my ($self,$path,$list) = @_; + if ($self->{options}{'caseinsensitive'}) { + $path = lc $path; + } + + while (1) { + if (defined $list->{$path}) { + return $list->{$path}.$path; + } + last unless ($path =~ m/</); + $path =~ s/^<.*?>//; + } + + return undef; +} + + + +sub treat_content { + my $self = shift; + my $blank=""; + # Indicates if the paragraph will have to be translated + my $translate = ""; + + my ($eof,@paragraph)=$self->get_string_until('<',{remove=>1}); + + while (!$eof and !$self->breaking_tag) { + NEXT_TAG: + my @text; + my $type = $self->tag_type; + my $f_extract = $tag_types[$type]->{'f_extract'}; + if ( defined($f_extract) + and $f_extract eq \&tag_extract_comment) { + # Remove the content of the comments + ($eof, @text) = $self->extract_tag($type,1); + $text[$#text-1] .= "\0"; + if ($tag_types[$type]->{'beginning'} eq "!--#") { + $text[0] = "#".$text[0]; + } + push @comments, @text; + } else { + my ($tmpeof, @tag) = $self->extract_tag($type,0); + # Append the found inline tag + ($eof,@text)=$self->get_string_until('>', + {include=>1, + remove=>1, + unquoted=>1}); + # Append or remove the opening/closing tag from + # the tag path + if ($tag_types[$type]->{'end'} eq "") { + if ($tag_types[$type]->{'beginning'} eq "") { + # Opening inline tag + my $cur_tag_name = $self->get_tag_name(@tag); + my $t_opts = $self->get_translate_options($self->get_path($cur_tag_name)); + if ($t_opts =~ m/p/) { + # We enter a new holder. + # Append a <placeholder ...> tag to the current + # paragraph, and save the @paragraph in the + # current holder. + my $last_holder = $save_holders[$#save_holders]; + my $placeholder_str = "<placeholder type=\"".$cur_tag_name."\" id=\"".($#{$last_holder->{'sub_translations'}}+1)."\"/>"; + push @paragraph, ($placeholder_str, $text[1]); + my @saved_paragraph = @paragraph; + + $last_holder->{'paragraph'} = \@saved_paragraph; + + # Then we must push a new holder + my @new_paragraph = (); + my @sub_translations = (); + my %folded_attributes; + my %new_holder = ('paragraph' => \@new_paragraph, + 'open' => $self->join_lines(@text), + 'translation' => "", + 'close' => undef, + 'sub_translations' => \@sub_translations, + 'folded_attributes' => \%folded_attributes); + push @save_holders, \%new_holder; + @text = (); + + # The current @paragraph + # (for the current holder) + # is empty. + @paragraph = (); + } elsif ($t_opts =~ m/f/) { + my $tag_full = $self->join_lines(@text); + my $tag_ref = $text[1]; + if ($tag_full =~ m/^<\s*\S+\s+\S.*>$/s) { + my $holder = $save_holders[$#save_holders]; + my $id = 0; + foreach (keys %{$holder->{folded_attributes}}) { + $id = $_ + 1 if ($_ >= $id); + } + $holder->{folded_attributes}->{$id} = $tag_full; + + @text = ("<$cur_tag_name po4a-id=$id>", $tag_ref); + } + } + unless ($t_opts =~ m/n/) { + push @path, $cur_tag_name; + } + } elsif ($tag_types[$type]->{'beginning'} eq "/") { + # Closing inline tag + + # Check if this is closing the + # last opening tag we detected. + my $test = pop @path; + my $name = $self->get_tag_name(@tag); + if (!defined($test) || + $test ne $name ) { + my $ontagerror = $self->{options}{'ontagerror'}; + if ($ontagerror eq "warn") { + warn wrap_ref_mod($tag[1], "po4a::xml", dgettext("po4a", "Unexpected closing tag </%s> found. The main document may be wrong. Continuing..."), $name); + } elsif ($ontagerror ne "silent") { + die wrap_ref_mod($tag[1], "po4a::xml", dgettext("po4a", "Unexpected closing tag </%s> found. The main document may be wrong."), $name); + } + } + + if ($self->get_translate_options($self->get_path($self->get_tag_name(@tag))) =~ m/p/) { + # This closes the current holder. + + push @path, $self->get_tag_name(@tag); + # Now translate this paragraph if needed. + # This will call pushline and append the + # translation to the current holder's translation. + $self->translate_paragraph(@paragraph); + pop @path; + + # Now that this holder is closed, we can remove + # the holder from the stack. + my $holder = pop @save_holders; + # We need to keep the translation of this holder + my $translation = $holder->{'open'}.$holder->{'translation'}; + $translation .= $self->join_lines(@text); + + @text = (); + + # Then we store the translation in the previous + # holder's sub_translations array + my $previous_holder = $save_holders[$#save_holders]; + push @{$previous_holder->{'sub_translations'}}, $translation; + # We also need to restore the @paragraph array, as + # it was before we encountered the holder. + @paragraph = @{$previous_holder->{'paragraph'}}; + } + } + } + push @paragraph, @text; + } + + # Next tag + ($eof,@text)=$self->get_string_until('<',{remove=>1}); + if ($#text > 0) { + # Check if text (extracted after the inline tag) + # has to be translated + push @paragraph, @text; + } + } + + # This strips the extracted strings + # (only if you don't specify the 'nostrip' option, and if the + # paragraph can be re-wrapped) + $translate = $self->get_translate_options($self->get_path); + if (!$self->{options}{'nostrip'} and $translate !~ m/W/) { + my $clean = 0; + # Clean the beginning + while (!$clean and $#paragraph > 0) { + $paragraph[0] =~ /^(\s*)(.*)/s; + my $match = $1; + if ($paragraph[0] eq $match) { + if ($match ne "") { + $self->pushline($match); + } + shift @paragraph; + shift @paragraph; + } else { + $paragraph[0] = $2; + if ($match ne "") { + $self->pushline($match); + } + $clean = 1; + } + } + $clean = 0; + # Clean the end + while (!$clean and $#paragraph > 0) { + $paragraph[$#paragraph-1] =~ /^(.*?)(\s*)$/s; + my $match = $2; + if ($paragraph[$#paragraph-1] eq $match) { + if ($match ne "") { + $blank = $match.$blank; + } + pop @paragraph; + pop @paragraph; + } else { + $paragraph[$#paragraph-1] = $1; + if ($match ne "") { + $blank = $match.$blank; + } + $clean = 1; + } + } + } + + # Translate the string when needed + # This will either push the translation in the translated document or + # in the current holder translation. + $self->translate_paragraph(@paragraph); + + # Push the trailing blanks + if ($blank ne "") { + $self->pushline($blank); + } + return $eof; +} + +# Translate a @paragraph array of (string, reference). +# The $translate argument indicates if the strings must be translated or +# just pushed +sub translate_paragraph { + my $self = shift; + my @paragraph = @_; + my $translate = $self->get_translate_options($self->get_path); + + while ( (scalar @paragraph) + and ($paragraph[0] =~ m/^\s*\n/s)) { + $self->pushline($paragraph[0]); + shift @paragraph; + shift @paragraph; + } + + my $comments; + while (@comments) { + my ($comment,$eoc); + do { + my ($t,$l) = (shift @comments, shift @comments); + $t =~ s/\n?(\0)?$//; + $eoc = $1; + $comment .= "\n" if defined $comment; + $comment .= $t; + } until ($eoc); + $comments .= "\n" if defined $comments; + $comments .= $comment; + $self->pushline("<!--".$comment."-->\n") if defined $comment; + } + @comments = (); + + if ($self->{options}{'cpp'}) { + my @tmp = @paragraph; + @paragraph = (); + while (@tmp) { + my ($t,$l) = (shift @tmp, shift @tmp); + # #include can be followed by a filename between + # <> brackets. In that case, the argument won't be + # handled in the same call to translate_paragraph. + # Thus do not try to match "include ". + if ($t =~ m/^#[ \t]*(if |endif|undef |include|else|ifdef |ifndef |define )/si) { + if (@paragraph) { + $self->translate_paragraph(@paragraph); + @paragraph = (); + $self->pushline("\n"); + } + $self->pushline($t); + } else { + push @paragraph, ($t,$l); + } + } + } + + my $para = $self->join_lines(@paragraph); + if ( length($para) > 0 ) { + if ($translate ne "") { + # This tag should be translated + $self->pushline($self->found_string( + $para, + $paragraph[1], { + type=>"tag", + tag_options=>$translate, + comments=>$comments + })); + } else { + # Inform that this tag isn't translated in debug mode + print wrap_ref_mod($paragraph[1], "po4a::xml", dgettext ("po4a", "Content of tag %s excluded: %s"), $self->get_path, $para) + if $self->debug(); + $self->pushline($self->recode_skipped_text($para)); + } + } + # Now the paragraph is fully translated. + # If we have all the holders' translation, we can replace the + # placeholders by their translations. + # We must wait to have all the translations because the holders are + # numbered. + { + my $holder = $save_holders[$#save_holders]; + my $translation = $holder->{'translation'}; + + # Count the number of <placeholder ...> in $translation + my $count = 0; + my $str = $translation; + while ( (defined $str) + and ($str =~ m/^.*?<placeholder\s+type="[^"]+"\s+id="(\d+)"\s*\/>(.*)$/s)) { + $count += 1; + $str = $2; + if ($holder->{'sub_translations'}->[$1] =~ m/<placeholder\s+type="[^"]+"\s+id="(\d+)"\s*\/>/s) { + $count = -1; + last; + } + } + + if ( (defined $translation) + and (scalar(@{$holder->{'sub_translations'}}) == $count)) { + # OK, all the holders of the current paragraph are + # closed (and translated). + # Replace them by their translation. + while ($translation =~ m/^(.*?)<placeholder\s+type="[^"]+"\s+id="(\d+)"\s*\/>(.*)$/s) { + # FIXME: we could also check that + # * the holder exists + # * all the holders are used + $translation = $1.$holder->{'sub_translations'}->[$2].$3; + } + # We have our translation + $holder->{'translation'} = $translation; + # And there is no need for any holder in it. + my @sub_translations = (); + $holder->{'sub_translations'} = \@sub_translations; + } + } + +} + + + +=head2 WORKING WITH THE MODULE OPTIONS + +=over 4 + +=item treat_options() + +This function fills the internal structures that contain the tags, attributes +and inline data with the options of the module (specified in the command-line +or in the initialize function). + +=back + +=cut + +sub treat_options { + my $self = shift; + + if ($self->{options}{'caseinsensitive'}) { + $self->{options}{'nodefault'} = lc $self->{options}{'nodefault'}; + $self->{options}{'tags'} = lc $self->{options}{'tags'}; + $self->{options}{'break'} = lc $self->{options}{'break'}; + $self->{options}{'_default_break'} = lc $self->{options}{'_default_break'}; + $self->{options}{'translated'} = lc $self->{options}{'translated'}; + $self->{options}{'_default_translated'} = lc $self->{options}{'_default_translated'}; + $self->{options}{'untranslated'} = lc $self->{options}{'untranslated'}; + $self->{options}{'_default_untranslated'} = lc $self->{options}{'_default_untranslated'}; + $self->{options}{'attributes'} = lc $self->{options}{'attributes'}; + $self->{options}{'_default_attributes'} = lc $self->{options}{'_default_attributes'}; + $self->{options}{'inline'} = lc $self->{options}{'inline'}; + $self->{options}{'_default_inline'} = lc $self->{options}{'_default_inline'}; + $self->{options}{'placeholder'} = lc $self->{options}{'placeholder'}; + $self->{options}{'_default_placeholder'} = lc $self->{options}{'_default_placeholder'}; + $self->{options}{'customtag'} = lc $self->{options}{'customtag'}; + $self->{options}{'_default_customtag'} = lc $self->{options}{'_default_customtag'}; + } + + $self->{options}{'nodefault'} =~ /^\s*(.*)\s*$/s; + my %list_nodefault; + foreach (split(/\s+/s,$1)) { + $list_nodefault{$_} = 1; + } + $self->{nodefault} = \%list_nodefault; + + $self->{options}{'tags'} =~ /^\s*(.*)\s*$/s; + if (length $self->{options}{'tags'}) { + warn wrap_mod("po4a::xml", + dgettext("po4a", + "The '%s' option is deprecated. Please use the translated/untranslated and/or break/inline/placeholder categories."), "tags"); + } + foreach (split(/\s+/s,$1)) { + $_ =~ m/^(.*?)(<.*)$/; + $self->{tags}->{$2} = $1 || ""; + } + + if ($self->{options}{'tagsonly'}) { + warn wrap_mod("po4a::xml", + dgettext("po4a", + "The '%s' option is deprecated. Please use the translated/untranslated and/or break/inline/placeholder categories."), "tagsonly"); + } + + $self->{options}{'break'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{break}->{$2} = $1 || ""; + } + $self->{options}{'_default_break'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{break}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{break}->{$2}; + } + + $self->{options}{'translated'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{translated}->{$2} = $1 || ""; + } + $self->{options}{'_default_translated'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{translated}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{translated}->{$2}; + } + + $self->{options}{'untranslated'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{untranslated}->{$2} = $1 || ""; + } + $self->{options}{'_default_untranslated'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{untranslated}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{untranslated}->{$2}; + } + + $self->{options}{'attributes'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + if ($tag =~ m/^(.*?)(<.*)$/) { + $self->{attributes}->{$2} = $1 || ""; + } else { + $self->{attributes}->{$tag} = ""; + } + } + $self->{options}{'_default_attributes'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + if ($tag =~ m/^(.*?)(<.*)$/) { + $self->{attributes}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{attributes}->{$2}; + } else { + $self->{attributes}->{$tag} = "" + unless $list_nodefault{$tag} + or defined $self->{attributes}->{$tag}; + } + } + + $self->{options}{'inline'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{inline}->{$2} = $1 || ""; + } + $self->{options}{'_default_inline'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{inline}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{inline}->{$2}; + } + + $self->{options}{'placeholder'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{placeholder}->{$2} = $1 || ""; + } + $self->{options}{'_default_placeholder'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{placeholder}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{placeholder}->{$2}; + } + + $self->{options}{'customtag'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{customtag}->{$2} = $1 || ""; + } + $self->{options}{'_default_customtag'} =~ /^\s*(.*)\s*$/s; + foreach my $tag (split(/\s+/s,$1)) { + $tag =~ m/^(.*?)(<.*)$/; + $self->{customtag}->{$2} = $1 || "" + unless $list_nodefault{$2} + or defined $self->{customtag}->{$2}; + } + + # There should be no translated and untranslated tags + foreach my $tag (keys %{$self->{translated}}) { + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "translated", "untranslated") + if defined $self->{untranslated}->{$tag}; + } + # There should be no inline, break, placeholder, and customtag tags + foreach my $tag (keys %{$self->{inline}}) { + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "inline", "break") + if defined $self->{break}->{$tag}; + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "inline", "placeholder") + if defined $self->{placeholder}->{$tag}; + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "inline", "customtag") + if defined $self->{customtag}->{$tag}; + } + foreach my $tag (keys %{$self->{break}}) { + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "break", "placeholder") + if defined $self->{placeholder}->{$tag}; + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "break", "customtag") + if defined $self->{customtag}->{$tag}; + } + foreach my $tag (keys %{$self->{placeholder}}) { + die wrap_mod("po4a::xml", + dgettext("po4a", + "Tag '%s' both in the %s and %s categories."), $tag, "placeholder", "customtag") + if defined $self->{customtag}->{$tag}; + } +} + +=head2 GETTING TEXT FROM THE INPUT DOCUMENT + +=over + +=item get_string_until($%) + +This function returns an array with the lines (and references) from the input +document until it finds the first argument. The second argument is an options +hash. Value 0 means disabled (the default) and 1, enabled. + +The valid options are: + +=over 4 + +=item B<include> + +This makes the returned array to contain the searched text + +=item B<remove> + +This removes the returned stream from the input + +=item B<unquoted> + +This ensures that the searched text is outside any quotes + +=back + +=cut + +sub get_string_until { + my ($self,$search) = (shift,shift); + my $options = shift; + my ($include,$remove,$unquoted, $regex) = (0,0,0,0); + + if (defined($options->{include})) { $include = $options->{include}; } + if (defined($options->{remove})) { $remove = $options->{remove}; } + if (defined($options->{unquoted})) { $unquoted = $options->{unquoted}; } + if (defined($options->{regex})) { $regex = $options->{regex}; } + + my ($line,$ref) = $self->shiftline(); + my (@text,$paragraph); + my ($eof,$found) = (0,0); + + $search = "\Q$search\E" unless $regex; + while (defined($line) and !$found) { + push @text, ($line,$ref); + $paragraph .= $line; + if ($unquoted) { + if ( $paragraph =~ /^((\".*?\")|(\'.*?\')|[^\"\'])*$search/s ) { + $found = 1; + } + } else { + if ( $paragraph =~ /$search/s ) { + $found = 1; + } + } + if (!$found) { + ($line,$ref)=$self->shiftline(); + } + } + + if (!defined($line)) { $eof = 1; } + + if ( $found ) { + $line = ""; + if($unquoted) { + $paragraph =~ /^(?:(?:\".*?\")|(?:\'.*?\')|[^\"\'])*?$search(.*)$/s; + $line = $1; + $text[$#text-1] =~ s/\Q$line\E$//s; + } else { + $paragraph =~ /$search(.*)$/s; + $line = $1; + $text[$#text-1] =~ s/\Q$line\E$//s; + } + if(!$include) { + $text[$#text-1] =~ /^(.*)($search.*)$/s; + $text[$#text-1] = $1; + $line = $2.$line; + } + if (defined($line) and ($line ne "")) { + $self->unshiftline ($line,$text[$#text]); + } + } + if (!$remove) { + $self->unshiftline (@text); + } + + #If we get to the end of the file, we return the whole paragraph + return ($eof,@text); +} + +=item skip_spaces(\@) + +This function receives as argument the reference to a paragraph (in the format +returned by get_string_until), skips his heading spaces and returns them as +a simple string. + +=cut + +sub skip_spaces { + my ($self,$pstring)=@_; + my $space=""; + + while (@$pstring and (@$pstring[0] =~ /^(\s+)(.*)$/s or @$pstring[0] eq "")) { + if (@$pstring[0] ne "") { + $space .= $1; + @$pstring[0] = $2; + } + + if (@$pstring[0] eq "") { + shift @$pstring; + shift @$pstring; + } + } + return $space; +} + +=item join_lines(@) + +This function returns a simple string with the text from the argument array +(discarding the references). + +=cut + +sub join_lines { + my ($self,@lines)=@_; + my ($line,$ref); + my $text = ""; + while ($#lines > 0) { + ($line,$ref) = (shift @lines,shift @lines); + $text .= $line; + } + return $text; +} + +=back + +=head1 STATUS OF THIS MODULE + +This module can translate tags and attributes. + +=head1 TODO LIST + +DOCTYPE (ENTITIES) + +There is a minimal support for the translation of entities. They are +translated as a whole, and tags are not taken into account. Multilines +entities are not supported and entities are always rewrapped during the +translation. + +MODIFY TAG TYPES FROM INHERITED MODULES +(move the tag_types structure inside the $self hash?) + +=head1 SEE ALSO + +L<Locale::Po4a::TransTractor(3pm)|Locale::Po4a::TransTractor>, +L<po4a(7)|po4a.7> + +=head1 AUTHORS + + Jordi Vilalta <jvprat@gmail.com> + Nicolas François <nicolas.francois@centraliens.net> + +=head1 COPYRIGHT AND LICENSE + + Copyright (c) 2004 by Jordi Vilalta <jvprat@gmail.com> + Copyright (c) 2008-2009 by Nicolas François <nicolas.francois@centraliens.net> + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut + +1; Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Chooser.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Chooser.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Chooser.pm (revision 1843) @@ -0,0 +1,151 @@ +# Locale::Po4a::Chooser -- Manage po4a modules +# +# This program is free software; you may redistribute it and/or modify it +# under the terms of GPL (see COPYING). +# +# This module converts POD to PO file, so that it becomes possible to +# translate POD formatted documentation. See gettext documentation for +# more info about PO files. + +############################################################################ +# Modules and declarations +############################################################################ + + +package Locale::Po4a::Chooser; + +use 5.006; +use strict; +use warnings; +use Locale::Po4a::Common; + +sub new { + my ($module)=shift; + my (%options)=@_; + + die wrap_mod("po4a::chooser", gettext("Need to provide a module name")) + unless defined $module; + + my $modname; + if ($module eq 'kernelhelp') { + $modname = 'KernelHelp'; + } elsif ($module eq 'newsdebian') { + $modname = 'NewsDebian'; + } elsif ($module eq 'latex') { + $modname = 'LaTeX'; + } elsif ($module eq 'bibtex') { + $modname = 'BibTex'; + } elsif ($module eq 'tex') { + $modname = 'TeX'; + } else { + $modname = ucfirst($module); + } + if (! UNIVERSAL::can("Locale::Po4a::$modname", 'new')) { + eval qq{use Locale::Po4a::$modname}; + if ($@) { + my $error=$@; + warn wrap_msg(gettext("Unknown format type: %s."), $module); + warn wrap_mod("po4a::chooser", + gettext("Module loading error: %s"), $error) + if defined $options{'verbose'} && $options{'verbose'} > 0; + list(1); + } + } + return "Locale::Po4a::$modname"->new(%options); +} + +sub list { + warn wrap_msg(gettext("List of valid formats:") +# ."\n - ".gettext("bibtex: BibTex bibliography format.") + ."\n - ".gettext("dia: uncompressed Dia diagrams.") + ."\n - ".gettext("docbook: DocBook XML.") + ."\n - ".gettext("guide: Gentoo Linux's XML documentation format.") +# ."\n - ".gettext("html: HTML documents (EXPERIMENTAL).") + ."\n - ".gettext("ini: INI format.") + ."\n - ".gettext("kernelhelp: Help messages of each kernel compilation option.") + ."\n - ".gettext("latex: LaTeX format.") + ."\n - ".gettext("man: Good old manual page format.") + ."\n - ".gettext("pod: Perl Online Documentation format.") + ."\n - ".gettext("sgml: either DebianDoc or DocBook DTD.") + ."\n - ".gettext("texinfo: The info page format.") + ."\n - ".gettext("tex: generic TeX documents (see also latex).") + ."\n - ".gettext("text: simple text document.") + ."\n - ".gettext("prop: Java property and OSX/NeXTSTEP strings files.") + ."\n - ".gettext("wml: WML documents.") + ."\n - ".gettext("xhtml: XHTML documents.") + ."\n - ".gettext("xml: generic XML documents (see also docbook).") + ); + exit shift; +} +############################################################################## +# Module return value and documentation +############################################################################## + +1; +__END__ + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Chooser - manage po4a modules + +=head1 DESCRIPTION + +Locale::Po4a::Chooser is a module to manage po4a modules. Previously, all po4a +binaries used to know all po4a modules (pod, man, sgml, etc). This made the +addition of a new module boring, to make sure the documentation is synchronized +in all modules, and that each of them can access the new module. + +Now, you just have to call the Locale::Po4a::Chooser::new() function, +passing the name of module as argument. + +You also have the Locale::Po4a::Chooser::list() function which lists the +available formats and exits on the value passed as argument. + +=head1 SEE ALSO + +=over 4 + +=item About po4a: + +L<Locale::Po4a::Po(3pm)>, +L<Locale::Po4a::TransTractor(3pm)>, +L<po4a(7)|po4a.7> + +=item About modules: + +L<Locale::Po4a::Dia(3pm)>, +L<Locale::Po4a::Docbook(3pm)>, +L<Locale::Po4a::Guide(3pm)>, +L<Locale::Po4a::Halibut(3pm)>, +L<Locale::Po4a::Ini(3pm)>, +L<Locale::Po4a::KernelHelp(3pm)>, +L<Locale::Po4a::LaTeX(3pm)>, +L<Locale::Po4a::Man(3pm)>, +L<Locale::Po4a::Pod(3pm)>, +L<Locale::Po4a::Sgml(3pm)>, +L<Locale::Po4a::TeX(3pm)>, +L<Locale::Po4a::Texinfo(3pm)>, +L<Locale::Po4a::Text(3pm)>, +L<Locale::Po4a::Prop(3pm)>, +L<Locale::Po4a::Wml(3pm)>. +L<Locale::Po4a::Xhtml(3pm)>, +L<Locale::Po4a::Xml(3pm)>, +L<Locale::Po4a::Wml(3pm)>. + +=back + +=head1 AUTHORS + + Denis Barbier <barbier@linuxfr.org> + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + +Copyright 2002,2003,2004,2005 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). + +=cut Index: branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Sgml.pm =================================================================== --- branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Sgml.pm (revision 0) +++ branches/JrCs/package/bin/po4a/lib/Locale/Po4a/Sgml.pm (revision 1843) @@ -0,0 +1,1273 @@ +#!/usr/bin/perl -w + +# Po4a::Sgml.pm +# +# extract and translate translatable strings from an sgml based document. +# +# This code is an adapted version of sgmlspl (SGML postprocessor for the +# SGMLS and NSGMLS parsers) which was: +# +# Copyright (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca> +# +# The adaptation for po4a was done by Denis Barbier <barbier@linuxfr.org>, +# Martin Quinson (mquinson#debian.org) and others. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +# +######################################################################## + +=encoding UTF-8 + +=head1 NAME + +Locale::Po4a::Sgml - convert SGML documents from/to PO files + +=head1 DESCRIPTION + +The po4a (PO for anything) project goal is to ease translations (and more +interestingly, the maintenance of translations) using gettext tools on +areas where they were not expected like documentation. + +Locale::Po4a::Sgml is a module to help the translation of documentation in +the SGML format into other [human] languages. + +This module uses B<nsgmls> to parse the SGML files. Make sure it is +installed. +Also make sure that the DTD of the SGML files are installed in the system. + +=head1 OPTIONS ACCEPTED BY THIS MODULE + +=over 4 + +=item B<debug> + +Space separated list of keywords indicating which part you want to debug. Possible values are: tag, generic, entities and refs. + +=item B<verbose> + +Give more information about what's going on. + +=item B<translate> + +Space separated list of extra tags (beside the DTD provided ones) whose +content should form an extra msgid. + +=item B<section> + +Space separated list of extra tags (beside the DTD provided ones) +containing other tags, some of them being of category B<translate>. + +=item B<indent> + +Space separated list of tags which increase the indentation level. + +=item B<verbatim> + +The layout within those tags should not be changed. The paragraph won't get +wrapped, and no extra indentation space or new line will be added for +cosmetic purpose. + +=item B<empty> + +Tags not needing to be closed. + +=item B<ignore> + +Tags ignored and considered as plain char data by po4a. That is to say that +they can be part of an msgid. For example, E<lt>bE<gt> is a good candidate +for this category since putting it in the translate section would create +msgids not being whole sentences, which is bad. + +=item B<attributes> + +A space separated list of attributes that need to be translated. You can +specify the attributes by their name (for example, "lang"), but you can also +prefix it with a tag hierarchy, to specify that this attribute will only be +translated when it is into the specified tag. For example: +E<lt>bbbE<gt>E<lt>aaaE<gt>lang specifies that the lang attribute will only be +translated if it is in an E<lt>aaaE<gt> tag, which is in a E<lt>bbbE<gt> tag. +The tag names are actually regular expressions so you can also write things +like E<lt>aaa|bbbbE<gt>lang to only translate lang attributes that are in +an E<lt>aaaE<gt> or a E<lt>bbbE<gt> tag. + +=item B<qualify> + +A space separated list of attributes for which the translation must be +qualified by the attribute name. Note that this setting automatically adds the +given attribute into the 'attributes' list too. + +=item B<force> + +Proceed even if the DTD is unknown or if nsgmls finds errors in the input +file. + +=item B<include-all> + +By default, msgids containing only one entity (like '&version;') are skipped +for the translator comfort. Activating this option prevents this +optimisation. It can be useful if the document contains a construction like +"<title>Á", even if I doubt such things to ever happen... + +=item B + +Space separated list of entities that won't be inlined. +Use this option with caution: it may cause nsgmls (used internally) to add +tags and render the output document invalid. + +=back + +=head1 STATUS OF THIS MODULE + +The result is perfect. I.e., the generated documents are exactly the +same. But there are still some problems: + +=over 2 + +=item * + +The error output of nsgmls is redirected to /dev/null, which is clearly +bad. I don't know how to avoid that. + +The problem is that I have to "protect" the conditional inclusions (i.e. the +C! [ %foo [> and C<]]E> stuff) from nsgmls. Otherwise +nsgmls eats them, and I don't know how to restore them in the final +document. To prevent that, I rewrite them to C<{PO4A-beg-foo}> and +C<{PO4A-end}>. + +The problem with this is that the C<{PO4A-end}> and such I add are valid in +the document (not in a EpE tag or so). + +Everything works well with nsgmls's output redirected that way, but it will +prevent us from detecting that the document is badly formatted. + +=item * + +It does work only with the DebianDoc and DocBook DTD. Adding support for a +new DTD should be very easy. The mechanism is the same for every DTD, you just +have to give a list of the existing tags and some of their characteristics. + +I agree, this needs some more documentation, but it is still considered as +beta, and I hate to document stuff which may/will change. + +=item * + +Warning, support for DTDs is quite experimental. I did not read any +reference manual to find the definition of every tag. I did add tag +definition to the module 'till it works for some documents I found on the +net. If your document use more tags than mine, it won't work. But as I said +above, fixing that should be quite easy. + +I did test DocBook against the SAG (System Administrator Guide) only, but +this document is quite big, and should use most of the DocBook +specificities. + +For DebianDoc, I tested some of the manuals from the DDP, but not all yet. + +=item * + +In case of file inclusion, string reference of messages in PO files +(i.e. lines like C<#: en/titletoc.sgml:9460>) will be wrong. + +This is because I preprocess the file to protect the conditional inclusion +(i.e. the C! [ %foo [> and C<]]E> stuff) and some entities (like +&version;) from nsgmls because I want them verbatim to the generated +document. For that, I make a temp copy of the input file and do all the +changes I want to this before passing it to nsgmls for parsing. + +So that it works, I replace the entities asking for a file inclusion by the +content of the given file (so that I can protect what needs to be in a subfile +also). But nothing is done so far to correct the references (i.e., filename +and line number) afterward. I'm not sure what the best thing to do is. + +=back + +=cut + +package Locale::Po4a::Sgml; + +use 5.006; +use strict; +use warnings; + + +require Exporter; +use vars qw(@ISA @EXPORT); +@ISA = qw(Locale::Po4a::TransTractor); +@EXPORT = qw(); + +use Locale::Po4a::TransTractor; +use Locale::Po4a::Common; + +eval qq{use SGMLS}; +if ($@) { + die wrap_mod("po4a::sgml", dgettext("po4a","The needed module SGMLS.pm was not found and needs to be installed. It can be found on the CPAN, in package libsgmls-perl on debian, etc.")); +} + +use File::Temp; + +my %debug=('tag' => 0, + 'generic' => 0, + 'entities' => 0, + 'refs' => 0, + 'nsgmls' => 0); + +my $xmlprolog = undef; # the '' line if existing + +sub initialize { + my $self = shift; + my %options = @_; + + $self->{options}{'translate'}=''; + $self->{options}{'section'}=''; + $self->{options}{'indent'}=''; + $self->{options}{'empty'}=''; + $self->{options}{'verbatim'}=''; + $self->{options}{'ignore'}=''; + $self->{options}{'ignore-inclusion'}=''; + + $self->{options}{'include-all'}=''; + + $self->{options}{'force'}=''; + + $self->{options}{'verbose'}=''; + $self->{options}{'debug'}=''; + + foreach my $opt (keys %options) { + if ($options{$opt}) { + die wrap_mod("po4a::sgml", dgettext ("po4a", "Unknown option: %s"), $opt) unless exists $self->{options}{$opt}; + $self->{options}{$opt} = $options{$opt}; + } + } + if ($options{'debug'}) { + foreach (split /\s+/, $options{'debug'}) { + $debug{$_} = 1; + } + } +} + +sub read { + my ($self,$filename)=@_; + + push @{$self->{DOCPOD}{infile}}, $filename; + $self->Locale::Po4a::TransTractor::read($filename); +} + +sub parse { + my $self=shift; + map {$self->parse_file($_)} @{$self->{DOCPOD}{infile}}; +} + +# +# Filter out some uninteresting strings for translation +# +sub translate { + my ($self)=(shift); + my ($string,$ref,$type)=(shift,shift,shift); + my (%options)=@_; + + # don't translate entries composed of one entity + if ( (($string =~ /^&[^;]*;$/) || ($options{'wrap'} && $string =~ /^\s*&[^;]*;\s*$/)) + && !($self->{options}{'include-all'}) ){ + warn wrap_mod("po4a::sgml", dgettext("po4a", "msgid skipped to help translators (contains only an entity)"), $string) + unless $self->verbose() <= 0; + return $string.($options{'wrap'}?"\n":""); + } + # don't translate entries composed of tags only + if ( $string =~ /^(((<[^>]*>)|\s)*)$/ + && !($self->{options}{'include-all'}) ) { + warn wrap_mod("po4a::sgml", dgettext("po4a", "msgid skipped to help translators (contains only tags)"), $string) + unless $self->verbose() <= 0; + return $string.($options{'wrap'}?"\n":""); + } + + # don't translate entries composed of marked section tags only + if ( ($string =~ /^(?:|\s)*$/) + && !($self->{options}{'include-all'})) { + warn wrap_mod("po4a::sgml", dgettext("po4a", "msgid skipped to ". + "help translators (contains only opening or closing ". + "tags of marked sections)"), $string) + unless $self->verbose() <= 0; + return $string.($options{'wrap'}?"\n":""); + } + + $string = $self->SUPER::translate($string,$ref,$type,%options); + + $string = $self->post_trans($string,$ref,$type); + + return $string; +} + +sub post_trans { + my ($self,$str,$ref,$type)=@_; + + # Change ascii non-breaking space to an   + my $nbs_out = "\xA0"; + my $enc_length = Encode::from_to($nbs_out, "latin1", + $self->get_out_charset); + $str =~ s/\Q$nbs_out/ /g if defined $enc_length; + + return $str; +} + +# +# Make sure our cruft is removed from the file +# +sub pushline { + my ($self,$line)=@_; + $line =~ s/{PO4A-amp}/&/g; + $self->SUPER::pushline($line); +} + +sub set_tags_kind { + my $self=shift; + my (%kinds)=@_; + + foreach (qw(translate empty section verbatim ignore attributes qualify)) { + $self->{SGML}->{k}{$_} = $self->{options}{$_} ? $self->{options}{$_}.' ' : ''; + # Remove the default behavior for the tags defined with the + # options. + foreach my $k (keys %kinds) { + foreach my $t (split(" ", $self->{SGML}->{k}{$_})) { + $kinds{$k} =~ s/\b$t\b//; + } + } + } + + foreach (keys %kinds) { + die "po4a::sgml: internal error: set_tags_kind called with unrecognized arg $_" + if ($_ !~ /^(translate|empty|verbatim|ignore|indent|attributes|qualify)$/); + + $self->{SGML}->{k}{$_} .= $kinds{$_}; + } +} + +# +# Do the actual work, using the SGMLS package and settings done elsewhere. +# +sub parse_file { + my ($self,$mastername)=@_; + my ($prolog); + + # Rewrite the file to: + # - protect optional inclusion marker (i.e. "") + # - protect entities from expansion (ie "&release;") + my $origfile=""; + my $i=0; + while (defined(@{$self->{TT}{doc_in}}) && $i < @{$self->{TT}{doc_in}}) { + $origfile .= ${$self->{TT}{doc_in}}[$i]; + $i+=2; + } + + unless ($self->{options}{'force'}) { + # Detect if we can find the DTD + my ($tmpfh,$tmpfile)=File::Temp::tempfile("po4a-XXXX", + SUFFIX => ".sgml", + DIR => "/tmp", + UNLINK => 0); + print $tmpfh $origfile; + close $tmpfh + or die wrap_mod("po4a::sgml", + dgettext("po4a", "Can't close tempfile: %s"), $!); + if (system("nsgmls -p < $tmpfile")) { + unlink ($tmpfile); + die wrap_mod("po4a::sgml", + dgettext("po4a", "Error while running nsgmls -p. ". + "Please check if nsgmls and the ". + "DTD are installed.")); + } + unlink ($tmpfile); + } + # Detect the XML pre-prolog + if ($origfile =~ s/^(\s*<\?xml[^?]*\?>)//) { + warn wrap_mod("po4a::sgml", dgettext("po4a", + "Trying to handle a XML document as a SGML one. ". + "Feel lucky if it works, help us implementing a proper XML backend if it does not."), $mastername) + unless $self->verbose() <= 0; + $xmlprolog=$1; + } + # Get the prolog + { + $prolog=$origfile; + my $lvl; # number of '<' seen without matching '>' + my $pos = 0; # where in the document (in chars) while detecting prolog boundaries + + unless ($prolog =~ s/^(.*' or '<' in them. + if ($origfile =~ m/^.{$pos}?()/s) { + print "Found a comment in the prolog: $1\n" if ($debug{'generic'}); + $pos += length($1); + # take care of the line numbers + my @a = split(/\n/,$1); + shift @a; # nb line - 1 + while (defined(shift @a)) { + $prolog .= "\n"; + } + next; + } + # Search the closing '>' + my ($c)=substr($origfile,$pos,1); + $lvl++ if ($c eq '<'); + $lvl-- if ($c eq '>'); + $prolog = "$prolog$c"; + $pos++; + } + } + + # Add the definition of new tags that will be used for the + # conditionnal inclusions + if ($origfile =~ /^.*]*\[/is) { + $origfile =~ s/^(.*]*\[)/$1 /is; + } + + print STDERR "PROLOG=$prolog\n------------\n" if ($debug{'generic'}); + + # Configure the tags for this dtd + if ($prolog =~ /debiandoc/i) { + $self->set_tags_kind("translate" => "author version abstract title". + "date copyrightsummary heading p ". + "example tag title", + "empty" => "date ref manref url toc", + "verbatim" => "example", + "ignore" => "package prgn file tt em var ". + "name email footnote po4aend po4abeg ". + "strong ftpsite ftppath qref", + "indent" => "appendix ". + "book ". + "chapt copyright ". + "debiandoc ". + "enumlist ". + "item ". + "list ". + "sect sect1 sect2 sect3 sect4 ". + "tag taglist titlepag toc"); + + } elsif ($prolog =~ /docbook/i) { + $self->set_tags_kind("translate" => "abbrev appendixinfo artheader attribution ". + "biblioentry biblioset ". + "chapterinfo collab collabname confdates confgroup conftitle ". + "date ". + "edition editor entry example ". + "figure ". + "glosssee glossseealso glossterm ". + "holder ". + "member msgaud msglevel msgorig ". + "orgdiv orgname othername ". + "pagenums para phrase pubdate publishername primary ". + "refclass refdescriptor refentrytitle refmiscinfo refname refpurpose releaseinfo remark revnumber revremark ". + "screeninfo seg secondary see seealso segtitle simpara substeps subtitle synopfragmentref synopsis ". + "term tertiary title titleabbrev ". + "contrib epigraph", + "empty" => "audiodata colspec graphic imagedata textdata sbr spanspec videodata xref", + "indent" => "abstract answer appendix article articleinfo audioobject author authorgroup ". + "bibliodiv bibliography blockquote blockinfo book bookinfo bridgehead ". + "callout calloutlist caption caution chapter copyright ". + "dedication docinfo ". + "entry ". + "formalpara ". + "glossary glossdef glossdiv glossentry glosslist group ". + "imageobject important index indexterm informaltable itemizedlist ". + "keyword keywordset ". + "legalnotice listitem lot ". + "mediaobject msg msgentry msginfo msgexplan msgmain msgrel msgsub msgtext ". + "note ". + "objectinfo orderedlist ". + "part partintro preface procedure publisher ". + "qandadiv qandaentry qandaset question ". + "reference refentry refentryinfo refmeta refnamediv refsect1 refsect1info refsect2 refsect2info refsect3 refsect3info refsection refsectioninfo refsynopsisdiv refsynopsisdivinfo revision revdescription row ". + "screenshot sect1 sect1info sect2 sect2info sect3 sect3info sect4 sect4info sect5 sect5info section sectioninfo seglistitem segmentedlist set setindex setinfo shortcut simplelist simplemsgentry simplesect step synopfragment ". + "table tbody textobject tgroup thead tip toc ". + "variablelist varlistentry videoobject ". + "warning", + "verbatim" => "address cmdsynopsis holder literallayout programlisting ". + "refentrytitle refname refpurpose screen term title", + "ignore" => "acronym action affiliation anchor application arg author authorinitials ". + "city citation citerefentry citetitle classname co command computeroutput constant corpauthor country ". + "database po4abeg po4aend ". + "email emphasis envar errorcode errorname errortext errortype exceptionname ". + "filename firstname firstterm footnote footnoteref foreignphrase function ". + "glossterm guibutton guiicon guilabel guimenu guimenuitem guisubmenu ". + "hardware ". + "indexterm informalexample inlineequation inlinegraphic inlinemediaobject interface interfacename isbn ". + "keycap keycode keycombo keysym ". + "link lineannotation literal ". + "manvolnum markup medialabel menuchoice methodname modespec mousebutton ". + "nonterminal ". + "olink ooclass ooexception oointerface option optional othercredit ". + "parameter personname phrase productname productnumber prompt property pubsnumber ". + "quote ". + "remark replaceable returnvalue revhistory ". + "sgmltag sidebar structfield structname subscript superscript surname symbol systemitem ". + "token trademark type ". + "ulink userinput ". + "varname volumenum ". + "wordasword ". + "xref ". + "year", + "attributes" =>"<(article|book)>lang"); + + } else { + if ($self->{options}{'force'}) { + warn wrap_mod("po4a::sgml", dgettext("po4a", "DTD of this file is unknown, but proceeding as requested.")); + $self->set_tags_kind(); + } else { + die wrap_mod("po4a::sgml", dgettext("po4a", + "DTD of this file is unknown. (supported: DebianDoc, DocBook). The prolog follows:")."\n$prolog"); + } + } + + # Hash of the file entities that won't be included + my %ignored_inclusion = (); + foreach (split / /,$self->{options}{'ignore-inclusion'}) { + $ignored_inclusion{$_} = 1; + } + + # Prepare the reference indirection stuff + my @refs; + my $length = ($origfile =~ tr/\n/\n/); + print "XX Prepare reference indirection stuff\n" if $debug{'refs'}; + for (my $i=1; $i<=$length; $i++) { + push @refs,"$mastername:$i"; + print "$mastername:$i\n" if $debug{'refs'}; + } + + # protect the conditional inclusions in the file + $origfile =~ s//g; # cond. incl. starts + $origfile =~ s/\]\]>//g; # cond. incl. end + + # Remove )(.*)$/s) + { + my ($begin,$ignored,$end) = ($1, $2, $3); + my @begin = split(/\n/, $begin); + my @ignored = split(/\n/, $ignored); + my $pre = scalar @begin; + my $len = (scalar @ignored) -1; + $pre++ if ($begin =~ /\n$/s); + $len++ if ($end =~ /^\n/s); + # remove the references of the ignored lines + splice @refs, $pre+1, $len-1; + # remove the lines + $tmp1 = $begin.$end; + } + $origfile = $tmp1; + # The <, >, and & in a CDATA must be escaped because they do not + # correspond to tags or entities delimiters. + $tmp1 = $origfile; + $origfile = ""; + while ($tmp1 =~ m/^(.*?{PO4A-beg-\s*(?:CDATA|RCDATA)\s*})(.+?)(.*)$/s) { + my ($begin, $tmp) = ($1, $2); + $tmp1 = $3; + $tmp =~ s//{PO4A-gt}/gs; + $tmp =~ s/&/{PO4A-amp}/gs; + $origfile .= $begin.$tmp; + } + $origfile .= $tmp1; + + # Deal with the %entities; in the prolog. God damn it, this code is gross! + # Try hard not to change the number of lines to not fuck up the references + my %prologentincl; + my $moretodo=1; + PROLOGENTITY: while ($moretodo) { # non trivial loop to deal with recursive inclusion + $moretodo = 0; + # Unprotect not yet defined inclusions + $prolog =~ s/{PO4A-percent}/%/sg; + print STDERR "prolog=>>>>$prolog<<<<\n" + if ($debug{'entities'}); + while ($prolog =~ /(.*?)"]*)"\s*>(.*)$/is) { #})"{ (Stupid editor) + print STDERR "Seen the definition entity of prolog inclusion '$2' (=$3)\n" + if ($debug{'entities'}); + # Preload the content of the entity. + my $key = $2; + my $filename=$3; + my $origfilename = $filename; + my ($begin, $end) = ($1, $4); + if ($filename !~ m%^/% && $mastername =~ m%/%) { + my $dir=$mastername; + $dir =~ s%/[^/]*$%%; + $filename="$dir/$filename"; + # origfile also needs to be fixed otherwise nsgmls won't + # find the file. + $origfile =~ s/()/$1$filename$2/gsi; + } + if (defined $ignored_inclusion{$key} or !-e $filename) { + # We won't expand this entity. + # And we avoid nsgmls to do so. + $prolog = "$begin$end"; + } else { + $prolog = $begin.$end; + (-e $filename && open IN,"<$filename") || + die wrap_mod("po4a::sgml", + dgettext("po4a", + "Can't open %s (content of entity %s%s;): %s"), + $filename, '%', $key, $!); + local $/ = undef; + $prologentincl{$key} = ; + close IN; + print STDERR "Content of \%$key; is $filename (". + ($prologentincl{$key} =~ tr/\n/\n/). + " lines long)\n" + if ($debug{'entities'}); + print STDERR "content: ".$prologentincl{$key}."\n" + if ($debug{'entities'}); + $moretodo = 1; + next PROLOGENTITY; + } + } + while ($prolog =~ /(.*?)"]*)"\s*>(.*)$/is) { #})"{ (Stupid editor) + print STDERR "Seen the definition entity of prolog definition '$2' (=$3)\n" + if ($debug{'entities'}); + # Preload the content of the entity. + my $key = $2; + $prolog = $1.$4; + $prologentincl{$key} = $3; + print STDERR "content: ".$prologentincl{$key}."\n" + if ($debug{'entities'}); + $moretodo = 1; + next PROLOGENTITY; + } + while ($prolog =~ /^(.*?)%([^;\s]*);(.*)$/s) { + my ($pre,$ent,$post) = ($1,$2,$3); + # Yeah, right, the content of the entity can be defined in a not yet loaded entity + # It's easy to build a weird case where all that shit collapses poorly. But why the + # hell are you using those strange constructs in your document, damn it? + print STDERR "Seen prolog inclusion $ent\n" if ($debug{'entities'}); + if (defined ($prologentincl{$ent})) { + $prolog = $pre.$prologentincl{$ent}.$post; + print STDERR "Change \%$ent; to its content in the prolog\n" + if $debug{'entities'}; + $moretodo = 1; + } else { + # AAAARGH stupid document using %bla; and having then defined in another inclusion! + # Protect it for this pass, and unprotect it on next one + print STDERR "entity $ent not defined yet ?!\n" + if $debug{'entities'}; + $prolog = "$pre".'{PO4A-percent}'."$ent;$post"; + } + } + } + $prolog =~ s///g; + # Unprotect undefined inclusions, and die of them + $prolog =~ s/{PO4A-percent}/%/sg; + if ($prolog =~ /%([^;\s]*);/) { + die wrap_mod("po4a::sgml", + dgettext("po4a", + "unrecognized prolog inclusion entity: %%%s;"), + $1) + unless ($ignored_inclusion{$1}); + } + # Protect &entities; (all but the ones asking for a file inclusion) + # search the file inclusion entities + my %entincl; + my $searchprolog=$prolog; + while ($searchprolog =~ /(.*?)"]*)"\s*>(.*)$/is) { #})"{ + print STDERR "Seen the entity of inclusion $2 (=$3)\n" + if ($debug{'entities'}); + my $key = $2; + my $filename = $3; + my $origfilename = $filename; + $searchprolog = $4; + if ($filename !~ m%^/% && $mastername =~ m%/%) { + my $dir=$mastername; + $dir =~ s%/[^/]*$%%; + $filename="$dir/$filename"; + # origfile also needs to be fixed otherwise nsgmls won't find + # the file. + $origfile =~ s/()/$1$filename$2/gsi; + } + if ((not defined $ignored_inclusion{$2}) and (-e $filename)) { + $entincl{$key}{'filename'}=$filename; + # Preload the content of the entity + (-e $filename && open IN,"<$filename") || + die wrap_mod("po4a::sgml", + dgettext("po4a", + "Can't open %s (content of entity %s%s;): %s"), + $filename, '&', $key, $!); + local $/ = undef; + $entincl{$key}{'content'} = ; + close IN; + $entincl{$key}{'length'} = ($entincl{$key}{'content'} =~ tr/\n/\n/); + print STDERR "read $filename (content of \&$key;, $entincl{$key}{'length'} lines long)\n" + if ($debug{'entities'}); + } + } + + # Change the entities including files in the document + my $dosubstitution = 1; + while ($dosubstitution) { + $dosubstitution = 0; + foreach my $key (keys %entincl) { + # The external entity can be referenced as &key; or &key + # In the second case, we must differentiate &key and &key2 + while ($origfile =~/^(.*?)&$key(;.*$|[^-_:.A-Za-z0-9].*$|$)/s) { + # Since we will include a new file, we + # must do a new round of substitutions. + $dosubstitution = 1; + my ($begin,$end)=($1,$2); + $end = "" unless (defined $end); + $end =~ s/^;//s; + + if ($begin =~ m/.*/s) { + # This entity is commented. Just remove it. + $origfile = $begin.$end; + next; + } + + # add the refs + my $len = $entincl{$key}{'length'}; # number added by the inclusion + my $pre = ($begin =~ tr/\n/\n/); # number of \n + my $post = ($end =~ tr/\n/\n/); + print "XX Add a ref. pre=$pre; len=$len; post=$post\n" + if $debug{'refs'}; + # Keep a reference of inclusion position in main file + my $main = $refs[$pre]; + + # Remove the references for the lines after the inclusion + # point. + my @endrefs = splice @refs, $pre+1; + + # Add the references of the added lines + my $i; + for ($i=0; $i<$len; $i++) { + $refs[$i+$pre] = "$main $entincl{$key}{'filename'}:".($i+1); + } + + if ($begin !~ m/\n[ \t]*$/s) { + if ($entincl{$key}{'content'} =~ m/^[ \t]*\n/s) { + # There is nothing in the first line of the + # included file, and something on the line before + # the inclusion The line reference will be more + # informative like this: + $refs[$pre] = $main; + } + } + if ($end !~ s/^[ \t]*\n//s) { + if ($entincl{$key}{'content'} =~ m/\n[ \t]*$/s) { + # There is something on the line after the + # inclusion, and there is an end of line at the + # end of the included file. We must add the line + # reference of the remainder on the line: + push @refs, $main; + } + } + # Append the references removed earlier (lines after the + # inclusion point). + push @refs, @endrefs; + + # Do the substitution + $origfile = "$begin".$entincl{$key}{'content'}."$end"; + print STDERR "substitute $key\n" if ($debug{'entities'}); + } + } + } + $origfile=~s/\G(.*?)&([A-Za-z_:][-_:.A-Za-z0-9]*|#[0-9]+|#x[0-9a-fA-F]+)\b/$1\{PO4A-amp\}$2/gs; + if (defined($xmlprolog) && length($xmlprolog)) { + $origfile=~s/\/>/\{PO4A-close\}>/gs; + } + + if ($debug{'refs'}) { + print "XX Resulting shifts\n"; + for (my $i=0; $i $refs[$i]\n"; + } + } + + my ($tmpfh,$tmpfile)=File::Temp::tempfile("po4a-XXXX", + SUFFIX => ".sgml", + DIR => "/tmp", + UNLINK => 0); + print $tmpfh $origfile; + close $tmpfh or die wrap_mod("po4a::sgml", dgettext("po4a", "Can't close tempfile: %s"), $!); + + my $cmd="nsgmls -l -E 0 -wno-valid < $tmpfile". + ($debug{'nsgmls'}?"":" 2>/dev/null")." |"; + print STDERR "CMD=$cmd\n" if ($debug{'generic'} or $debug{'nsgmls'}); + + open (IN,$cmd) || die wrap_mod("po4a::sgml", dgettext("po4a", "Can't run nsgmls: %s"), $!); + + # The kind of tags + my (%translate,%empty,%verbatim,%indent,%exist,%attribute,%qualify); + foreach (split(/ /, ($self->{SGML}->{k}{'translate'}||'') )) { + $translate{uc $_} = 1; + $indent{uc $_} = 1; + $exist{uc $_} = 1; + } + foreach (split(/ /, ($self->{SGML}->{k}{'empty'}||'') )) { + $empty{uc $_} = 1; + $exist{uc $_} = 1; + } + foreach (split(/ /, ($self->{SGML}->{k}{'verbatim'}||'') )) { + $translate{uc $_} = 1; + $verbatim{uc $_} = 1; + $exist{uc $_} = 1; + } + foreach (split(/ /, ($self->{SGML}->{k}{'indent'}||'') )) { + $translate{uc $_} = 1; + $indent{uc $_} = 1; + $exist{uc $_} = 1; + } + foreach (split(/ /, ($self->{SGML}->{k}{'ignore'}) || '')) { + $exist{uc $_} = 1; + } + foreach (split(/ /, ($self->{SGML}->{k}{'attributes'} || ''))) { + my ($attr, $tags); + if (m/(^.*>)(\w+)/) { + $attr=uc $2; + $tags=$1; + } else { + $attr=uc $_; + $tags=".*"; + } + if (exists $attribute{$attr}) { + $attribute{$attr}.="|$tags"; + } else { + $attribute{$attr} = $tags; + } + } + foreach (split(/ /, ($self->{SGML}->{k}{'qualify'}) || '')) { + $qualify{uc $_} = 1; + $attribute{uc $_} = '.*' unless exists $attribute{uc $_}; + } + + + # What to do before parsing + + # push the XML prolog if existing + $self->pushline($xmlprolog."\n") if (defined($xmlprolog) && length($xmlprolog)); + + # Put the prolog into the file, allowing for entity definition translation + # + # and push("translate("definition_of_my_entity") + if ($prolog =~ m/(.*?\[)(.*)(\]>)/s) { + warn "Pre=~~$1~~;Post=~~$3~~\n" if ($debug{'entities'}); + $self->pushline($1."\n") if (length($1)); + $prolog=$2; + my ($post) = $3; + while ($prolog =~ m/^(.*?)(.*)$/is) { #" ){ + $self->pushline($1) if length($1); + $self->pushline("translate($3,"","definition of entity \&$2;")."\">"); + warn "Seen text entity $2\n" if ($debug{'entities'}); + $prolog = $4; + } + $prolog .= $post; + $self->pushline($prolog."\n") if (length($prolog)); + } else { + warn "No entity declaration detected in ~~$prolog~~...\n" if ($debug{'entities'}); + $self->pushline($prolog) if length($prolog); + } + + # The parse object. + # Damn SGMLS. It makes me do crude things. + no strict "subs"; + my $parse= new SGMLS(IN); + use strict; + + # Some values for the parsing + my @open=(); # opened translation container tags + my $verb=0; # can we wrap or not + my $verb_last_ref; + my $seenfootnote=0; + my $indent=0; # indent level + my $lastchar = ''; # + my $buffer= ""; # what we will soon handle + + # Keep a reference to the last line indicated by nsgmls + my $line=0; + # Unfortunately, nsgmls do not mention all the line changes. We have + # to keep track of the number of lines seen in the "record ends". + my $adds=0; + # If the last line received contains only spaces, do not take it into + # account for the line reference of the paragraph. + my $empty_last_cdata=0; + # run the appropriate handler for each event + EVENT: while (my $event = $parse->next_event) { + # get the line reference to build po entries + if ($line != $parse->line) { + # nsgmls informs us of that the line changed. Reset $adds and + # $empty_last_cdata + $adds = 0; + $empty_last_cdata = 0; + $line = $parse->line; + } + my $ref=$refs[$parse->line-1 + $adds - $empty_last_cdata]; + # In verbatim mode, keep the current line reference. + if ($verb) { + $ref=$refs[$parse->line-1]; + } + my $type; + + if ($event->type eq 'start_element') { + die wrap_ref_mod($ref, "po4a::sgml", + dgettext("po4a", "Unknown tag %s"), + $event->data->name) + unless $exist{$event->data->name}; + + $lastchar = ">"; + + # Which tag did we see? + my $tag=''; + $tag .= '<'.lc($event->data->name()); + while (my ($attr, $val) = each %{$event->data->attributes()}) { + my $value = $val->value(); +# if ($val->type() eq 'IMPLIED') { +# $tag .= ' '.lc($attr).'="'.lc($attr).'"'; +# } els + if ($val->type() eq 'CDATA' || + $val->type() eq 'IMPLIED') { + if (defined $value && length($value)) { + my $lattr=lc $attr; + my $uattr=uc $attr; + if (exists $attribute{$uattr}) { + my $context=""; + foreach my $o (@open) { + next if (!defined $o or $o =~ m%^/; + $context.=$o; + } + $context=join("", $context, + "<", lc($event->data->name()), ">"); + if ($context =~ /^($attribute{$uattr})$/) { + if ($qualify{$uattr}) { + my $translated = $self->translate("$lattr=$value", $ref, "attribute $context$lattr"); + if ($translated =~ s/^$lattr=//) { + $value=$translated; + } else { + die wrap_mod("po4a::sgml", dgettext("po4a", "bad translation '%s' for '%s' in '%s'"), $translated, $context.$lattr, $ref); + } + } else { + $value = $self->translate($value, $ref, "attribute $context$lattr"); + } + } + } + if ($value =~ m/\"/) { + $value = "'".$value."'"; + } else { + $value = '"'.$value.'"'; + } + $tag .= " $lattr=$value"; + } + } elsif ($val->type() eq 'NOTATION') { + } else { + $tag .= ' '.lc($attr).'="'.lc($value).'"' + if (defined $value && length($value)); + } + } + $tag .= '>'; + + + # debug + print STDERR "Seen $tag, open level=".(scalar @open).", verb=$verb\n" + if ($debug{'tag'}); + + if ($event->data->name() eq 'FOOTNOTE') { + # we want to put the inside the in the same msgid + $seenfootnote = 1; + } + + if ($seenfootnote) { + $buffer .= $tag; + next EVENT; + } + if ($translate{$event->data->name()}) { + # Build the type + if (scalar @open > 0) { + $type=$open[$#open] . $tag; + } else { + $type=$tag; + } + + # do the job + if (@open > 0) { + $self->end_paragraph($buffer,$ref,$type,$verb,$indent, + @open); + } else { + $self->pushline($buffer) if $buffer; + } + $buffer=""; + push @open,$tag; + } elsif ($indent{$event->data->name()}) { + die wrap_ref_mod($ref, "po4a::sgml", dgettext("po4a", + "Closing tag for a translation container missing before %s"),$tag) + if (scalar @open); + } + + if ($verbatim{$event->data->name()}) { + $verb++; + # Keep a reference to the line that openned the verbatim + # section. This is needed to check if its data starts on + # the same line. + $verb_last_ref = $ref; + } + if ($verb) { + # Tag in a verbatim section. Check if it appeared at + # the same line than the previous data. If not, it + # means that an end of line must be added to the + # buffer. + if ($ref ne $verb_last_ref) { + # FIXME: Does it work if $verb > 1 + $buffer .= "\n"; + $verb_last_ref = $ref; + } + } + + if ($indent{$event->data->name()}) { + # push the indenting space only if not in verb before that tag + # push trailing "\n" only if not in verbose afterward + $self->pushline( ($verb>1?"": (" " x $indent)).$tag.($verb?"":"\n")); + $indent ++ unless $empty{$event->data->name()} ; + } else { + $tag =~ s///]]>/; + $buffer .= $tag; + } + } # end of type eq 'start_element' + + elsif ($event->type eq 'end_element') { + my $tag = ($empty{$event->data->name()} + ? + '' + : + 'data->name()).'>'); + + if ($verb) { + # Tag in a verbatim section. Check if it appeared at + # the same line than the previous data. If not, it + # means that an end of line must be added to the + # buffer. + if ($ref ne $verb_last_ref) { + # FIXME: Does it work if $verb > 1 + $buffer .= "\n"; + $verb_last_ref = $ref; + } + } + print STDERR "Seen $tag, level=".(scalar @open).", verb=$verb\n" + if ($debug{'tag'}); + + $lastchar = ">"; + + if ($event->data->name() eq 'FOOTNOTE') { + # we want to put the inside the in the same msgid + $seenfootnote = 0; + } + + if ($seenfootnote) { + $buffer .= $tag; + next EVENT; + } + if ($translate{$event->data->name()}) { + $type = $open[$#open] . $tag; + $self->end_paragraph($buffer,$ref,$type,$verb,$indent,@open); + $buffer = ""; + pop @open; + if (@open > 0) { + pop @open; + push @open,$tag; + } + } elsif ($indent{$event->data->name()}) { + die wrap_ref_mod($ref, "po4a::sgml", dgettext("po4a", + "Closing tag for a translation container missing before %s"), $tag) + if (scalar @open); + } + + unless ($event->data->name() =~ m/^(PO4ABEG|PO4AEND)$/si) { + if ($indent{$event->data->name()}) { + $indent -- ; + # add indenting space only when not in verbatim + # add the tailing \n only if out of verbatim after that tag + $self->pushline(($verb?"":(" " x $indent)).$tag.($verb>1?"":"\n")); + } else { + $buffer .= $tag; + } + $verb-- if $verbatim{$event->data->name()}; + } + } # end of type eq 'end_element' + + elsif ($event->type eq 'cdata') { + my $cdata = $event->data; + $empty_last_cdata=($cdata =~ m/^\s*$/); + $cdata =~ s/{PO4A-lt}//g; + $cdata =~ s/{PO4A-amp}/&/g; + $cdata =~ s/{PO4A-end}/\]\]>/g; + $cdata =~ s/{PO4A-beg-([^\}]+)}/PO4A-close\}>/\/>/sg; + $buffer =~ s/PO4A-close\}>//sg; # This should not be necessary + } + } # end of type eq 'cdata' + + elsif ($event->type eq 'sdata') { + my $sdata = $event->data; + $sdata =~ s/^\[//; + $sdata =~ s/\s*\]$//; + $lastchar = substr($sdata, -1, 1); + $buffer .= '&'.$sdata.';'; + } # end of type eq 'sdata' + + elsif ($event->type eq 're') { + # End of record, the line reference shall be incremented. + $adds +=1; + if ($verb) { + # Check if this line of data appear on the same line + # than the previous tag. If not, append an end of line + # to the buffer. + if ($ref ne $verb_last_ref) { + $buffer .= "\n"; + $verb_last_ref = $ref; + } + $buffer .= "\n"; + } elsif ($lastchar ne ' ') { + $buffer .= " "; + } + $lastchar = ' '; + } #end of type eq 're' + + elsif ($event->type eq 'conforming') { + + } + + elsif ($event->type eq 'pi') { + my $pi = $event->data; + $buffer .= ""; + } + + else { + die wrap_ref_mod($refs[$parse->line], "po4a::sgml", + dgettext("po4a","Unknown SGML event type: %s"), + $event->type); + } + } + + # What to do after parsing + $self->pushline($buffer); + close(IN); + warn wrap_mod("po4a::sgml", + dgettext("po4a","Warning: nsgmls produced some errors. ". + "This is usually caused by po4a, which modifies the input ". + "and restores it afterwards, causing the input of nsgmls ". + "to be invalid. This is usually safe, but you may wish ". + "to verify the generated document with nsgmls -wno-valid. ". + "Continuing...")) + if ($? != 0 and $self->verbose() > 0); + unlink ($tmpfile) unless ($debug{'refs'} or $debug{'nsgmls'}); +} + +sub end_paragraph { + my ($self, $para,$ref, $type,$verb,$indent)= + (shift,shift,shift,shift,shift,shift); + my (@open)=@_; + die "Internal error: no paragraph to end here!!" + unless scalar @open; + + return unless defined($para) && length($para); + + if (($para =~ m/^\s*$/s) and (not $verb)) { + # In non-verbatim environments, a paragraph with only spaces is + # like an empty paragraph + return; + } + + # unprotect &entities; + $para =~ s/{PO4A-amp}/&/g; + # remove the name"\|\|" nsgmls added as attributes + $para =~ s/ name=\"\\\|\\\|\"//g; + $para =~ s/ moreinfo=\"none\"//g; + + # Extract the leading and trailing spaces. They will be restored only + # in verbatim environments. + my ($leading_spaces, $trailing_spaces) = ("", ""); + if ($verb) { + # In the verbatim mode, we can ignore empty lines, but not the + # leading spaces or tabulations. Otherwise, the PO will look + # weird. + if ($para =~ m/^(\s*\n)(.*?)(\s*)$/s) { + $leading_spaces = $1; + $para = $2; + $trailing_spaces = $3; + } + } else { + if ($para =~ m/^(\s*)(.*?)(\s*)$/s) { + $leading_spaces = $1; + $para = $2; + $trailing_spaces = $3; + } + } + + $para = $self->translate($para,$ref,$type, + 'wrap' => ! $verb, + 'wrapcol' => (75 - $indent)); + + if ($verb) { + $para = $leading_spaces.$para.$trailing_spaces; + } else { + $para =~ s/^\s+//s; + my $toadd=" " x ($indent+1); + $para =~ s/^/$toadd/mg; + $para .= "\n"; + } + + $self->pushline( $para ); +} + +1; + +=head1 AUTHORS + +This module is an adapted version of sgmlspl (SGML postprocessor for the +SGMLS and NSGMLS parsers) which was: + + Copyright (c) 1995 by David Megginson + +The adaptation for po4a was done by: + + Denis Barbier + Martin Quinson (mquinson#debian.org) + +=head1 COPYRIGHT AND LICENSE + + Copyright (c) 1995 by David Megginson + Copyright 2002, 2003, 2004, 2005 by SPI, inc. + +This program is free software; you may redistribute it and/or modify it +under the terms of GPL (see the COPYING file). Index: branches/JrCs/package/bin/po4a/COPYING =================================================================== --- branches/JrCs/package/bin/po4a/COPYING (revision 0) +++ branches/JrCs/package/bin/po4a/COPYING (revision 1843) @@ -0,0 +1,341 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Index: branches/JrCs/package/bin/po4a/README.translators =================================================================== --- branches/JrCs/package/bin/po4a/README.translators (revision 0) +++ branches/JrCs/package/bin/po4a/README.translators (revision 1843) @@ -0,0 +1,9 @@ +This package naturally propose to translate both its messages and its +documentation. The relevant po[t] files are in po/bin and po/pod +(respectively). + +In order to refresh them (sync them to the actual material to translate), +run from the top level: + + perl Build.PL + ./Build postats Index: branches/JrCs/package/bin/po4a/NEWS =================================================================== --- branches/JrCs/package/bin/po4a/NEWS (revision 0) +++ branches/JrCs/package/bin/po4a/NEWS (revision 1843) @@ -0,0 +1,571 @@ +po4a NEWS + +======================================================================= + +* Major changes in release 0.42 (UNRELEASED) + +Text: + * Add support for control files. + +======================================================================= + +* Major changes in release 0.41 (2010-12-01) + +po4a-updatepo: + * --previous flag was not passed to msgmerge + +po4a: + * Do no more generate backups for PO files. + * Fix the --srcdir option, master file was not found. + * Expand variables when reading @-prefixed addenda files. + +Text: + * Remove trailing newline in titles from PO files + +Packaging: + * Remove Makefile, all processing is performed by Build.PL + +======================================================================= + +* Major changes in release 0.40.2 (2010-11-30) + +documentation: + * Improve English style (following recommendations from man(7)) + +translations: + * Start of Danish translation + * Removal of Arabic translation, only one string was translated + * Updated Vietnamese translation + * Updated Slovenian translation + * Updated Basque translation + * Updated French translation + * Updated Japanese translation + * Updated Czech translation + * Updated German translation + * Updated Ukrainian translation + * Updated Esperanto translation + * Updated Estonian translation + * Updated Russian translation + +documentation translations: + * Updated Spanish translations + * Updated French translations + * Updated Japanese translations + * Updated Polish translations + +======================================================================= + +* Major changes in release 0.40.1 (2010-08-25) + +Po: + * Change header entry to be consistent with xgettext when creating + POT files: replace Content-Transfer-Encoding: ENCODING" by + "Content-Transfer-Encoding: 8bit\n" and add a Language field. + +documentation: + * Improve English style (proper casing, replace cvs by VCS, etc). + +translations: + * Updated French translations + * Updated Spanish translations + * Updated Japanese translations + * Updated Esperanto translations + * Updated Swedish translations + * Updated Russian translations + * Updated Estonian translations + * Updated Ukrainian translations + * Updated Czech translations + * Updated Portuguese translations + * Updated German translations + +Project resources: + * We migrated from CVS to SVN. All CVS history has been converted. + See http://svn.debian.org/viewsvn/po4a/ + The standard SVN layout is used (with top-level /trunk, /branches + and /tags directories), and the files to generate the website + (html/, po/html.cfg and po/www) are moved into a new /web + top-level directory. + +======================================================================= + +* Major changes in release 0.40 (2010-07-27) + +po4a-gettextize: + * When it fails, recode msgstr into current charset before + printing it. + +Text: + * Fix failures "Unknown option: copyright-holder" + +Man: + * Support font modifiers in the form \f(XX and \f[FONT-NAME] + +======================================================================= + +* Major changes in release 0.39 (2010-02-02) + +po4a + * New syntax for addenda, path may be preceded by modifiers. + +======================================================================= + +* Major changes in release 0.38 (2010-01-14) + +po4a + * Exit with an error if master file specified in a po4a configuration + file does not exist. + +po4a, po4a-updatepo: + * --previous is activated by default. + * Use --no-previous to support versions of gettext earlier than 0.16. + +Xml: + * Fix handling of multi-lines placeholder tags. + * New option addlang. + +Pod: + * Detect the encoding based on the input's =encoding line. + +======================================================================= + +* Major changes in release 0.37.1 (2009-11-22) + +po4a-build: + * Fix UTF8 handling and names of perl modules for section 3. + * Fix bug that caused translated manpages to be overwritten. + +======================================================================= + +* Major changes in release 0.37.0 (2009-11-20) + +po4a-build: + * New script for one-stop generation of untranslated and translated + documentation from DocBook XML and POD sources. + +translations: + * Updated Spanish translations. + +=============================================================================== +* Major changes in release 0.36.6 (2009-11-07) + +Text: + * Added options breaks and tabs. + +po4aman-display-po + * Fixed bashism. + +translations: + * Added Vietnamese translation + * Updated Czech translation + * Updated Spanish translation of the documentation + +=============================================================================== +* Major changes in release 0.36.5 (2009-09-10) + +Sgml: + * Fix detection of entities in the prolog. + +translations: + * Updated German translation + * Updated Portuguese translation + +=============================================================================== +* Major changes in release 0.36.4 (2009-08-30) + +po4a + * Added options --srcdir and --destdir. They permit to strip the base + directory for the input and output documents (in the config file and in + the references generated in the PO files). + +po4a-updatepo + * Added options --msgid-bugs-address, --copyright-holder, --package-name, + --package-version to control the generation of the PO header. + +translations: + * Updated Basque translation + * Updated Czech translation + * Updated Esperanto translation + * Improved Estonian translation. + * Updated French translation + * Updated Russian translation + * Updated Spanish translation. + * Updated Swedish translation. + +=============================================================================== +* Major changes in release 0.36.3 (2009-07-22) + +Bug fix release. +po4a-gettextize's new options were rejected by the modules. + +=============================================================================== +* Major changes in release 0.36.2 (2009-07-21) + +po4apod-display-po + * New script to display previews of POD translations. +po4a-gettextize + * Added options --msgid-bugs-address, --copyright-holder, --package-name, + --package-version to control the generation of the PO header. + +Text: + * Avoid the translation of some markups: title and horizontal rules. + * Improved Markdown support. +Xml: + * New option customtag for inline tags that should not be treated as a + tag (e.g. they do not need to be closed). +Wml: + * Fix handling of non ASCII input documents. + +=============================================================================== +* Major changes in release 0.36.1 (2009-04-05) + +TeX: + * Fix support for inline customization of separators. + * Fix support for double escapes, which should not introduce commands. +LaTeX: + * Added support for the tabularx environment. +Xml: + * Do not include commented out external entities (when includeexternal is + used). +Pod: + * Do not add an =encoding header if the encoding is empty. + +=============================================================================== +* Major changes in release 0.36 (2009-03-15) + +general: + * The "type:" comments in the PO files are now tagged as extracted + comments (starting with #.). This changes all the PO files generated by + po4a. Maintainers should just let these changes pass through. + Translator may want to remove the comment lines starting with '# type:' + as they will be duplicates with the '#. type:' comments. + +Xml: + * Placeholders are presented with a type and have a more valid XML + representation. This changes the PO files, but translations could be + updated automatically. + * Do not fail when the doctype does not match the expected one. Only + issue a warning. + * The tags and tagsonly options are deprecated. Use the + translated/untranslated and break/inline/placeholder options instead. + * Added foldattributes option. Useful to simplify strings and avoid typos + when attributes shall not be translated. +Man: + * Better handling of spaces in command arguments. +TeX: + * Included files are searched with kpsewhich instead of using TEXINPUTS + directly. + +=============================================================================== +* Major changes in release 0.35 (2009-02-10) + +po4a + * Added support for the [po_directory] command in the configuration file. + It permits to avoid listing the supported languages. Simply dropping a + new PO file should be sufficient. It should be preferred over the + po4a_langs and po4a_paths commands. +po4a-normalize: + * Added option -b, --blank to check which parts of a document are not + translated. +po4a-gettextize: + * Improved conflict handling: indicate the reference of the alternatives + when the same string has different translations. + +general: + * Added support for a nowrapi18n option in Locale::Po4a::Common in + order to use Locale::Po4a programatically. + +packaging: + * Manpages are generated in utf-8. This requires a recent Pod::Man with + support for the utf8 option. + +Docbook: + * Improved support for Docbook 5 and Docbook 4, based on the official + documentation of the Docbook tags. +Pod: + * Announce the encoding in the POD header. +Sgml: + * Add support for recursive inclusion. +Text: + * Added option asciidoc +Xhtml: + * Improvements for the tag. +xml: + * Fix the nodefault option. Derivative modules should use _default_tags + and _default_inline to define the default behavior of their + module-specific tags (instead of tags and inline). + * Speed improvements. + * Added support for placeholders. + +=============================================================================== +* Major changes in release 0.34 (2008-07-20) + +** New features +general: + * Do not end re-wrapped lines with a space. +halibut: + * Added support for the Halibut format. +sgml: + * Fix failures with big sgml documents ("broken pipe" received from + nsgmls -p). +text: + * Added support for the Markdown format, as used with Ikiwiki. + * Make sure files are not mixed together when gettextized at the same + time. +packaging: + * Fix build failures with old versions of Module::Build. + +=============================================================================== +* Major changes in release 0.33.3 (2008-04-02) + +po4a: + * Add options --package-name and --package-version (similar to xgettext's + options). + +translations: + * Actually ship Japanese translations. + +=============================================================================== +* Major changes in release 0.33.2 (2008-04-01) + +text: + * Added support for the fortunes format. + +translations: + * New Japanese translation. + * The manpages are generated in UTF-8. + +=============================================================================== +* Major changes in release 0.33.1 (2008-03-16) + +This is a bug fix release. + +man: + * Do not translate - to \- inside \*[...], \(.., \H'...', or \Z'...'. + +xml: + * Do not translate SSI comments by default. + +packaging: + * Fix the installation path of manpages and .mo files. + +=============================================================================== +* Major changes in release 0.33 (2008-03-03) + +Notes to packagers: Since 0.31, some tests in the sgml testsuite require +the docbook sgml DTD. If you run the testsuite at build time you must have +these DTD in your build dependencies or you must disable these tests +cases in the testsuite. + +** New features + general: Support for PO files with plural forms. + Po4a does not generate such PO files, but it can receive one in + input. In such case, po4a cannot choose between the (singular + and) plural forms. It will consider that msgstr[0] is the + translation of msgid and msgstr[1] is the translation of + msgid_plural, which may be wrong. Thus, a warning will be + issued if po4a is asked to translate the singular or plural + form of a message with plural forms. + + texinfo: Major changes. Tested on the elisp documentation. + + sgml: Fail if nsgmls cannot validate the input file. This can be turned + off with the "force" option. + + xml: New option "cpp" to support C preprocessor directives (this avoids + re-wrapping lines with preprocessor directives). + xml: New options "translated" and "untranslated" that should allow an + easier configuration of Xml (and derivative module) + xml: Avoid duplicated newlines at the end of lines of multi-lines + comments. + xml: Paragraphs which only consist in an inline tag are now extracted. + This makes a lot of string to available for translation in the PO + file. + docbook: Tested on the Docbook testsuite. Lots of tag added. + + po4a: Fix failures with perl 5.10. Thanks to Roderich Schupp + + + msguntypot: Fix handling of the comment of the PO header. + +=============================================================================== +* Major changes in release 0.32 (2007-08-15) + +** Security fix + Fix a symlink attack caused by the /tmp/gettextization.failed.po + temporary file. + (CVE-2007-4462) + +** Bug fixes + + sgml: The handling of newlines was broken in no-wrap sections in 0.31 + + xhtml: The module is now distributed as the other modules. + + texinfo: Fix infinite loop when a command parameter ends with \ + (as in @samp{\}) + +** New features + + xml: New option includeexternal to support external entities. + + texinfo: Added support for many commands and environment (see + changelog). + + xhtml: New option includessi, which adds supports for Server Side + Includes include element (). + + xml: New option ontagerror to control the behavior of the module in case + of error. This permits to support files that the module would + consider invalid otherwise. + +** Translations + + New translations (Bengali, Estonian, Croatian, Indonesian, Kannada, + Korean, Occitan, Uzbek, Simplified Chinese, Chinese from Hong Kong) and + many updates. + +=============================================================================== +* Major changes in release 0.31 (2007-05-07) + +** Dependencies + + po4a, + po4a-updatepo: New option --previous requires gettext 0.16. + +** Bug fixes + + general: Don't hang when running in background with redirected stdout. + Thanks to Jim Meyering. + +** New features + + general: po4a now uses timestamps to avoid re-generating a translation + if no changes are expected: if a translation is more recent + than its associated PO, master document, addenda or + configuration file, then there is no need to update it. For the + documents which do not pass the translation threshold, a + --stamp option was added to tell po4a to create files with a + .po4a-stamp extension (you can also create them manually). + This can save a lot of time when po4a knows that the + translation will not be generated because there were no changes + since the last po4a run. + + general: Beginning of a C extension. This provides speedup. Testers are + welcomed. + + po4a: New options: --msgid-bugs-address and --copyright-holder. + + po4a: Add new tag: [options] to set global options (i.e. for every + documents in the configuration file). + + po4a: Update translations based on modification times. Use timestamp to + avoid retrying generate uncompleted translations. + + man: New 'unknown_macros' option to specify the behavior of po4a with + unknown groff macros. + + man: Reset the configuration between two runs. This permits to define + different options for different files in a config file with the + opt:"..." parameters. + +=============================================================================== +* Major changes in release 0.30 (2007-01-05) + +** Bug fixes + + man: Recode the text which is skipped, like comments. + This kind of issue may also appear on other modules. + A better solution would be to always use UTF-8 internally. + + distribution: Some unit tests were missing. + Also, the dependencies have been simplified. + Locale::gettext, Text::WrapI18N, Term::ReadKey and SGMLS + are still recommended, but no more required. + The BibTex module is now distributed. + + sgml: The module should be more friendly with XML files. + + po4a: When po4a creates a new PO file, it now uses msginit. This may + change the header of created PO files. + + guide: Major update of the tag definitions. Thanks to Azamat H. + Hackimov. + + Po: use strftime instead of date because date is not available on + every platform. + + tests: rename the XML testsuite to SGML, since it was testing the Sgml + module, and add a new testsuite for the Xml module (it currently + tests the Guide module). + +** Translations + + Updated Russian translation. + +=============================================================================== +* Major changes in release 0.29 (2006-10-15) + +** New features + +** Bug fixes + + sgml: Remove the tags from the default categories when they are defined + by the user. This changes the behavior of the Sgml module's options. + + sgml: Better line references in the generated PO. + + sgml: Support for '/>' (empty XML tag closure) when an xml prologue is + found (). + + po4a: When po4a create new PO files, it now uses msginit instead of + copying the POT file. + +=============================================================================== +* Major changes in release 0.29 (2006-10-15) + +** New features + + New module for .INI files. Thanks to Costin Stroie. + + New module for BibTeX bibliographies. + + man: New mdoc option for stricter support of mdoc pages (NAME section + not translated). + + text: Support for underlined text. + + text: Support for bulleted paragraphs (can be deactivated with + -o nobullets). + +** Bug fixes + + man: Keep empty commented lines. + + man: Do not add spaces at the end of lines. + + man: Languages without non breaking space could not use question marks. + + sgml: Better support for verbatim sections, and consider + as verbatim. and