Activity bundles/lang-ko: Difference between revisions
No edit summary |
(→번들 구조) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
ricerletole |
|||
{{OLPC}} |
{{OLPC}} |
||
{{Translation | lang = ko | source = Activity bundles| version = 41791}} |
{{Translation | lang = ko | source = Activity bundles| version = 41791}} |
||
== |
== 소개== |
||
[[Sugar|슈가]] 환경에서 모든 액티비티는 자기 포함 self-contained '''번들'''로 포장 (패키지)됩니다. 번들은 해당 액티비티가 실행에 필요한 자원과 실행가능한 코드 (시스템이 제공하는 기본 라이버러리 외)를 포함합니다. 기본 시스템이 제공하지 않는 모든 자원과 실행가능한 코드는 해당 번들 내에 패키지되어야 합니다. |
|||
[[Sugar|ìê°]] íê²½ìì 모ë ì¡í°ë¹í°ë ì기 í¬í¨ self-contained '''ë²ë¤'''ë¡ í¬ì¥ (í¨í¤ì§)ë©ëë¤. ë²ë¤ì í´ë¹ ì¡í°ë¹í°ê° ì¤íì íìí ììê³¼ ì¤íê°ë¥í ì½ë (ìì¤í
ì´ ì ê³µíë 기본 ë¼ì´ë²ë¬ë¦¬ ì¸)를 í¬í¨í©ëë¤. 기본 ìì¤í
ì´ ì ê³µíì§ ìë 모ë ììê³¼ ì¤íê°ë¥í ì½ëë í´ë¹ ë²ë¤ ë´ì í¨í¤ì§ëì´ì¼ í©ëë¤. |
|||
; |
;참조: 일반 사항은 [[OLPC Bitfrost|OLPC 비트프로스트]]과 [[OLPC Bitfrost#Software installation|소프트웨어 설치]] 섹션을 참조 |
||
== |
== 이유== |
||
액티비티는 어린이들 사이에 공유되도록 의도됩니다. 어떤 어린이에게 특정 액티비티가 없다면, 그것은 그 또는 그녀가 공유 액티비티에 참여할 때 해당 어린이에게 자동적으로 이전됩니다. 자기 포함 self-contained 속에 액티비티들을 패키지함으로써, 공유, 설치, 제거, 및 백업을 쉽게 수행할 수 있습니다. |
|||
ì¡í°ë¹í°ë ì´ë¦°ì´ë¤ ì¬ì´ì ê³µì ëëë¡ ìëë©ëë¤. ì´ë¤ ì´ë¦°ì´ìê² í¹ì ì¡í°ë¹í°ê° ìë¤ë©´, ê·¸ê²ì ê·¸ ëë ê·¸ë
ê° ê³µì ì¡í°ë¹í°ì ì°¸ì¬í ë í´ë¹ ì´ë¦°ì´ìê² ìëì ì¼ë¡ ì´ì ë©ëë¤. ì기 í¬í¨ self-contained ìì ì¡í°ë¹í°ë¤ì í¨í¤ì§í¨ì¼ë¡ì¨, ê³µì , ì¤ì¹, ì ê±°, ë° ë°±ì
ì ì½ê² ìíí ì ììµëë¤. |
|||
== |
== 위치 == |
||
액티비티는 사용자 행동에 대응하여 [[Sugar|슈가]]에 의해 자동적으로 설치 및 제거됩니다. 슈가는 스스로 선택한 디렉토리 내에 액티비티들을 위치시키며, 액티비티는 특정 위치에 설치될 것을 기대할 수 없고, 경로가 필요한 경우 상대 경로를 이용해야 합니다 (가령, 공유된 라이버러리 링키지의 경우, 이미지, 사운드 등의 액티비티 리소스). 또한, 해당 번들의 베이스 디렉토리 이름이 계속 동일할 것으로 기대해서도 안됩니다. 슈가는 번들 충돌을 막기 위해 언제라도 액티비티 번들 베이스 디렉토리의 이름을 바꿀 수 있습니다. |
|||
ì¡í°ë¹í°ë ì¬ì©ì íëì ëìíì¬ [[Sugar|ìê°]]ì ìí´ ìëì ì¼ë¡ ì¤ì¹ ë° ì ê±°ë©ëë¤. ìê°ë ì¤ì¤ë¡ ì íí ëë í 리 ë´ì ì¡í°ë¹í°ë¤ì ìì¹ìí¤ë©°, ì¡í°ë¹í°ë í¹ì ìì¹ì ì¤ì¹ë ê²ì 기ëí ì ìê³ , ê²½ë¡ê° íìí ê²½ì° ìë ê²½ë¡ë¥¼ ì´ì©í´ì¼ í©ëë¤ (ê°ë ¹, ê³µì ë ë¼ì´ë²ë¬ë¦¬ ë§í¤ì§ì ê²½ì°, ì´ë¯¸ì§, ì¬ì´ë ë±ì ì¡í°ë¹í° 리ìì¤). ëí, í´ë¹ ë²ë¤ì ë² ì´ì¤ ëë í 리 ì´ë¦ì´ ê³ì ëì¼í ê²ì¼ë¡ 기ëí´ìë ìë©ëë¤. ìê°ë ë²ë¤ 충ëì ë§ê¸° ìí´ ì¸ì ë¼ë ì¡í°ë¹í° ë²ë¤ ë² ì´ì¤ ëë í 리ì ì´ë¦ì ë°ê¿ ì ììµëë¤. |
|||
현재 jhbuild 슈가는 XDG_DATA_DIRS의 "액티비티" 서브폴더에서 번들을 찾습니다. 현재는 jhbuild 빌드 폴더의 /usr/share/activities and the usr/share/activities 서브폴더입니다. |
|||
슈가는 해당 액티비티가 설치 또는 제거될 때, D-Bus 서비스 활성화를 통해, 해당 액티비티를 시동하는데 필요한 .service 파일을 자동적으로 생성 및 제거합니다. |
|||
ìê°ë í´ë¹ ì¡í°ë¹í°ê° ì¤ì¹ ëë ì ê±°ë ë, D-Bus ìë¹ì¤ íì±í를 íµí´, í´ë¹ ì¡í°ë¹í°ë¥¼ ìëíëë° íìí .service íì¼ì ìëì ì¼ë¡ ìì± ë° ì ê±°í©ëë¤. |
|||
액티비티는 해당 액티비티 번들 그 자체 속에 로컬 스테이트 또는 프레퍼런스를 결코 저장해서는 안됩니다. 이것들은 SUGAR_PROFILE 환경 변수를 통해 가용한, 사용자의 슈가 프로파일 내 액티비티-특정 디렉토리에 항상 저장되어야 합니다. |
|||
ì¡í°ë¹í°ë í´ë¹ ì¡í°ë¹í° ë²ë¤ ê·¸ ìì²´ ìì ë¡ì»¬ ì¤í
ì´í¸ ëë íë í¼ë°ì¤ë¥¼ ê²°ì½ ì ì¥í´ìë ìë©ëë¤. ì´ê²ë¤ì SUGAR_PROFILE íê²½ ë³ì를 íµí´ ê°ì©í, ì¬ì©ìì ìê° íë¡íì¼ ë´ ì¡í°ë¹í°-í¹ì ëë í 리ì íì ì ì¥ëì´ì¼ í©ëë¤. |
|||
파이선 개발자는 아래와 같이 프로파일 폴더를 얻을 수도 있습니다: |
|||
íì´ì ê°ë°ìë ìëì ê°ì´ íë¡íì¼ í´ë를 ì»ì ìë ììµëë¤: |
|||
import sugar.env |
import sugar.env |
||
profile_path = sugar.env.get_profile_path() |
profile_path = sugar.env.get_profile_path() |
||
== |
== 번들 구조 == |
||
액티비티 번들은 디렉토리이며, ".activity"로 끝나는 이름을 가집니다. 각 액티비티 번들은, 'activity'로 불리든 서브 디렉토리 내에서, "activity.info" 파일과 아래의 특정한 포맷을 가져야만 합니다. 가령: |
|||
ì¡í°ë¹í° ë²ë¤ì ëë í 리ì´ë©°, ".activity"ë¡ ëëë ì´ë¦ì ê°ì§ëë¤. ê° ì¡í°ë¹í° ë²ë¤ì, 'activity'ë¡ ë¶ë¦¬ë ìë¸ ëë í 리 ë´ìì, "activity.info" íì¼ê³¼ ìëì í¹ì í í¬ë§·ì ê°ì ¸ì¼ë§ í©ëë¤. ê°ë ¹: |
|||
Web.activity/ |
Web.activity/ |
||
locale/ |
locale/ |
||
Line 35: | Line 34: | ||
icons/ |
icons/ |
||
; 액티비티 |
|||
; ì¡í°ë¹í° |
|||
All metadata about the activity is organized in this subdirectory. |
All metadata about the activity is organized in this subdirectory. |
||
해당 액티비티에 관한 모든 메타데이터는 이 서브디렉토리에 조직됩니다. |
|||
í´ë¹ ì¡í°ë¹í°ì ê´í 모ë ë©íë°ì´í°ë ì´ ìë¸ëë í 리ì ì¡°ì§ë©ëë¤. |
|||
; 아이콘 |
|||
; ìì´ì½ |
|||
해당 액티비티에 의해 이용되는 아이콘을 포함합니다. 슈가.액티비티 파이선 패키지를 이용할 때, 그 경로는 자동적으로 디톨트 [http://www.pygtk.org/docs/pygtk/class-gtkicontheme.html gtk icon theme]에 추가됩니다. |
|||
== .info íì¼ í¬ë§· == |
|||
== .info 파일 포맷 == |
|||
⚫ | |||
⚫ | |||
[Activity] |
[Activity] |
||
Line 53: | Line 53: | ||
mime_types = application/pdf;image/tiff |
mime_types = application/pdf;image/tiff |
||
유효한 프라퍼티의 자세한 설명은: |
|||
ì í¨í íë¼í¼í°ì ìì¸í ì¤ëª
ì: |
|||
[Activity] |
[Activity] |
||
: activity.info 파일은 [Activity]로 시작해야만 하며, 파일의 첫번째 라인에 위치해야 합니다. |
|||
: activity.info íì¼ì [Activity]ë¡ ììí´ì¼ë§ íë©°, íì¼ì 첫ë²ì§¸ ë¼ì¸ì ìì¹í´ì¼ í©ëë¤. |
|||
name = Web |
name = Web |
||
: 이 것은 슈가가 해당 액티비티를 언급할 때 표시되는 이름입니다. 괄호 언어 코드가 없는 'name' 키는 해당 액티비티의 "en_US" 지역화 이름입니다. activity.info 파일은 이 키를 가져야만 합니다. |
|||
: ì´ ê²ì ìê°ê° í´ë¹ ì¡í°ë¹í°ë¥¼ ì¸ê¸í ë íìëë ì´ë¦ì
ëë¤. ê´í¸ ì¸ì´ ì½ëê° ìë 'name' í¤ë í´ë¹ ì¡í°ë¹í°ì "en_US" ì§ìí ì´ë¦ì
ëë¤. activity.info íì¼ì ì´ í¤ë¥¼ ê°ì ¸ì¼ë§ í©ëë¤. |
|||
activity_version = 1 |
activity_version = 1 |
||
: 각 activity.info 파일은 "activity_version" 키를 가져야 합니다. 이 버전은 단일 양의 정수이며, 1~9 사이의 문자를 가질 수만 있습니다. 보다 큰 버전은 "newer"로 간주됩니다. 이 키에 할당된 값은 해당 액티비티에 대해 '''opaque'''로 간주됩니다; 이 액티비티의 유일한 요구는 새로운 액티비티 빌드가 반드시 더 커야 한다는 점이빈다. |
|||
: ê° activity.info íì¼ì "activity_version" í¤ë¥¼ ê°ì ¸ì¼ í©ëë¤. ì´ ë²ì ì ë¨ì¼ ìì ì ìì´ë©°, 1~9 ì¬ì´ì 문ì를 ê°ì§ ìë§ ììµëë¤. ë³´ë¤ í° ë²ì ì "newer"ë¡ ê°ì£¼ë©ëë¤. ì´ í¤ì í ë¹ë ê°ì í´ë¹ ì¡í°ë¹í°ì ëí´ '''opaque'''ë¡ ê°ì£¼ë©ëë¤; ì´ ì¡í°ë¹í°ì ì ì¼í ì구ë ìë¡ì´ ì¡í°ë¹í° ë¹ëê° ë°ëì ë ì»¤ì¼ íë¤ë ì ì´ë¹ë¤. |
|||
host_version = 1 |
host_version = 1 |
||
Line 81: | Line 81: | ||
show_launcher = yes |
show_launcher = yes |
||
: 이 키는 선택적입니다. 없거나, "yes" 값을 가지면, 해당 액티비티는 [[Sugar|슈가]] 패널 론처 내에 그 자신의 아이콘으로 표시되며, 유효한 'icon' key/value pair가 요구됩니다. "no" 값이 명시되면, 해당 액티비티는 |
|||
: ì´ í¤ë ì íì ì
ëë¤. ìê±°ë, "yes" ê°ì ê°ì§ë©´, í´ë¹ ì¡í°ë¹í°ë [[Sugar|ìê°]] í¨ë ë¡ ì² ë´ì ê·¸ ìì ì ìì´ì½ì¼ë¡ íìëë©°, ì í¨í 'icon' key/value pairê° ì구ë©ëë¤. "no" ê°ì´ ëª
ìëë©´, í´ë¹ ì¡í°ë¹í°ë |
|||
[[Sugar|슈가]] 패널 론처 내에 나타나지 않으며, 'icon' 가 요구되지 않습니다. |
|||
[[Sugar|ìê°]] í¨ë ë¡ ì² ë´ì ëíëì§ ìì¼ë©°, 'icon' ê° ì구ëì§ ììµëë¤. |
|||
== 액티비티 이름 로컬리제이션/번역 == |
|||
== ì¡í°ë¹í° ì´ë¦ ë¡ì»¬ë¦¬ì ì´ì
/ë²ì == |
|||
지역화된 데이터는 지역 디렉토리에 있습니다. 각 언어는 해당 언어의 ISO 코드에 따라 명명된 <u>separate</u> 디렉토리 내에 자신의 지역화 키를 보관합니다. 'activity.info' 파일로부터의 지역화 키는 그 디렉토리의 'activity.linfo' 파일에 보관됩니다. 가령, 독일-지역화 독일어 (스위스-지역화 독일어와 비교해서) 번역은 'de_DE/activity.linfo' 파일에 보관됩니다. |
|||
ì§ìíë ë°ì´í°ë ì§ì ëë í 리ì ììµëë¤. ê° ì¸ì´ë í´ë¹ ì¸ì´ì ISO ì½ëì ë°ë¼ ëª
ëª
ë <u>separate</u> ëë í 리 ë´ì ìì ì ì§ìí í¤ë¥¼ ë³´ê´í©ëë¤. 'activity.info' íì¼ë¡ë¶í°ì ì§ìí í¤ë ê·¸ ëë í 리ì 'activity.linfo' íì¼ì ë³´ê´ë©ëë¤. ê°ë ¹, ë
ì¼-ì§ìí ë
ì¼ì´ (ì¤ìì¤-ì§ìí ë
ì¼ì´ì ë¹êµí´ì) ë²ìì 'de_DE/activity.linfo' íì¼ì ë³´ê´ë©ëë¤. |
|||
Example.activity/ |
Example.activity/ |
||
Line 104: | Line 104: | ||
Keys in the languague-specific '.linfo' files selectively override keys from the 'activity.info' file; if a key is not present in the '.linfo' file the value from the 'activity.info' file is used instead. |
Keys in the languague-specific '.linfo' files selectively override keys from the 'activity.info' file; if a key is not present in the '.linfo' file the value from the 'activity.info' file is used instead. |
||
== |
== 패키지== |
||
액티비티 번들은 ".xo" 익스텐션이 있는 짚 파일로 패키지되어야 합니다. |
|||
ì¡í°ë¹í° ë²ë¤ì ".xo" ìµì¤í
ì
ì´ ìë ì§ íì¼ë¡ í¨í¤ì§ëì´ì¼ í©ëë¤. |
|||
== 기타 기술 비교 == |
|||
== 기í 기ì ë¹êµ == |
|||
액티비티 번들은 OS X 번들 또는 자바 JAR 파일과 유사합니다; 독립적으로 이동 가능한 단일 디렉토리 내에 귀하가 필요로 하는 모든 것을 캡슐화하는 단순한 매커니즘. |
|||
ì¡í°ë¹í° ë²ë¤ì OS X ë²ë¤ ëë ìë° JAR íì¼ê³¼ ì ì¬í©ëë¤; ë
립ì ì¼ë¡ ì´ë ê°ë¥í ë¨ì¼ ëë í 리 ë´ì ê·íê° íìë¡ íë 모ë ê²ì 캡ìííë ë¨ìí 매커ëì¦. |
|||
오토패키지 autopackage와는 다른데, 이것은 패키지 관리 시스템이 아닙니다. 중앙 데이터베이스도 없고, install/uninstall에서 실행되는 스크립트도 없습니다. 또한 특정한 파일 포맷도 없습니다. |
|||
ì¤í í¨í¤ì§ autopackageìë ë¤ë¥¸ë°, ì´ê²ì í¨í¤ì§ ê´ë¦¬ ìì¤í
ì´ ìëëë¤. ì¤ì ë°ì´í°ë² ì´ì¤ë ìê³ , install/uninstallìì ì¤íëë ì¤í¬ë¦½í¸ë ììµëë¤. ëí í¹ì í íì¼ í¬ë§·ë ììµëë¤. |
|||
klik과 비교할 때, 해당 패키지 내에 로컬 유닉스 디렉토리 구조를 복제하려는 의도가 아닙니다; 해당 액티비티는 여전히 시스템이 제공하는 바이너리 등에 링크됩니다. 아키브를 압축하여 네트워크로 보내는 것 외에는 서버 사이드 컴포넌트도 없으며, 액티비티들이 자기 포함 self-contained되므로, 디펜던시 체킹도 없습니다. |
|||
klikê³¼ ë¹êµí ë, í´ë¹ í¨í¤ì§ ë´ì ë¡ì»¬ ì ëì¤ ëë í 리 구조를 ë³µì íë ¤ë ìëê° ìëëë¤; í´ë¹ ì¡í°ë¹í°ë ì¬ì í ìì¤í
ì´ ì ê³µíë ë°ì´ë리 ë±ì ë§í¬ë©ëë¤. ìí¤ë¸ë¥¼ ìì¶íì¬ ë¤í¸ìí¬ë¡ ë³´ë´ë ê² ì¸ìë ìë² ì¬ì´ë ì»´í¬ëí¸ë ìì¼ë©°, ì¡í°ë¹í°ë¤ì´ ì기 í¬í¨ self-containedëë¯ë¡, ëíëì ì²´í¹ë ììµëë¤. |
|||
[[Category:API]] |
[[Category:API]] |
||
[[Category:Sugar]] |
[[Category:Sugar]] |
Latest revision as of 02:25, 8 August 2009
소개
슈가 환경에서 모든 액티비티는 자기 포함 self-contained 번들로 포장 (패키지)됩니다. 번들은 해당 액티비티가 실행에 필요한 자원과 실행가능한 코드 (시스템이 제공하는 기본 라이버러리 외)를 포함합니다. 기본 시스템이 제공하지 않는 모든 자원과 실행가능한 코드는 해당 번들 내에 패키지되어야 합니다.
- 참조
- 일반 사항은 OLPC 비트프로스트과 소프트웨어 설치 섹션을 참조
이유
액티비티는 어린이들 사이에 공유되도록 의도됩니다. 어떤 어린이에게 특정 액티비티가 없다면, 그것은 그 또는 그녀가 공유 액티비티에 참여할 때 해당 어린이에게 자동적으로 이전됩니다. 자기 포함 self-contained 속에 액티비티들을 패키지함으로써, 공유, 설치, 제거, 및 백업을 쉽게 수행할 수 있습니다.
위치
액티비티는 사용자 행동에 대응하여 슈가에 의해 자동적으로 설치 및 제거됩니다. 슈가는 스스로 선택한 디렉토리 내에 액티비티들을 위치시키며, 액티비티는 특정 위치에 설치될 것을 기대할 수 없고, 경로가 필요한 경우 상대 경로를 이용해야 합니다 (가령, 공유된 라이버러리 링키지의 경우, 이미지, 사운드 등의 액티비티 리소스). 또한, 해당 번들의 베이스 디렉토리 이름이 계속 동일할 것으로 기대해서도 안됩니다. 슈가는 번들 충돌을 막기 위해 언제라도 액티비티 번들 베이스 디렉토리의 이름을 바꿀 수 있습니다.
현재 jhbuild 슈가는 XDG_DATA_DIRS의 "액티비티" 서브폴더에서 번들을 찾습니다. 현재는 jhbuild 빌드 폴더의 /usr/share/activities and the usr/share/activities 서브폴더입니다.
슈가는 해당 액티비티가 설치 또는 제거될 때, D-Bus 서비스 활성화를 통해, 해당 액티비티를 시동하는데 필요한 .service 파일을 자동적으로 생성 및 제거합니다.
액티비티는 해당 액티비티 번들 그 자체 속에 로컬 스테이트 또는 프레퍼런스를 결코 저장해서는 안됩니다. 이것들은 SUGAR_PROFILE 환경 변수를 통해 가용한, 사용자의 슈가 프로파일 내 액티비티-특정 디렉토리에 항상 저장되어야 합니다.
파이선 개발자는 아래와 같이 프로파일 폴더를 얻을 수도 있습니다:
import sugar.env profile_path = sugar.env.get_profile_path()
번들 구조
액티비티 번들은 디렉토리이며, ".activity"로 끝나는 이름을 가집니다. 각 액티비티 번들은, 'activity'로 불리든 서브 디렉토리 내에서, "activity.info" 파일과 아래의 특정한 포맷을 가져야만 합니다. 가령:
Web.activity/ locale/ de_DE/ activity.linfo zh_CN/ activity.linfo activity/ activity.info activity-web.svg icons/
- 액티비티
All metadata about the activity is organized in this subdirectory. 해당 액티비티에 관한 모든 메타데이터는 이 서브디렉토리에 조직됩니다.
- 아이콘
해당 액티비티에 의해 이용되는 아이콘을 포함합니다. 슈가.액티비티 파이선 패키지를 이용할 때, 그 경로는 자동적으로 디톨트 gtk icon theme에 추가됩니다.
.info 파일 포맷
.info 파일은 key/value pair 포맷을 따르는데, fd.o desktop entry spec와 유사하지만, 일치하지는 않습니다. 예로써:
[Activity] name = Web activity_version = 1 host_version = 1 service_name = com.redhat.Sugar.BrowserActivity icon = activity-web class = browseractivity.BrowserActivity mime_types = application/pdf;image/tiff
유효한 프라퍼티의 자세한 설명은:
[Activity]
- activity.info 파일은 [Activity]로 시작해야만 하며, 파일의 첫번째 라인에 위치해야 합니다.
name = Web
- 이 것은 슈가가 해당 액티비티를 언급할 때 표시되는 이름입니다. 괄호 언어 코드가 없는 'name' 키는 해당 액티비티의 "en_US" 지역화 이름입니다. activity.info 파일은 이 키를 가져야만 합니다.
activity_version = 1
- 각 activity.info 파일은 "activity_version" 키를 가져야 합니다. 이 버전은 단일 양의 정수이며, 1~9 사이의 문자를 가질 수만 있습니다. 보다 큰 버전은 "newer"로 간주됩니다. 이 키에 할당된 값은 해당 액티비티에 대해 opaque로 간주됩니다; 이 액티비티의 유일한 요구는 새로운 액티비티 빌드가 반드시 더 커야 한다는 점이빈다.
host_version = 1
- Each activity.info file must have a "host_version" key. The version is a single positive integer, and may only contain the characters 1 through 9. This specifies the version of the Sugar environment which the activity is compatible with. (fixme: need to specify sugar versions somewhere. Obviously we start with 1.)
service_name = com.redhat.Sugar.BrowserActivity
- This is the activity's dbus service name. It is required. It is also used as the activity's default service type when the activity is shared on the network. To determine this type, the distince parts (separated by the '.' character) are reversed, any '.' is replaced by a '_' character, and the type is prefixed by a '_' character. So in this example, the default service type would be "_BrowserActivity_Sugar_redhat_com".
icon = activity-web
- It points to the activity's icon. The icon is looked up in the activity bundle's base directory. It cannot contain a path. When searching for the icon in the activity bundle's base directory, only an file with the icon name and the extension '.svg' will be looked for.
exec = myfactory myoptions
- The exec key is used when Sugar installs the activity. It specifies the executable which Sugar runs to start the activity's factory service. A factory service spawns instances of the actual activity. The executable name must be a path relative to the bundle's top level directory. Environment variables given on the exec line are expanded, in particular, $SUGAR_BUNDLE_PATH expands to the absolute path of the bundle directory.
class = browseractivity.BrowserActivity
- For Python-based activities, it's not necessary to write a custom factory since a generic one is provided with Sugar. Use this attribute to specify the main Activity class. When a class is specified the exec attribute is ignored.
mime_types = application/pdf;image/tiff
- List of mime types supported by the activity, separated by semi colons. It's used when opening a file from the web or to present to the user a list of activities which can open a certain journal object.
show_launcher = yes
- 이 키는 선택적입니다. 없거나, "yes" 값을 가지면, 해당 액티비티는 슈가 패널 론처 내에 그 자신의 아이콘으로 표시되며, 유효한 'icon' key/value pair가 요구됩니다. "no" 값이 명시되면, 해당 액티비티는
슈가 패널 론처 내에 나타나지 않으며, 'icon' 가 요구되지 않습니다.
액티비티 이름 로컬리제이션/번역
지역화된 데이터는 지역 디렉토리에 있습니다. 각 언어는 해당 언어의 ISO 코드에 따라 명명된 separate 디렉토리 내에 자신의 지역화 키를 보관합니다. 'activity.info' 파일로부터의 지역화 키는 그 디렉토리의 'activity.linfo' 파일에 보관됩니다. 가령, 독일-지역화 독일어 (스위스-지역화 독일어와 비교해서) 번역은 'de_DE/activity.linfo' 파일에 보관됩니다.
Example.activity/ exampleactivity.py activity/ activity.info locale/ de_DE/ activity.linfo de_CH/ activity.linfo
At this time, only translations for the 'name' key from the 'activity.info' file is supported. A localized 'de_DE/activity.linfo' file would look like:
[Activity] name = Web
Keys in the languague-specific '.linfo' files selectively override keys from the 'activity.info' file; if a key is not present in the '.linfo' file the value from the 'activity.info' file is used instead.
패키지
액티비티 번들은 ".xo" 익스텐션이 있는 짚 파일로 패키지되어야 합니다.
기타 기술 비교
액티비티 번들은 OS X 번들 또는 자바 JAR 파일과 유사합니다; 독립적으로 이동 가능한 단일 디렉토리 내에 귀하가 필요로 하는 모든 것을 캡슐화하는 단순한 매커니즘.
오토패키지 autopackage와는 다른데, 이것은 패키지 관리 시스템이 아닙니다. 중앙 데이터베이스도 없고, install/uninstall에서 실행되는 스크립트도 없습니다. 또한 특정한 파일 포맷도 없습니다.
klik과 비교할 때, 해당 패키지 내에 로컬 유닉스 디렉토리 구조를 복제하려는 의도가 아닙니다; 해당 액티비티는 여전히 시스템이 제공하는 바이너리 등에 링크됩니다. 아키브를 압축하여 네트워크로 보내는 것 외에는 서버 사이드 컴포넌트도 없으며, 액티비티들이 자기 포함 self-contained되므로, 디펜던시 체킹도 없습니다.