mirror of
https://github.com/LibreOffice/help.git
synced 2026-01-13 05:38:56 +00:00
Replacement done with
find . -name \*.xhp -print0 |xargs -0 -P 0 perl -CS -pi -e \
's#(<link[^>]*?) +name *="[^"]*" *( [^>]+|) *>#$1$2>#g'
(note some inconsistencies with space between name and = and also having
empty value, and some more complicated expression to also clear up
double space before/after the attribute)
translation files will be prepped with:
find */helpcontent2 -name \*.po -print0 |xargs -0 -P 0 perl -CS -pi -e \
$'s#(<link[^>]*?) +name=(?:\\\\"[^"]*\\\\"|\'[^\']*\') *( [^>]+|) *(/?>)#$1$2$3#g unless /^#/'
(note that not all languages use the " as quote character for the
attributes, but that also single quotes appera in the po file. Hence
the use of the shell $'string' syntax to be able to quote ' as \'
It also requires to quote the backslash, so that it needs to be escaped
once for the shell, then another time for perl. Also don't work on
obsolete strings (those are prefixed with #~ in the po files)
Also note that <link..></link> gets turned into <link ../> during
translation extraction (along with removal of the space between the
attribute name and the value), so the pattern needs to be slightly
different here)
Change-Id: I95e53a08e6b0095cd894109ea0de154cc4859d8f
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/143713
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
127 lines
11 KiB
XML
127 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<helpdocument version="1.0">
|
||
<!--
|
||
* This file is part of the LibreOffice project.
|
||
*
|
||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
*
|
||
-->
|
||
<meta>
|
||
<topic id="text/sbasic/python/Python_Platform">
|
||
<title id="tit" xml-lang="en-US">Python : Platform class</title>
|
||
<filename>/text/sbasic/python/python_platform.xhp</filename>
|
||
</topic>
|
||
</meta>
|
||
<body>
|
||
<bookmark branch="index" id="N0508">
|
||
<bookmark_value>Platform;isLinux</bookmark_value>
|
||
<bookmark_value>Platform;isMacOsX</bookmark_value>
|
||
<bookmark_value>Platform;isWindows</bookmark_value>
|
||
<bookmark_value>Platform;ComputerName</bookmark_value>
|
||
<bookmark_value>Platform;OSName</bookmark_value>
|
||
<bookmark_value>API;ConfigurationAccess</bookmark_value>
|
||
<bookmark_value>Tools;GetRegistryContent</bookmark_value>
|
||
</bookmark>
|
||
<h1 id="N0509"><variable id="pythonplatform"><link href="text/sbasic/python/python_platform.xhp">Identifying the operating system</link></variable></h1>
|
||
<paragraph role="paragraph" id="N0510">Identifying the operating system can be performed with Python or Basic language.</paragraph>
|
||
<note id="N0511">ComputerName property is solely available for Windows. Basic calls to Python macros help overcome %PRODUCTNAME Basic limitations.</note>
|
||
<h2 id="N0512">Using a Python class:</h2>
|
||
<pycode>
|
||
<paragraph role="pycode" localize="false" id="N05130">""" the_module """</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0513">import os, platform</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0514">class Platform():</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0515"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0516"> def ComputerName(self): return platform.node()</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0517"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0518"> def DirSeparator(self): return os.sep</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0519"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0520"> def isLinux(self): return (self.OSName=='Linux')</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0521"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0522"> def isMacOSX(self): return (self.OSName=='Darwin')</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0523"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0524"> def isWindows(self): return (self.OSName=='Windows')</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0525"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0526"> def OSName(self): return platform.system()</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0527"> @property</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0528"> def PathDelimiter(self): return os.pathsep</paragraph>
|
||
</pycode>
|
||
<h2 id="N0529">Using a Basic classmodule:</h2>
|
||
<tip id="NO529b">%PRODUCTNAME Basic lacks MacOS X native recognition. Platform identification is possible using %PRODUCTNAME Application Programming Interface (API).</tip>
|
||
<bascode>
|
||
<paragraph role="bascode" localize="false" id="N0530">Option Compatible</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0531">Option ClassModule</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0532">Option Explicit</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0533"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0534">Public Property Get ComputerName As String</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0535"> If isWindows Then ComputerName = Environ("ComputerName")</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0536">End Property ' Platform.ComputerName</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0537"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0538">Public Property Get DirSeparator As String</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0539"> DirSeparator = GetPathSeparator()</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0540">End Property ' Platform.DirSeparator</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0541"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0542">Public Property Get IsLinux As Boolean</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0543"> isLinux = ( GetGUIType()=4 ) ' Applies to macOS as well </paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0544">End Property ' Platform.isLinux</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0545"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="M0542">Public Property Get IsMacOSX As Boolean</paragraph>
|
||
<paragraph role="bascode" localize="false" id="M0543"> isMacOSX = ( OSName="MAC" )</paragraph>
|
||
<paragraph role="bascode" localize="false" id="M0544">End Property ' Platform.isMacOSX</paragraph>
|
||
<paragraph role="bascode" localize="false" id="M0545"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0546">Public Property Get IsWindows As Boolean</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0547"> isWindows = ( GetGUIType()=1 )</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0548">End Property ' Platform.isWindows</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0549"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0550">Public Property Get OSName As String</paragraph>
|
||
<paragraph role="bascode" xml-lang="en-US" id="N0451"> ' Return platform name as "MAC", "UNIX", "WIN"</paragraph>
|
||
<paragraph role="bascode" xml-lang="en-US" id="N0551"> ' Inferred from "Tools.UCB.ShowHelperDialog" function</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0552"> With GlobalScope.Basiclibraries</paragraph>
|
||
<paragraph role="bascode" localize="false" id="M0552"> If Not .IsLibraryLoaded("Tools") Then .LoadLibrary("Tools")</paragraph>
|
||
<paragraph role="bascode" localize="false" id="O0552"> End With</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0553"> Dim keyNode As Object ' com.sun.star.configuration.ConfigurationAccess</paragraph>
|
||
<paragraph role="bascode" localize="false" id="M0553"> keyNode = Tools.Misc.GetRegistryKeyContent("org.openoffice.Office.Common/Help")</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0554"> OSName = keyNode.GetByName("System")</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0555">End Property ' Platform.OSName</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0556"></paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0557">Public Property Get PathDelimiter As String</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0559"> Select Case OSName</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0560"> Case "MAC", "UNIX" : PathDelimiter = ":"</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0561"> Case "WIN" : PathDelimiter = ";"</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0562"> End Select</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0563">End Property ' Platform.PathDelimiter</paragraph>
|
||
</bascode>
|
||
<h2 id="N0564">Examples:</h2>
|
||
<paragraph role="paragraph" id="N0565">With Python</paragraph>
|
||
<paragraph role="paragraph" localize="false" id="N0566"><literal>>>> from < the_module > import Platform</literal></paragraph>
|
||
<paragraph role="paragraph" xml-lang="en-US" id="N0567"><literal>>>> print(Platform().isMacOSX) # object property</literal></paragraph>
|
||
<paragraph role="paragraph" localize="false" id="N0568"><literal>True</literal></paragraph>
|
||
<paragraph role="paragraph" xml-lang="en-US" id="N0569"><literal>>>> input(Platform().OSName) # object property</literal></paragraph>
|
||
<paragraph role="paragraph" localize="false" id="N0570"><literal>Darwin</literal></paragraph>
|
||
<paragraph role="paragraph" id="N0571">
|
||
From <menuitem>Tools – Macros - Run Macro...</menuitem> menu.</paragraph>
|
||
<pycode>
|
||
<paragraph role="pycode" localize="false" id="N0572">from < the_module > import Platform</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0573">import screen_io as ui</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0574">p = Platform()</paragraph>
|
||
<paragraph role="pycode" localize="false" id="N0575">ui.MsgBox(''.join(['isMacOS: ',str(p.isMacOSX)]),0,p.OSName)</paragraph>
|
||
</pycode>
|
||
<paragraph role="paragraph" id="N0576">With %PRODUCTNAME Basic</paragraph>
|
||
<bascode>
|
||
<paragraph role="bascode" localize="false" id="N0577">Sub Platform_example()</paragraph>
|
||
<paragraph role="bascode" xml-lang="en-US" id="N0578"> Dim p As New Platform ' instance of Platform class</paragraph>
|
||
<paragraph role="bascode" xml-lang="en-US" id="N0579"> MsgBox p.isLinux ' object property</paragraph>
|
||
<paragraph role="bascode" xml-lang="en-US" id="N0580"> Print p.isWindows, p.OSName ' object properties</paragraph>
|
||
<paragraph role="bascode" localize="false" id="N0581">End Sub ' Platform_example</paragraph>
|
||
</bascode>
|
||
<section id="relatedtopics">
|
||
<embed href="text/sbasic/python/python_screen.xhp#ioscreen"/>
|
||
<embed href="text/sbasic/shared/03132100.xhp#getguitype2"/>
|
||
<embed href="text/sbasic/shared/GetPathSeparator.xhp#getpathseparator01"/>
|
||
<embed href="text/sbasic/guide/basic_2_python.xhp#basic2python"/>
|
||
<embed href="text/sbasic/python/python_examples.xhp#pythonexamples2"/>
|
||
<embed href="text/sbasic/python/main0000.xhp#pythonscriptshelp"/>
|
||
</section>
|
||
</body>
|
||
</helpdocument> |